engineering architecture

Архитектура на основе трейтов: расширяемые ИИ-агенты без плагинов

ZeroClaws.io

ZeroClaws.io

@zeroclaws

February 25, 2026

8 мин. чтения

Архитектура на основе трейтов: расширяемые ИИ-агенты без плагинов

Когда ClawHub запустился, это казалось очевидным способом расширить среду выполнения ИИ-агента. Маркетплейс навыков — устанавливайте то, что нужно, пропускайте то, что не нужно, вносите свой вклад. К началу 2026 года ответ стал ясен. Исследователи безопасности обнаружили, что 41,7% опубликованных навыков ClawHub содержат уязвимости. Сотни были откровенно вредоносными.

ZeroClaw был разработан с учётом этого режима отказа. Вместо системы плагинов он использует трейты Rust.

Что не так с системами плагинов во время выполнения

Основная проблема традиционных систем плагинов — не качество реализации, а сама модель. Когда вы устанавливаете плагин, вы загружаете код из интернета и выполняете его внутри процесса вашего приложения с правами вашего приложения.

Конкретные режимы отказа предсказуемы. Загрузка кода во время выполнения означает, что плагины выполняют произвольный код в хост-процессе. Доверие по умолчанию означает, что после установки плагин имеет те же права, что и хост-приложение. Атаки на цепочку поставок тривиально просты: опубликуйте пакет с именем, похожим на популярное, и ждите, пока пользователи его установят.

Трейты: другая модель

Трейт Rust — это контракт интерфейса, применяемый компилятором. Вот упрощённый трейт канала ZeroClaw:

Каждый канал — Telegram, Discord, WhatsApp, Signal, Matrix, IRC — реализует этот трейт. Компилятор гарантирует типобезопасность, потокобезопасность и полноту.

Критически важно: новые каналы компилируются в бинарный файл, а не загружаются во время выполнения. Нет инъекции кода, нет динамической загрузки, нет решения о доверии во время установки.

Добавление нового канала

Практический опыт расширения ZeroClaw — это реализация трейта. Вот как выглядит адаптер канала Matrix:

Это примерно 50 строк для полного адаптера канала. Компилятор проверяет корректность реализации до того, как код будет отправлен.

Тот же паттерн для каждой точки расширения

ZeroClaw использует трейты для каждого места, где система должна быть расширяемой. Провайдеры ИИ реализуют трейт . Инструменты реализуют трейт , который требует заранее объявить разрешения. Бэкенды памяти реализуют трейт .

Сравнение безопасности

| Аспект | Система плагинов | Система трейтов | |--------|-----------------|----------------| | Происхождение кода | Загружается во время выполнения | Компилируется при сборке | | Проверка | На основе доверия | Проверяется компилятором | | Разрешения | Во время выполнения, часто непроверенные | Объявлены в типах, применяются | | Цепочка поставок | Уязвима | Нет загрузки внешнего кода | | Типобезопасность | Ошибки во время выполнения | Ошибки на этапе компиляции |

Ключевое понимание простое: у вас не может быть атаки на цепочку поставок, если у вас нет цепочки поставок. Расширения ZeroClaw компилируются, а не загружаются. Нет маркетплейса для компрометации, нет пакетов для тайпсквоттинга.

Реальный компромисс

Подход с трейтами означает, что вы не можете установить новый канал, загрузив файл. Добавление пользовательского расширения требует написания Rust, добавления его в исходный код ZeroClaw и компиляции нового бинарного файла. Для большинства пользователей 30+ встроенных каналов и инструментов покрывают всё необходимое.

Этот компромисс намеренный. Меньшая, проверенная поверхность расширения лучше, чем большая, непроверенная. ClawHub OpenClaw доказал, что происходит, когда вы оптимизируете размер экосистемы в ущерб безопасности.

Поделиться в: share code
star Star on GitHub

Будь в курсе

Получай обновления о новых релизах, интеграциях и инфраструктуре AI-агентов на Rust. Без спама, отписка в любой момент.