Системы агентов (Agent Systems)

Визуальные DAG‑схемы, которые позволяют связать нескольких агентов и функции в единый сценарий с разветвлениями, условиями и контролем времени выполнения.

Введение

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

Системы агентов удобны, когда одного чат‑бота недостаточно: нужно последовательно вызвать несколько агентов, подготовить данные функциями (Custom API, интеграции) и принять решение в условном узле.

Режим Orchestrator — альтернатива DAG: один агент динамически вызывает инструменты и под‑агентов. Подробнее о Orchestrator.

Технические детали формата definition и алгоритма исполнения смотрите в документе docs/agent_systems.md внутри репозитория.

Ключевые сущности

  • AgentSystem — объект, хранящий схему DAG в поле definition (узлы, рёбра, viewport).
  • AgentSystemRun — один запуск схемы, со статусом, входом/выходом и результатами по узлам.
  • Узел (node) — шаг в DAG: триггер, агент, инструмент (функция), условие или финальный вывод.
  • Ребро (edge) — связь между узлами; может содержать data_mapping или data_mapping_template для подготовки входа следующего узла.

Редактор схемы

  1. Откройте раздел Системы агентов и создайте систему.
  2. На странице редактирования перетаскивайте узлы, соединяйте их рёбрами и настраивайте каждый узел через боковую панель «Настройки узла».
  3. Снизу формы хранится JSON‑представление схемы; оно обновляется автоматически и используется для валидации и исполнения.

Типы узлов

Доступные типы узлов:

  • trigger — начальная точка; передаёт в схему вход AgentSystemRun.input. Типы: manual, webhook, email, telegram, cron. Подробнее о триггерах и каналах.
  • agent — запускает выбранного Agent со сконструированным сообщением.
  • tool — вызывает функцию Function (Custom API и другие провайдеры).
  • condition — проверяет JSONPath‑условие над результатами предыдущих узлов и направляет поток по рёбрам с condition: true/false.
  • map — выполняет целевой узел (agent или tool) для каждого элемента массива; Подробнее о Map.
  • output — финальный сборщик результата; выбирает, какие узлы попадут в общий output.

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

Рёбра, маппинг и условия

Каждое ребро соединяет sourcetarget и может содержать:

  • data_mapping — JSON‑объект, описывающий, какие поля из выходов исходных узлов попадут во вход целевого узла.
  • data_mapping_template — Liquid‑шаблон, позволяющий собирать произвольные строки/структуры на основе контекста.
  • condition (для рёбер из узла типа condition): true, false или пусто (всегда).

В редакторе есть отдельная панель «Настройки ребра», где можно переключаться между режимами JSON‑маппинга и Liquid‑шаблона, а также задать, по какому результату условного узла будет активировано ребро.

Запуск и отладка

  1. Запустите систему с её страницы (кнопка «Запустить систему»). Создаётся AgentSystemRun, запуск идёт в фоне.
  2. Страница запуска показывает:
    • общий статус и длительность;
    • итоговый output (строка как markdown или JSON);
    • таблицу «Результаты по узлам» с порядком выполнения, статусами, временем и количеством попыток;
    • для каждого узла — кнопки «Показать» (JSON), «Скопировать» и «Открыть» (модальное окно с JSON и, при необходимости, markdown‑представлением).
  3. Невыполненные узлы не имеют действий; узлы, которые не завершились, не показывают действия над выводом.

Эта же информация доступна для внутренних агентов (например, Setup Assistant) через AgentSystem, AgentSystemRun и описание формата в docs/agent_systems.md.

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