Гейты одобрения
Некоторые вызовы инструментов не должны происходить без согласия человека — отправка почты, публикация в канал, изменения с реальными последствиями. Гейты одобрения AiHummer ставят человека в цикл перед запуском таких инструментов и сочетаются с идемпотентными побочными эффектами, чтобы одобрение восстановленного хода никогда не запускало одно и то же действие дважды.
Как работает гейт
Вы объявляете, какие инструменты требуют одобрения, настройкой
AIHUMMER_APPROVAL_TOOLS — это список имён инструментов. Когда агент решает
вызвать один из них, выполнение приостанавливается и поднимается запрос на
одобрение для рассмотрения человеком.
# /home/.aihummer/etc/gateway.env
# Список инструментов через запятую, требующих одобрения перед выполнением
AIHUMMER_APPROVAL_TOOLS=mail,http_request
Ожидающий запрос появляется в веб-админке и admin API
(/v1/admin/approvals), где проверяющий видит инструмент, его аргументы и
контекст, после чего одобряет или отклоняет его.
Approve = выполнить, reject = не выполнять
Гейт однозначен:
- Approve — инструмент выполняется ровно с теми аргументами, которые были рассмотрены.
- Reject — инструмент не выполняется. Нет частичного или отложенного выполнения; отклонённый вызов просто не происходит, и ход продолжается без этого побочного эффекта.
[!NOTE] Reject — это жёсткая остановка для этого конкретного вызова. Агент не повторяет молча отклонённое действие за спиной проверяющего.
Почему это безопасно при восстановлении
Гейты одобрения сочетаются с идемпотентными побочными эффектами AiHummer. Ход может быть прерван (рестарт, сбой), а затем восстановлен. Без защиты восстановленный ход мог бы повторно выполнить уже произошедшее действие — отправить то же письмо дважды, опубликовать то же сообщение снова.
AiHummer предотвращает это с помощью resume-stable ключа в ledger и барьера побочных эффектов: каждый побочный эффект записывается под стабильным ключом, а барьер отказывается повторно выполнять эффект, который в ledger уже отмечен как выполненный.
[!TIP] Практический итог: одобрение восстановленного хода не запускает повторно почту или отправку в канал. Барьер гарантирует, что эффект произойдёт ровно один раз, независимо от того, восстанавливался ли ход.
Полную механику ledger и барьера побочных эффектов см. в Multitenancy и идемпотентность.
Какие инструменты ставить на гейт
Ставьте на гейт инструменты, эффекты которых видны извне или трудно отменимы. Хорошие кандидаты:
mail— исходящая почта.- Отправка в канал / исходящая доставка клиентам или сотрудникам.
http_requestи другие инструменты, способные менять внешние системы.code_execна общих хостах (там он к тому же выключен по умолчанию).
Инструменты только на чтение (поиск, обращение к знаниям, время), как правило, в гейте не нуждаются. Сочетайте гейты одобрения с режимом air-gapped и контролем egress для инструментов, выходящих в публичный интернет.
Куда дальше
- Multitenancy и идемпотентность — ledger и барьер побочных эффектов за гарантией «ровно один раз».
- Guardrails и защита от инъекций — не дать модели быть направленной на вредоносный вызов инструмента под гейтом.
- Сеть, аудит и air-gapped — ограничьте то, чего могут достичь инструменты.