Понятия

Сюжеты (Storylines): агенты с состоянием, оркестрируемые графом и выполняющие целый процесс

Сюжет — это направленный граф, по которому агент ведёт каждого конечного пользователя: каждый узел — это шаг (со своей задачей, знаниями и инструментами), переходы несут условия, а прогресс, профиль и заметки по каждому человеку сохраняются и возобновляются между сессиями и каналами. Он превращает агента из ассистента, выполняющего отдельные задачи, в того, кто сам может оказывать многошаговую услугу.

Также называютагент с состояниемstateful agentконечный автомат агентапоток разговорауправляемый путь агентарабочий процесс агентаagent workflowразговорный рабочий процессмногошаговый агентагент-курсагент онбордингаграф оркестрации агента

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

storyline editor

Сюжет — это не «агент с бо́льшим числом навыков»

Это первое, что нужно уяснить, потому что эти две вещи выглядят похоже, но таковыми не являются. Навык — это способность, к которой модель может обратиться; сюжет — это порядок, в котором всё происходит.

Агент с несколькими навыкамиАгент, выполняющий сюжет
ПоследовательностьЛюбой навык, в любой момент — без порядка«Ты не доберёшься до B, пока не завершён A»
СостояниеНе помнит, где вы былиПрогресс каждого человека сохраняется и возобновляется
Что им движетМодель решает на каждом шагеРешают граф и его условия
ДетерминизмПорядок живёт в «голове» моделиПорядок нарисован в виде графа — версионированного, измеримого

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

Сюжет против рабочего процесса

Поскольку сюжет — это тоже граф шагов, его легко положить рядом с конструкторами рабочих процессов — всеми этими Dify, n8n и Zapier. Это вещи другого рода. Рабочий процесс автоматизирует процесс между системами: фиксированный конвейер, который срабатывает по триггеру и каждый раз выполняется одинаково, перемещая данные из одного инструмента в другой. У него нет памяти о том, для кого он выполнялся, потому что он выполняется не для кого-то — это машинно-машинная «сантехника».

Состояние сюжета и есть человек. Прогресс, профиль и место в процессе каждого человека сохраняются и возобновляются, поэтому один и тот же граф производит разный, возобновляемый путь для каждого конечного пользователя, и агент ведёт беседу на каждом шаге, а не перекладывает данные между приложениями. Рабочий процесс автоматизирует задачу; сюжет оказывает услугу человеку и помнит его.

Рабочий процесс (Dify, n8n, Zapier)Сюжет
Что проходит через негоДанные, между системамиЧеловек, через процесс
СостояниеБез состояния — один и тот же прогон каждый разС состоянием — по одному сохранённому пути на человека
Для кого выполняетсяНи для кого; запускается событиямиКонкретный конечный пользователь, помнимый между сессиями и каналами
Единица работыШаг автоматизации («вызови этот API»)Шаг беседы («агент ведёт этот этап»)
Вы берётесь за него, когдаДвум системам нужно поговорить друг с другомУслугу нужно оказать людям в масштабе

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

Составные части

  • Узлы — это шаги. Каждый узел перенастраивает того же агента под этот шаг: свой промпт задачи, базы знаний, навыки и инструменты (добавленные поверх базового набора агента или заменяющие его). Личность и границы безопасности агента никогда не меняются между узлами.
  • Переходы — это то, как узел продвигается вперёд, и каждый несёт условие: правило на профиле (listening ≥ 70), нажатие пользователем кнопки, суждение ИИ о нечётком критерии («когда он может составить предложение без подсказки»), сигнал от внешней системы или переход к другому сюжету.
  • Профиль путешествует с человеком — измерения, которые вы определяете под предмет (listening, speaking, reading, writing для языка; нечто совсем иное для истории), накопленные по всем сюжетам, плюс свободная «черновая доска» заметок для передачи, идущих от одного узла к следующему.
  • Сцепление связывает сюжеты друг за другом — первый класс перетекает во второй — чтобы вы могли выращивать большой путь, не строя его весь сразу, и ветвиться к другому сюжету по итогу (пользователь, не сдавший экзамен, попадает на линию доработки, а не в следующий класс).

Прогресс — по человеку, а не по чату, поэтому кто-то может уйти на полпути и продолжить ровно с того места, где был — в вебе, в Telegram или WhatsApp, где бы он ни вернулся.

Паттерны оркестрации

Сюжет выполняется как единый токен, идущий по графу, и эта одна модель выражает любую распространённую форму управления потоком. Порядок живёт в графе — версионированный и доступный для проверки, — а не в кратковременной памяти модели, поэтому он остаётся надёжным по мере того, как процесс становится длиннее и ветвистее.

Ветвление — if / else / switch. Узел с несколькими правило-переходами, проверяемыми сверху вниз; выигрывает первый, чьё условие выполняется. Детерминированно, оценивается на сохранённом состоянии, без угадывания моделью.

Цикл — повтор с ограничением. Обратное ребро и счётчик: каждая попытка увеличивает измерение, а правило ограничивает его и направляет дальше. Повторы ограничены состоянием, которое граф записал сам, а не надеждой на то, что модель ведёт счёт.

Параллель — сделать всё / AND-объединение. Несколько под-потоков, которые человек проходит в любом порядке, каждый со своими отдельными шагами; сюжет продвигается только после того, как завершена каждая ветвь.

Что делает всё это детерминированным — это то, что переход может установить или увеличить часть профиля в момент, когда он совершается: флаг завершения, счётчик повторов, итог маршрутизации. Ветви и объединения затем читают из состояния, которое сам граф записал шагом ранее, а не из воспоминания LLM о том, что произошло. Модель ведёт беседу на текущем шаге; граф ведает тем, что происходит дальше.

Шаги, которые разворачиваются в планы

Некоторые шаги слишком зависят от ситуации, чтобы прописать их целиком. Шаг «собрать документы», например, — это разный чек-лист для китайского основателя, живущего в США, и для немецкого, живущего у себя дома. Пометьте такой шаг как разворачиваемый — и когда пользователь до него дойдёт, агент предложит развернуть его — для этого пользователя, прямо на месте — во временный под-план, сгенерированный динамическим планировщиком: со своими шагами, чек-листами и видимым прогрессом. План выполняется вложенно: ваш сюжет приостанавливается на этом шаге, план отрабатывает, и по его завершении сюжет продолжается ровно с того места, где остановился. Роли разделяют два правила: созданный вами сюжет всегда имеет приоритет над чем-либо сгенерированным, и любое разворачивание предлагается, а не навязывается — пользователь сначала подтверждает. (Динамический планировщик — возможность уровня Pro, у неё есть собственная страница, где описано и то, как планы запускаются вне сюжетов.)

Подключение внешних систем

Узел может передать управление третьей стороне и действовать на основе того, что вернётся: оценённое тестирование, KYC-проверка, встроенная мини-игра. Этот результат — балл, вердикт, подтверждение платежа — может обновить профиль или удовлетворить условие перехода. Две формы: бэкенд-передача (данные уходят в инструмент, и результат возвращается, невидимо) и передача с редиректом-и-ожиданием (беседа показывает ссылку, блокируется и возобновляется, когда внешний шаг завершается — как это делает платёжный поток).

Где это уместно

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

Сюжеты — это возможность уровня Pro, включаемая по каждому арендатору. Они создаются как граф в консоли (или через API, чтобы мастер или ассистент мог построить сюжет), версионируются и публикуются, причём пользователи «в пути» закреплены за той версией, на которой начали.

Частые вопросы

Чем это отличается от того, чтобы просто написать более длинный системный промпт?
Промпт описывает всё сразу и надеется, что модель за всем уследит; сюжет даёт агенту только тот шаг, на котором человек сейчас находится, и хранит его прогресс вне модели. Именно поэтому сюжет ведёт себя правильно и на двадцатом ходу, и когда человек возвращается неделю спустя в другом канале.
Что происходит, если клиент посреди сюжета уходит в сторону от темы?
Агент отвечает на вопрос и остаётся на том же шаге — уход в сторону не продвигает сюжет и ничего не помечает как собранное. Когда человек возвращается к задаче, сюжет продолжается ровно с того места, где был.
Можно ли менять сюжет, когда люди уже находятся внутри него?
Да. Прогон каждого человека закреплён за той опубликованной версией, на которой он начал, поэтому редактирование и повторная публикация никого не потревожат на полпути. Когда переводить действующие прогоны на новую версию, решаете вы.
Видят ли конечные пользователи, что находятся внутри сюжета?
Это ваш выбор, отдельно для каждого сюжета: он может быть полностью невидимым, показывать только название, показывать сокращённую карту с местом, где человек сейчас, или показывать полную карту шагов с прогрессом. В сокращённых режимах ничего о будущих шагах и непройденных ветвях в браузер не отправляется.
Что если клиент так и не дойдёт до конца?
Его прогресс просто ждёт — он принадлежит человеку или делу, а не сессии браузера. Вы видите, кто застрял и на чём, и обычно в этом и смысл: незаконченная заявка — это лид, с которым можно работать, а не молчаливый уход.
Нужны технические детали?Построить сюжет
Запуск
Наполнение базы знаний

Почти всё, что агенту нужно знать, уже где-то записано — на вашем сайте и в тех PDF, которые ваша команда и так рассылает клиентам. Импорт по URL закрывает публичную половину, загрузка файлов — остальное.

Структурированный индекс

Структурированный индекс — это небольшая таблица, которую агент формирует на основе полей, уже содержащихся в ваших документах (название, цена, уровень, ссылка, изображение), вместе с векторным поиском, используемым для понимания смысла. Векторный поиск находит фрагменты, которые по смыслу похожи на вопрос; он не умеет считать, фильтровать по числовым значениям или группировать. Структурированный индекс отвечает на такие вопросы и позволяет агенту точно цитировать ссылку или идентификатор, вместо того чтобы восстанавливать их из фрагмента.

Dynamic Planner

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

Длинное письмо

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