Skip to main content
Пример показывает, как Veriqa встраивается в готовую среду запуска агента: человек одобряет чувствительные действия агента — не только вызовы инструментов, но и тяжёлые прогоны, которые расходуют много времени и токенов, — а каждое одобрение, отказ и истечение попадают в аудит Veriqa. Особенно это актуально для команд, где с агентами работают несколько разработчиков. Claude Code и задачи разработки — выбранный здесь пример; подход годится и для другой среды запуска агента, и для других задач. Пример лежит в samples/claude-code/ в репозитории (veriqa.app/source), распространяется по MIT и рассчитан на то, чтобы его переработали под свои цели. Руководство по установке — его README.

Три демо

Затратный прогон требует двух согласующих по очереди — разработчика, затем менеджера, — каждого со своего мессенджер-аккаунта, записанного заранее. Подтверждение с любого другого аккаунта отклоняет действие.

Как это работает

Плагин — мод Claude Code, то есть плагин из функций-хуков, работающий внутри Claude Code 2.1.295 или новее, — поэтому согласование идёт в самой среде запуска агента, без участия модели.
  1. Хук плагина удерживает вызов инструмента или slash-команду и сверяет их со своими правилами. Ничего не совпало — Claude Code работает как обычно.
  2. Правило совпало — плагин создаёт подтверждение через POST /api/transaction/confirmation (client credentials). Действие ждёт; ничего не выполнено.
  3. Плагин открывает собственную панель: что спрашивается, QR-код, который вернула Veriqa, и ссылка. В узком терминале строка статуса говорит, чего ждём, а панель открывает команда.
  4. Хук ждёт исхода, читая GET /api/transaction/{id}/result, пока транзакция не закончится. Действие выполняется только при confirmed; отказ, истечение, отказ в панели, подтверждение с чужого аккаунта или недоступный хост его отклоняют. В цепочке панель переходит к коду следующего согласующего.
Человек читает формулировку, объявленную на хосте, с подставленными типизированными значениями слотов — «Claude Code in demo-shop wants to push the branch to the remote repository», — а не текст, который написал агент.

Каналы примера

По умолчанию человек отвечает в Telegram — хост читает его через длинный опрос (long polling), поэтому демо работает на localhost. Messenger, WhatsApp и Instagram, а также страница, где человек выбирает один из этих каналов на телефоне, требуют хоста на публичном HTTPS-адресе: Meta доставляет ответ вебхуком, а страница должна открываться с телефона.

Почему не кнопка «Разрешить» в самой среде запуска агента

  • Названный человек. Хост проверяет, какой мессенджер-аккаунт подтвердил, а не только то, что кто-то нажал кнопку.
  • Кто-то кроме разработчика. Цепочка спрашивает второго человека, и никто не утверждает собственные траты.
  • След вне сессии агента. Одобрения записываются на хосте Veriqa, а не в локальный транскрипт, который тот же пользователь может отредактировать.
  • Вопрос, который пишет не агент, и ответ с отдельного устройства по каналу, которым агент не управляет.
Одному разработчику, который следит за своим агентом, часто хватает кнопки среды запуска агента; разница видна, когда агентов, траты или ответственность делят несколько человек.

Упрощения демо

Veriqa работает на машине разработчика только для того, чтобы демо было быстро запустить; в команде подтверждающий хост — общий сервис. QR-код второго согласующего показывается в той же панели только для демонстрации — Veriqa не доставляет вопрос этому человеку, и в реальном сценарии ссылка доходит до него иначе: в его собственный чат, по почте, в тикете.
Плагин ставит человека в цепочку, но песочницей не служит. Ограничения перечислены в README примера. Инженерная сторона сценария — на странице «Подтверждение действий ИИ-агентов».