إضافة opencode-policy توفر 309 قواعد لحماية وكلاء الذكاء الاصطناعي من الحقن والتسرب
توفر إضافة opencode-policy جديدة طبقة حماية أمام النموذج والأدوات. تتضمن 309 قاعدة: 27 ضد حقن المحادثات و282 لاستدعاءات الأدوات الخطرة، بما في ذلك محاولات قراءة

Для среды opencode предложили отдельный защитный слой, который перехватывает опасные запросы еще до того, как они дойдут до модели или будут переданы в shell и файловые инструменты. Плагин opencode-policy использует детерминированные правила, а не только системный промпт, и закрывает типовые сценарии атак на AI-агентов: prompt injection, чтение чужих файлов, попытки вытащить переменные окружения, подготовку данных к эксфильтрации и запуск подозрительных команд. В базовой поставке — 309 правил, которые можно расширять под свою инфраструктуру.
Идея выросла из практики соревнований по AI-агентам, где участникам специально подсовывали вредоносные инструкции. В таких задачах агент могли попросить забыть прежние правила, показать системный промпт, прочитать .env, ~/.
ssh или /proc/self/environ, декодировать полезную нагрузку и что-то выполнить от имени пользователя. Именно поэтому автор плагина вынес защиту за пределы самой модели: если опасная команда уже попала в tool execution, реагировать поздно. Фильтр ставится раньше и проверяет как пользовательские сообщения, так и аргументы инструментов.
Интеграция в opencode построена на двух хуках. Первый трансформирует сообщения до отправки в модель и ищет признаки prompt injection в текстовых полях, включая text, prompt, command и source.value.
Второй срабатывает перед запуском инструмента и анализирует не только путь к файлу, но и имя тула, shell-команду, текст запроса и другие аргументы. Если правило совпало, запрос не уходит дальше: для модели подменяется безопасным отказом, а выполнение инструмента просто останавливается с ошибкой политики. Такой подход делает поведение предсказуемым и удобным для аудита.
Сейчас в плагине 282 правила для tool-вызовов и 27 правил против prompt injection. Они хранятся в JSON и работают как набор regex-политик. Под блокировку попадают типичные сигнатуры вроде ignore previous instructions, фальшивые теги [developer] и [system], команды printenv и echo $TOKEN, обращения к /run/secrets и /proc/self/environ, а также попытки кодировать данные через base64, xxd или openssl enc.
Каждое срабатывание записывается в JSONL-лог с временем, типом события и идентификатором правила. Это помогает разбирать инциденты, находить ложные срабатывания и быстро добавлять новые паттерны по итогам реальных атак. Практическая сторона тоже выглядит максимально приземленной.
Плагин ставится одной командой npm install opencode-policy и подключается через конфиг opencode, после чего сообщения и tool-вызовы автоматически прогоняются через слой правил до исполнения. Автор отдельно подчеркивает, что набор политик открыт и может дополняться под конкретную инфраструктуру, а сам подход совместим и с локальными моделями, если они работают через opencode. Это делает решение полезным не только для облачных ассистентов, но и для внутренних агентных контуров компаний.
Отдельно важно, что автор сознательно делает ставку на простые, прозрачные механизмы, а не на еще один LLM-слой поверх LLM. Для части угроз сложная семантика действительно не нужна: названия секретных файлов, команды вывода окружения и шаблоны jailbreak-запросов довольно конкретны. Regex-подход проще ревьюить, обновлять и привязывать к конкретным кейсам, а после инцидента новое правило можно добавить буквально точечно.
Такой консервативный дизайн особенно полезен там, где нужна воспроизводимость и детерминированные тесты, а не вероятностная оценка риска. Сам по себе такой фильтр не заменяет sandbox, ограничения прав, белые списки инструментов и сетевую изоляцию. Но для агентных систем, которые работают с кодом, shell, CI/CD, внутренними репозиториями и секретами, он закрывает важный ранний слой обороны.
Главная ценность здесь в предсказуемости: правила читаются человеком, их легко ревьюить и тестировать, а защита не зависит от того, какая модель стоит под капотом. На фоне роста автономных AI-агентов это выглядит не как дополнительная опция, а как базовая гигиена для продакшена.