Граф вместо промпта: как студия собирает голосового агента из текста

12.07.2026 · HANC

Голосового агента обычно собирают из одного длинного промпта. На демо это работает: модель звучит уверенно и попадает в сценарий. На сотом звонке — уже нет. Кто-то перебивает на середине, кто-то отвечает «ну, наверное», кто-то спрашивает про доставку посреди записи на приём. И промпт нельзя открыть и посмотреть, где именно разговор свернул не туда: у него нет структуры, есть только текст.

HANC Studio делает иначе. Из описания на обычном языке она собирает граф разговора — и прежде чем отдать его вам, доказывает, что он корректен.

Описание вместо промпта

На вход идёт не инструкция модели, а техзадание своими словами: кто звонит, что нужно сделать, чего делать нельзя, чем разговор заканчивается. Можно приложить документ, скриншот интерфейса или ссылку на сайт — студия прочитает их и вытащит требования: роль, тон, обязательные вопросы, куда передавать сложные случаи, какие данные собрать.

Дальше это описание живёт не как текст, а как спецификация, по которой сборку потом проверяют.

Граф вместо промпта

Разговор собирается из узлов, и каждый делает ровно одно:

  • start — точка входа звонка;
  • say — реплика агента;
  • gather_input — вопрос, ответ на который сохраняется в переменную;
  • condition — развилка по значению переменной;
  • update_state — запись или изменение переменной по ходу разговора;
  • tool — действие: вызов API, поиск в базе знаний, SMS, письмо, перевод на номер;
  • integration — шаг во внешнюю систему: календарь, CRM, MCP-сервер;
  • subagent — часть разговора, отданная отдельному помощнику со своей задачей;
  • end_call — завершение.

Это можно прочитать. Это можно показать коллеге. В конкретный узел можно ткнуть пальцем и сказать: вот здесь агент говорит лишнее.

Маршрут выбирает не модель

Главное правило: ребро графа не решается моделью. Ребро «пусть ИИ решит» сборка не пропускает вообще.

Интент разбирает молчаливый саб-агент — он не произносит ни слова, а возвращает строгое значение из заранее заданного списка. Маршрут дальше выбирают обычные условные рёбра по этому значению плюс один безусловный запасной путь на случай, когда не подошло ничего.

Разница видна не на демо, а в логах: при одинаковом ответе звонящего разговор каждый раз идёт по одной и той же ветке.

Сборка обязана доказать свою корректность

Прежде чем агент появится в вашем аккаунте, граф проходит проверки. Не рекомендации — блокирующие:

  • ровно один вход, и звонок начинается именно с него;
  • ни одного недостижимого узла;
  • ни одного тупика: из каждого узла есть путь к завершению звонка;
  • никаких бесконечных петель — разбираются все сильно связные компоненты, поэтому спрятанный цикл ловится так же, как очевидный;
  • у каждой развилки есть запасной путь;
  • ветка, которую всё равно перекрывает безусловное ребро, отбрасывается как мёртвая, а не остаётся украшением;
  • у каждого саб-агента свой промпт и свой список результатов, а не общие настройки родителя;
  • у перевода звонка есть номер, и он проверен по формату E.164.

Если требования невыполнимы, студия говорит «сборка не удалась» и сохраняет черновик для ремонта. Заглушка не выдаётся за готовый результат — это отдельное правило, а не случайность.

Проверка живым звонком

Дальше студия звонит собранному агенту сама и проходит сценарий как обычный собеседник, сверяясь с чек-листом: каждый пункт получает PASS или FAIL. К этому добавляются симуляции — прогон по всем веткам на покрытие и намеренно испорченные ответы на устойчивость.

В конце остаётся отчёт: что связано, чем заканчивается, где циклы, какие помощники участвуют. Публиковать или чинить — решаете вы, но решаете, глядя на факты.

Правки по смыслу

Готовый агент правится словами, а не идентификаторами: «измени первое приветствие», «добавь ветку про Tesla», «убери повтор в конце». Нужный узел студия находит сама.

Правка применяется одной атомарной операцией — остальной граф не пересобирается и не теряет ручных изменений. Если вы правили тексты узлов прямо в HANC, студия подтянет их перед изменением. Любая прошлая версия восстанавливается поверх текущего воркфлоу, и результат виден сразу.

Знания, действия и данные

Прайс-лист, FAQ и документы подключаются как источник: агент отвечает по ним и называет, откуда взял ответ, вместо того чтобы придумывать.

Действия — это узлы, а не намерения: записать в календарь, создать сделку в CRM, отправить SMS или письмо, дёрнуть ваш API, перевести звонок человеку. Перед завершением отдельный узел складывает всё собранное — имя, телефон, суть обращения, итог — в вашу базу.

Публикация

Агент создаётся в вашем аккаунте HANC: номер телефона, виджет на сайте, WhatsApp. Дальше он живёт там, а студия остаётся местом, где его собирают и меняют.

Зачем всё это

Промпту можно только верить. Граф можно прочитать, проверить и починить — а когда он всё-таки ломается, видно, в каком именно узле.

← Все статьи