Когда ваш агент ведет себя неправильно, знаете ли вы, какой именно это сделал?
Агент удаляет запись, к которой не должен прикасаться. Он отправляет сообщение не тому тенанту. Он вызывает API в цикле, что приводит к резкому росту ваших расходов.
Спустя десять минут после инцидента вы задаете один вопрос: какой именно агент это сделал?
Если вы не знаете, вы не сможете это исправить. Вы не сможете остановить сборку. Вы не сможете провести аудит ошибки. Вы не сможете извлечь урок из этой ошибки.
Это проблема идентификации.
Большинство команд сталкиваются с тремя паттернами, которые скрывают действия агентов:
- Shared service accounts: десять агентов используют один набор учетных данных. В логах каждое действие выглядит одинаково.
- Human credentials: агент использует ваш логин. В логах отображается ваше имя, а не имя агента. Это создает огромный риск для безопасности.
- Silent drift: две разные сборки используют одно и то же имя. Одна использует новую модель или новый промпт, но в логах отображается одна и та же личность.
Чтобы исправить это, выполните следующие шаги:
Give every agent its own identity. Не используйте человеческие учетные данные. Не используйте общие аккаунты. Агент должен проходить аутентификацию от своего имени.
Stamp six specific fields on every action:
- Accountable party: Кто отвечает за этого агента?
- Operational owner: Кто занимается его обслуживанием ежедневно?
- Tenant: Для какого клиента это делается?
- Agent-type-id: Какая именно это сборка?
- Agent-instance-id: Какой именно это запуск?
- Trace context: Где это находится в цепочке вызовов?
Use hashes for versioning. Не называйте своего агента «support-agent-v2». Если вы измените системный промпт, имя останется прежним, но поведение изменится. Вместо этого используйте хеш контента. Создайте хеш на основе образа контейнера, промпта, модели и конфигурации. Если вы измените хотя бы одну строку кода, ID изменится. Это сделает скрытый дрейф видимым.
Record lineage. Агенты порождают субагентов. Вы должны записывать, какой родительский агент запустил субагента. Вы также должны записывать промпт, который родитель передал субагенту. Это единственный способ обнаружить внедренные инструкции или отравленные данные.
Идентификация — это ваша поверхность восстановления. Она позволяет использовать механизм экстренного отключения (kill switch) и выстраивать аудиторский след. Вы должны настроить это до того, как произойдет инцидент. Добавлять идентификацию во время кризиса — слишком поздно.
Проверьте свои логи прямо сейчас. Посмотрите на действие, совершенное час назад. Можете ли вы назвать конкретную сборку, которая совершила это действие? Если нет, значит, у вас есть пробел, который нужно устранить.
Source: https://dev.to/brennhill/when-your-agent-does-something-bad-can-you-tell-which-agent-did-it-37a2
Optional learning community: https://t.me/GyaanSetuAi
