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

Генерация из описания

ChainBuilder.from_description — метаагент: он просит LLM спланировать цепочку из LLM / Tool / Memory / Transform / Conditional-шагов для задачи, затем парсит план через ReasoningChain.from_dict, применяя все обычные проверки (обнаружение циклов, ссылки на зависимости, предупреждения о синтаксисе ссылок).

from mmar_carl import ChainBuilder
chain = await ChainBuilder.from_description(
task="Outline the key arguments in the text, then condense them to 3 bullets.",
llm_client=client,
max_steps=4,
max_retries=2, # self-correct on validation errors
available_tools=["fetch", "summarise"],
)
ПараметрТипПо умолчаниюНазначение
taskstr— (обязательное)Описание задачи на естественном языке.
llm_clientAny— (обязательное)Async-клиент с методом get_response_with_retries(prompt, retries=…) или get_response(prompt).
available_skillslist[str] | NoneNoneИмена навыков, упоминаемые в промпте планировщика.
available_toolslist[str] | NoneNoneИмена инструментов, которые планировщик может использовать (tool-шаги должны использовать именно эти).
max_stepsint10Верхний предел планируемых шагов (вызывает ValueError при превышении).
max_workersint | str"auto"Настройка воркеров для результирующей цепочки.
extra_instructionsstr""Свободный текст, добавляемый в конец промпта планировщика.
max_retriesint2Раунды самокоррекции при неудачной валидации сгенерированной цепочки.

Это async classmethod — используйте await.

Полный след планировщика записывается в chain.metadata для автономной диагностики: planner_prompt, planner_reply и журнал попыток planner_attempts на каждую итерацию (включая ошибки валидации, запустившие повтор).