Перейти к основному содержимому

Workflow ассистенты

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

Что такое workflow ассистент?

Workflow ассистент состоит из визуального workflow из узлов (nodes), связанных стрелками (edges). Каждый узел выполняет конкретную задачу, например:

  • Start / End — точка старта и окончания workflow
  • Evaluate (Evalueer) — анализирует контекст и сохраняет структурированную информацию в память
  • Condition — оценивает выражение и направляет поток в нужном направлении
  • LLM — вызывает языковую модель для конкретной задачи (опционально: ожидает ввод пользователя)
  • Approval — задает вопрос да/нет и направляет поток в зависимости от ответа
  • Subagent - выполняет ту же задачу параллельно для нескольких элементов, например ученика за каждым раундом проверки

Workflow автоматически сохраняет свое состояние после каждого шага. Когда пользователь вводит данные, workflow точно продолжает там, где остановился.

Создание workflow ассистента

Перейдите в АссистентыНовый ассистент и выберите тип Workflow ассистент. Можно выбрать пустой холст или одну из преднастроенных конфигураций.

Общие настройки

При создании или редактировании workflow задаются общие настройки через панель настроек. Эти настройки применяются ко всему workflow:

  • Model: Модель AI, используемая во всех шагах. Выбираете одну модель на весь workflow.
  • Tools: Какие инструменты доступны в workflow (например, фиксация, поиск SLO, интернет-поиск). Включенные инструменты доступны для всех LLM-шагов, если не отключены по шагам.
  • MCP servers: Внешние подключения, доступные в workflow.
  • Документы: Файлы, к которым могут обращаться LLM-шага.
  • Изображения: Изображения, которые могут использоваться LLM-шага.

Можно также указать, разрешено ли пользователю добавлять файлы или изображения во время чата.

Файлы в формах workflow

Workflow может попросить пользователя прикрепить файлы, например тест, модель проверки или сданную работу ученика. В таком случае пользователь может:

  • загрузить новый файл
  • выбрать существующий файл из Управления файлами
  • для каждого вопроса определить, какой файл относится к какому элементу

Новые файлы обрабатываются сначала. Workflow сможет продолжить только после завершения обработки. Если обязательный вопрос по файлу все еще в процессе или неудачен, пользователь должен ждать или выбрать снова/загрузить файл.

Файлы, добавленные через форму workflow, доступны как ассистент-файлы для этого чата. Они не выбираются автоматически как обычные чат-файлы.

Настройки на шаг

В каждом LLM-шаге можно отключать инструменты, файлы и изображения, которые включены глобально, для этого конкретного шага. Это дает точный контроль над тем, какие средства доступны на каком шаге. На уровне шага нельзя добавить ничего, что уже не включено глобально.

Редактор workflow показывает визуальную блок-схему с узлами и связями

Использовать preset

Для большинства пользователей preset будет лучшей отправной точкой. Затем preset можно адаптировать под ваши нужды.

Пример: Лес ассистент

Лес ассистент — готовый preset, специально разработанный для образования. Он ведет пользователя от начала до конца через полноценный урок: от определения темы и уровня, через цели и объяснение, к упражнениям и завершающему резюме.

Обзор workflow

Лес ассистент состоит из следующих шагов (узлов) в порядке:

Поэтапно объяснение

1. Start

Workflow запускается, как только пользователь открывает чат и отправляет первое сообщение.


2. Triage: Lesonderwerp (evalueer-node)

Что делает: AI анализирует сообщение пользователя и пытается определить:

  • Onderwerp — о чем урок? (например, "правило рычага")
  • Niveau — базовый, средний или продвинутый?
  • Voldoende info? — достаточно ли контекста, чтобы сразу сформулировать цели?

Это результат сохраняется в памяти workflow.


3. Voldoende info? (conditie-node)

Если информации достаточно (voldoende_info = true), workflow сразу переходит к Leerdoelen opstellen.

Если информации не хватает, переходит к Informatie verzamelen.


4. Informatie verzamelen (LLM-node, wacht op invoer)

Что делает: AI задаёт целевые вопросы пользователю, чтобы выяснить тему и желаемый уровень. Как только пользователь ответил, поток возвращается к Triage: Lesonderwerp для повторной оценки.

Пример диалога:

🤖 "Р рад, что вы здесь! Чтобы помочь вам как можно лучше, пару коротких вопросов: 1. По какой теме нужен урок? 2. Какой уровень? (базовый / средний / продвинутый)"

👤 "havo 3 natuurkunde, hefboomwet"

После ответа триаж повторно оценивает и устанавливает: voldoende_info = true.


5. Leerdoelen opstellen (LLM-node)

Что делает: AI формулирует нумерованный список из максимум 4–5 конкретных, измеримых целей обучения для указанной темы и уровня.

Пример вывода:

Цели обучения для Hefboomwet – havo 3 (gemiddeld):

  1. Вы сможете сформулировать закон рычага и объяснить формулу F₁ × r₁ = F₂ × r₂.
  2. Вы сможете выполнять расчеты, определяя неизвестные силы или плечи.
  3. Вы сможете применить закон рычага на практических примерах (ножницы, тачка, качели).
  4. Вы сможете объяснить разницу между первым, вторым и третьим классом рычага.

6. Leerdoelen goedkeuren (goedkeuring-node)

Что делает: AI спрашивает пользователя, верны ли сформулированные цели и можно ли начинать урок.

  • Да → продолжить к уроку
  • Нет → вернуться к Leerdoelen opstellen для переработки целей

Пользователь может увидеть цели через выпадающее меню в чате.


7. Triage: Leerdoelen (evalueer-node)

Что делает: После каждого цикла урока AI проверяет, освоил ли пользователь все цели обучения. Это строгая оценка: пользователь должен явно показать понимание каждой цели.


8. Alle leerdoelen begrepen? (conditie-node)

  • Да → перейти к Oefeningen agent
  • Нет → перейти к Les agent для следующей цели

9. Les agent (LLM-node, wacht op invoer)

Что делает: AI читает по теме, шаг за шагом, на основе целей обучения. После каждого раздела AI задаёт вопрос по пониманию. Пока пользователь не покажет понимание цели, урок продолжается.

После ввода пользователя поток возвращается к Triage: Leerdoelen для оценки прогресса.

Пример:

🤖 "Начнем с цели обучения 1: закон рычага. Рычаг — жесткий стержень, вращающийся вокруг точки опоры. Сила, которую вы применяете, зависит от расстояния до точки опоры. Формула:

F₁ × r₁ = F₂ × r₂

Можете объяснить, что означают r₁ и r₂ в этой формуле?"


10. Oefeningen agent (LLM-node, wacht op invoer)

Что делает: AI формулирует по крайней мере один тренировочный вопрос на каждую цель. Пользователь отвечает на вопросы, после чего поток переходит к Feedback agent.


11. Feedback agent (LLM-node, wacht op invoer)

Что делает: AI дает детальную, персональную обратную связь по выполненным Exercise. По каждой цели обсуждается что получилось хорошо и где можно улучшиться. Тон честный, но ободряющий.


12. Afronden? (goedkeuring-node)

AI спрашивает, хочет ли пользователь завершиться или еще потренироваться.

  • Да → перейти к Samenvatting
  • Nee → вернуться к Oefeningen agent для новой попытки

13. Samenvatting (LLM-node)

Что делает: AI дает ясное резюме всего пройденного материала и персональную мотивационную обратную связь по результатам.


14. Einde

Workflow завершается ободрительным финальным сообщением.

"Хорошо поработали на этом уроке, до скорой встречи!"


Полная примерная беседа

Ниже краткая примерная беседа с Les ассистентом о hefboomwet, havo 3:

КтоСообщение
👤 Пользовательпривет
🤖 Les ассистентРад, что вы здесь! По какой теме нужен урок и на каком уровне?
👤 Пользовательhavo 3 natuurkunde, hefboomwet
🤖 Les ассистентОтлично! Я составил 4 цели обучения. Хотите начать урок с этими целями?
👤 Пользовательда
🤖 Les ассистентНачинаем с цели обучения 1: закон рычага. (объяснение + вопрос на понимание)
👤 Пользователь(ответ на вопрос)
🤖 Les ассистент(продолжение урока для целей 2, 3, 4 ...)
🤖 Les ассистентВы прошли все цели обучения! Время для упражнений...
👤 Пользователь(ответы на упражнения)
🤖 Les ассистент(персональная обратная связь) Хотите завершиться или еще потренироваться?
👤 Пользовательзавершить
🤖 Les ассистент(резюме + мотивационное завершение)

Просмотр прогресса

Когда вы ведете разговор с workflow ассистентом, вы можете смотреть прогресс через кнопку Workflow справа в окне чата. Нажатие этой кнопки открывает панель с:

  • Все шаги workflow (узлы условий и заметок не отображаются)
  • Статус каждого шага:
    • Wacht: еще не достигнуто
    • 🔄 Actief: выполняется сейчас
    • Klaar: успешно завершено
    • ⏸️ Wacht op invoer: ждет ввода пользователя
    • ⏭️ Overgeslagen: пропущено (например, из-за условия)
    • Fout: произошла ошибка

Создание triage node

Сan evalueer-node (triage-node) извлекает информацию из диалога и сохраняет ее в память workflow. Conditie-nodes могут затем считывать эти значения, чтобы направлять поток в нужном направлении.

Конфигурация

  1. Добавьте в workflow узел Evalueer.
  2. Напишите системный промпт, описывающий, что AI должен анализировать и какие выводы делать.
  3. Определите выходной план с полями:
    • Field name: ключ для запроса значения позже (например, voldoende_info, niveau, route).
    • Type: string (текст), number (число), boolean (да/нет), или enum (выбор из фиксированных значений). Для enum перечислите допустимые значения через запятую.
  4. Установите max. iterations, чтобы избежать бесконечной работы узла.

Значения памяти

Сохраненные значения доступны через префикс state. в условных узлах, например state.voldoende_info или state.niveau.

Настройка condition node

conditie-node оценивает выражения на основе памяти workflow и отправляет поток к следующей подходящей стадии.

Ветки

У kondition-node есть одна или несколько ветвей:

  • If: первая условие, которая оценивается.
  • Else-if: дополнительные необязательные условия.
  • Else: стандартный маршрут, если ни одно условие не выполняется.

Написание выражений

Выражения пишутся на CEL (Common Expression Language):

Предпочитаемое поведениеВыражение
Поле,truestate.voldoende_info == true
Поле с фиксированным значениемstate.niveau == "gevorderd"
Числовое сравнениеstate.score > 7
Несколько условийstate.niveau == "basis" && state.score < 5

Установка связей

Пусть из узла условия выходят отдельные соединения для каждого ветвления к нужной следующей 노де. Редактор отображает для каждой ветви свой выход на узле.

Использование ноды subagent

Subagent-node предназначен для задач, которые необходимо выполнять одинаково несколько раз. Узел получает список элементов из памяти workflow и запускает для каждого элемента отдельное выполнение с изолированным контекстом.

Практические применения:

  • проверка теста для каждого ученика
  • анализ каждого документа
  • создание резюме для каждой заполненной формы
  • фиксация собственного отчета по каждому разделу

Конфигурация

  1. Убедитесь, что предыдущий evalueer-node сохраняет в память список элементов, например leerlingen_json.
  2. Добавьте Subagent-node.
  3. Укажите источник элементов.
  4. При необходимости добавьте поле-ярлык, чтобы прогресс был понятен.
  5. Установите максимальное число параллельных исполнений.
  6. Укажите под каким ключом памяти сохранять результаты.

Контекст субагента всегда содержит только текущий обрабатываемый элемент. Делайте явную ссылку на текущий элемент в промпте и избегайте одновременной обработки несколькими элементами.

Фиксация в workflow

Фиксационный инструмент особенно полезен в workflow. Он позволяет AI автоматически сохранять черновые или конечные результаты как редактируемые документы в боковой панели.

Настройка

  1. Включите фиксaцию через общие настройки workflow.
  2. В системный промпт нужного LLM-шагa добавьте инструкцию зафиксировать определенное содержание. Включите инструмент для этого шага (или оставьте глобально включенным).

Пример

В шаге целей обучения можно в системном промпте написать:

"Сформулируйте цели обучения для указанной темы и уровня. Затем сразу зафиксируйте их с помощью Фиксации в инструменте фиксации, с заголовком 'Leerdoelen'."

Пользователь может просмотреть зафиксированные документы через Vastlegging-knop (📄) в панели инструментов чата.

Восстановление разговора

Если вы находитесь посреди урока и хотите вернуться к более ранной точке беседы, вы можете сделать это через кнопку восстановления (иконка истории) рядом с предыдущим сообщением. Это удалит все сообщения после этой точки и возобновит workflow с того момента.

Внимание

Восстановление является окончательным — удалённые сообщения больше недоступны.

Редактирование Workflow

Администратор может открыть существующий workflow и редактировать в workflow editor. Нажмите на узел, чтобы изменить конфигурацию, добавляйте новые узлы через меню правого клика или перетаскивайте соединения к другим узлам.

Для совершенно нового workflow можно начать с пустого холста или другой preset.