🐫 CaMeL
Именно так устроена идея CaMeL, предложенная исследователями Google, ETH Zürich и других организаций: из доверенной задачи явно извлекаются поток управления и поток данных, а система полномочий ограничивает, куда могут передаваться данные в зависимости от их происхождения. В AgentDojo CaMeL выполнила 77% задач, сохраняя гарантии безопасности в рамках принятой модели угроз. Важна и вторая часть результата: цена такой защиты — потеря части универсальности агента.
🧩 StruQ
StruQ решает соседнюю задачу на уровне самой модели: запрос и данные подаются по разным каналам, а модель специально обучают следовать указаниям только из доверенной части. Такой подход заметно повышает устойчивость, но остаётся защитой вероятностного компонента. Для агента с правом совершать необратимые действия StruQ следует сочетать с обычными проверками полномочий.
🛠 Что делать инженеру
- До обращения к модели отмечать происхождение каждого фрагмента: пользователь, внутренняя система, внешний документ.
- Выдавать минимальный набор инструментов для данного шага.
- Отделять компонент, который читает недоверенный текст, от компонента с привилегиями.
- Передавать между ними типизированные значения, а не свободный текст.
- Проверять вызовы обычным кодом: схема, получатель, область данных, лимит, допустимость действия.
- Перед необратимыми действиями показывать человеку точное изменение: что, куда и от чьего имени будет отправлено или изменено.
💡 Фильтры, специальное обучение и проверка ответов нужны. Но они уменьшают вероятность обмана, а не задают границу полномочий.
📚 Источники и дополнительное чтение
1. Edoardo Debenedetti et al., “Defeating Prompt Injections by Design (CaMeL)”, IEEE Conference on Secure and Trustworthy Machine Learning (SaTML) 2026.
https://arxiv.org/abs/2503.18813
2. Sizhe Chen et al., “StruQ: Defending Against Prompt Injection with Structured Queries”, 34th USENIX Security Symposium (USENIX Security 2025).
https://arxiv.org/abs/2402.06363