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

Обзор шагов

Цепочка CARL — это список шагов. Каждый шаг — типизированный объект-описание, который объявляет, что делать и от чего зависит. DAG-исполнитель выбирает executor на основе типа шага.

Используйте типизированные классы (LLMStepDescription, ToolStepDescription, …) для нового кода — они дают проверяемые типы полей и явное намерение. Устаревший единый класс StepDescription по-прежнему принимается для обратной совместимости; преобразуйте его с помощью legacy_step.to_typed_step().

Все классы шагов наследуют StepDescriptionBase и получают эти поля:

ПолеТипПо умолчаниюНазначение
numberint— (обязательное)Номер шага в последовательности.
titlestr— (обязательное)Читаемое название.
dependencieslist[int][]Номера шагов, которых ждёт этот шаг.
triggered_bylist[str][]Имена событий, блокирующих шаг (см. шаги с событиями). Шаг становится готовым только когда все указанные события были испущены и числовые dependencies выполнены.
checkpointboolFalseОтметить как контрольную точку для отката RE-PLAN.
checkpoint_namestr | NoneNoneНеобязательная метка контрольной точки.
replan_enabledbool | NoneNoneПереопределение RE-PLAN на уровне шага (None = использовать политику цепочки).
metricslist[MetricBase][]Метрики, вычисляемые после выполнения шага.
loop_back_toint | NoneNoneШаг, к которому нужно вернуться — см. циклы.
loop_configLoopConfig | NoneNoneУсловие цикла + ограничение итераций.
cacheStepCache | NoneNoneМемоизация результата — см. кэширование.
ТипКлассЧто делает
llmLLMStepDescriptionReasoning по типу chain-of-thought с LLM (по умолчанию).
toolToolStepDescriptionВызывает зарегистрированную Python-функцию.
memoryMemoryStepDescriptionread / write / append / delete / list в общей памяти.
transformTransformStepDescriptionПреобразование данных без вызова LLM.
conditionalConditionalStepDescriptionПереход к шагу на основе условия.
structured_outputStructuredOutputStepDescriptionВывод LLM, ограниченный JSON-схемой.

Они описаны на странице расширенных шагов и имеют полноценные руководства в своих разделах (Orchestration, Skills, MCP, Evaluation).

ТипКлассЧто делает
mcpMCPStepDescriptionВызывает инструмент на MCP-сервере.
mcp_resourceMCPResourceStepDescriptionЧитает именованный MCP-ресурс в память.
agent_skillAgentSkillStepDescriptionЗапускает папку AgentSkill.
agent_handoffAgentHandoffStepDescriptionДелегирует выполнение полной под-цепочке.
supervisorSupervisorStepDescriptionLLM маршрутизирует задачу в одну из N под-цепочек.
debateDebateStepDescriptionМногоагентная дискуссия по кругу + судья.
parallel_samplingParallelSamplingStepDescriptionСемплирует N ответов, голосует / выбирает лучший.
human_inputHumanInputStepDescriptionПауза для ввода от человека (вызываемый объект или вебхук).
tool_discoveryToolDiscoveryStepDescriptionОбнаруживает и регистрирует инструменты во время выполнения.
evaluationEvaluationStepDescriptionВстроенный контроль качества вывода другого шага.
  • Циклы — повторный запуск диапазона шагов до выполнения условия.
  • Кэширование — мемоизация результата шага в рамках запуска.
  • Динамические ссылки — $history, $memory, … связывают шаги между собой.