Компонент wiki_agent

Класс: WikiAgent

Группа: llm

Что делает

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

Обычно это центральный узел агентного сценария: именно сюда вы передаете задачу, а нужные инструменты подключаете к порту tools.

Когда использовать

  • Когда задача не сводится к одному ответу LLM и агенту нужны промежуточные действия.
  • Когда агент должен сам решать, что делать дальше: искать данные, читать skill, запускать код, работать с файлами.
  • Когда нужен более устойчивый сценарий, чем обычный llm, с планом, памятью шагов и debug-логом.

Как собирать с другими компонентами

Базовая связка для агентных flow:

begin -> wiki_agent -> end

Инструменты подключаются отдельно в порт tools у wiki_agent:

  • skill_library -> чтобы агент мог подгружать готовые skill-инструкции.
  • microsandbox -> чтобы агент мог читать и писать файлы, запускать shell/Python и публиковать артефакты.
  • mcp, request, browser_use и другие tool-провайдеры -> если агенту нужны внешние действия.

Практически полезная схема выглядит так:

begin -> wiki_agent -> end
wiki_agent.tools -> skill_library
wiki_agent.tools -> microsandbox

Важно: wiki_agent ожидает, что к нему подключен хотя бы один внешний tool-провайдер. Без инструментов агент не сможет выполнять рабочие шаги.

Что обычно настраивают

  • task_input (по умолчанию: '{{content}}')
  • state_key (по умолчанию: '') - ключ для продолжения паузного сценария через Redis.
  • config_preset (по умолчанию: 'balanced') - профиль работы агента: fast, balanced, deep.
  • model (по умолчанию: 'gpt-4o-mini')
  • provider (по умолчанию: 'openai')
  • temperature (по умолчанию: 0.3)
  • max_iterations (по умолчанию: 10) - максимум шагов в цикле рассуждения.
  • agent_mode (по умолчанию: 'react_memory_reflexion') - режим работы агента.
  • agent_timeout (по умолчанию: 300.0) - общий таймаут выполнения.
  • fail_on_error (по умолчанию: True) - падать ли с ошибкой, если задача или конфигурация некорректны.

Какой компонент выбрать: llm или wiki_agent

  • Выбирайте llm, если нужен один ответ по промпту или простой tool-calling.
  • Выбирайте wiki_agent, если агент должен сам строить план и выполнять цепочку действий.
  • Если в задаче есть файлы, код, промежуточные артефакты или несколько инструментов, обычно нужен именно wiki_agent.

skill_library и microsandbox можно подключать и к llm, но в этом случае модель будет использовать их как обычные tools без расширенного агентного цикла wiki_agent.

Skill-контракты

Если к агенту подключен skill_library, он может загружать skill-контракты. Такие skill задают не ответ пользователю, а правила работы агента: какие инструменты использовать, какие ограничения соблюдать и какой результат считать успешным.

В skill обычно задают:

  • input_schema
  • output_schema
  • success_criteria
  • tool_policy
  • budget_limits
  • domain_allowlist

Пример в flow

Сценарий "собери артефакт по инструкции":

begin -> wiki_agent -> end
wiki_agent.tools -> skill_library
wiki_agent.tools -> microsandbox

Что происходит:

  • begin передает пользовательскую задачу.
  • wiki_agent получает задачу через task_input.
  • skill_library отдает агенту описание подходящего skill.
  • microsandbox дает агенту рабочие инструменты: файлы, shell, Python, публикацию результатов.
  • end возвращает финальный ответ или ссылку на артефакт.

Видимость выполнения на доске

WikiAgent публикует журнал выполнения плана в meta.subflows с префиксом __plan__. Это отображается в Debug Panel на вкладке Subflows и позволяет видеть прогресс этапов (research, synthesis, artifact) и итоговый plan_journal.

Это особенно полезно, если агент работает дольше обычного или собирает результат в несколько шагов.