Простая аналогия: сотрудник подготовил черновик действия и положил его на согласование. Пока действие находится в статусе candidate, его можно проверить, изменить, отклонить или подтвердить. Только после проверок оно превращается в реальный tool call, mutation, webhook или API-запрос.
Action candidate особенно важен для AI-агентов с write-действиями. Read-only запросы вроде поиска документа обычно безопаснее. А вот отправка письма, изменение CRM, публикация поста, удаление файла, создание счета или смена прав доступа должны проходить отдельный слой проверки. Candidate позволяет не доверять модели напрямую, а сначала посмотреть, что именно она хочет сделать.
Обычно action candidate содержит тип действия, целевой инструмент, объект, аргументы, объяснение модели, уровень уверенности, источник данных, риск-уровень, автора запроса, пользователя, workspace и статус проверки. Например: action_type = add_comment, target = Jira issue, comment = текст, confidence = 0.82, risk = low, approval_required = false.
Action candidate связан с action allowlist. Allowlist отвечает на вопрос: можно ли в принципе выполнять такой тип действия. Candidate отвечает на вопрос: вот это конкретное действие с этими аргументами можно выполнить сейчас или нужно остановить. Поэтому система сначала проверяет тип действия, потом аргументы, права доступа, лимиты, ACL, контекст и approval.
Для человека action candidate удобен как очередь подтверждений. Оператор видит: агент предлагает добавить метку, связать дубликаты, отправить черновик письма или поменять статус задачи. Человек может принять, отклонить или поправить. Это снижает риск и одновременно сохраняет пользу автоматизации.
Главные ошибки: сразу выполнять предложения модели, не хранить причину действия, не показывать изменения человеку, не проверять аргументы, не логировать отклоненные candidates, смешивать draft и executed actions, не делать rollback-план и не разделять low-risk и high-risk действия.
Примеры
- Агент в Jira предлагает add_label = bug и add_comment = «похоже на регрессию». Пока это action candidate, метка и комментарий еще не записаны в Jira.
- CRM-агент предлагает создать задачу менеджеру и изменить стадию сделки. Создание задачи проходит автоматически, а смена стадии уходит на approval.
- Email-агент подготовил send_email candidate: получатель, тема, текст и причина. Система показывает черновик оператору, но не отправляет письмо без подтверждения.
- Агент поддержки предлагает refund_customer, но action allowlist запрещает возвраты без отдельного workflow, поэтому candidate блокируется до вызова платежного API.
- В n8n сценарии модель возвращает JSON с action_type и payload. Следующий узел проверяет allowlist, права и risk level, а уже потом запускает реальный API call.
Где используется
- очередь подтверждений для действий AI-агента
- безопасный слой перед tool calling и API mutation
- разделение черновиков и реально выполненных действий
- проверка аргументов перед записью в CRM, Jira, Linear, почту или ERP
- human-in-the-loop для рискованных операций
- логирование предложенных, отклоненных и выполненных действий
- тестирование agent workflow без изменения внешних систем
- sandbox-режим для новых сценариев автоматизации
- сравнение предложений агента с решениями человека
- обучение и улучшение правил guardrails по отклоненным candidates
Связанные термины
Частые вопросы
Что такое action candidate простыми словами?
Это действие, которое агент предлагает выполнить, но которое еще не применено. Например, агент подготовил комментарий в задачу или черновик письма, но система сначала проверяет это предложение.
Чем action candidate отличается от tool call?
Tool call - это уже вызов инструмента или API. Action candidate - это черновик такого вызова: действие описано, но еще не выполнено. Между ними можно поставить проверки, approval и блокировки.
Чем action candidate отличается от action allowlist?
Action allowlist - список типов действий, которые в принципе разрешены. Action candidate - конкретное предложенное действие с аргументами. Например, add_comment может быть разрешен, но конкретный комментарий все равно нужно проверить.
Какие данные хранить в action candidate?
Полезно хранить action_type, tool, target object, payload, автора запроса, пользователя, workspace, объяснение модели, источники, confidence, risk level, статус approval и audit log изменений.
Какие action candidates нужно подтверждать человеком?
Подтверждение нужно для отправки сообщений наружу, изменения денег, договоров, персональных данных, прав доступа, массовых операций, удаления, публикаций и любых действий, которые трудно откатить.
Как action candidate помогает тестировать AI-агента?
Можно запускать агента в режиме draft-only: он предлагает действия, но не выполняет их. Команда сравнивает предложения с решениями людей, находит ошибки и только потом разрешает часть действий выполнять автоматически.