AiHummer доки
v1.0.x
RU EN

Гейты одобрения

v1.0.x · обновлено 2026-06-26

Некоторые вызовы инструментов не должны происходить без согласия человека — отправка почты, публикация в канал, изменения с реальными последствиями. Гейты одобрения 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 для инструментов, выходящих в публичный интернет.

Куда дальше