Материалы / 13 минут
Спроектировать инструменты агента как строгие контракты с минимальными разрешениями и аудитом действий.
Инструмент должен быть узким
Вместо универсальной команды shell создайте действие с конкретной целью, типизированным входом и ограниченным выходом. Чем меньше пространство параметров, тем проще проверка.
Описание инструмента объясняет модели назначение, но безопасность реализуется кодом вне модели.
Разрешение зависит от контекста
Policy проверяет пользователя, ресурс, среду и риск операции. Чтение, создание черновика и необратимое удаление не должны иметь одинаковый режим подтверждения.
Опасные действия проходят preview или dry-run, затем явное одобрение. Идентификатор одобрения связывается с точными параметрами.
- Allowlist ресурсов и операций.
- Ограничение размера, количества и времени.
- Idempotency key для повторяемых запросов.
- Полный audit event без секретов.
Результат тоже валидируется
Успешный HTTP-код не всегда означает выполненную задачу. Проверяйте ожидаемое изменение и возвращайте агенту нормализованный статус.
Prompt injection из документа или веб-страницы остаётся недоверенным входом и не может расширять разрешения инструмента.
{
"tool": "create_support_draft",
"input": { "ticket_id": "T-42", "body": "..." },
"permissions": ["ticket:read", "draft:create"],
"side_effect": "reversible",
"requires_approval": false
}