Preflight
Перед запуском сохранённой цепочки часто хочется знать, что она попытается использовать —
какие инструменты, MCP-серверы и AgentSkills — чтобы зарегистрировать или установить
недостающие части. CARL предоставляет статическую интроспекцию на ReasoningChain.
На что ссылается эта цепочка?
Заголовок раздела «На что ссылается эта цепочка?»chain.required_tools() # de-duplicated tool names from ToolStep configschain.required_mcp_servers() # MCP server names referenced by MCP stepschain.required_skills() # AgentSkill identifiers (URI or source string)Это чистые статические чтения — без выполнения, без LLM.
Preflight относительно контекста
Заголовок раздела «Preflight относительно контекста»chain.preflight(context) сравнивает требования с реестром контекста и возвращает
PreflightReport:
report = chain.preflight(context)print(report.format_text())if not report.all_present: print("register first:", report.missing_tools)PreflightReport
Заголовок раздела «PreflightReport»| Поле / член | Значение |
|---|---|
required_tools / required_mcp_servers / required_skills | Всё, на что ссылается цепочка. |
missing_tools | Инструменты, на которые есть ссылки, но которые не зарегистрированы в контексте (список MAESTRO «зарегистрировать перед запуском»). |
missing_mcp_servers / missing_skills | Зарезервировано (сейчас всегда пусто — MCP несёт свою собственную конфигурацию; разрешение навыков асинхронно/зависит от сети). |
all_present (свойство) | True, когда ничего не отсутствует. |
format_text() | Однострочная сводка, когда всё OK, иначе многострочная разбивка. |
Отчёт структурирован, а не нарративен — MAESTRO превращает его в модальное окно; CLI и CI читают сырые списки.
Смотрите также
Заголовок раздела «Смотрите также»- Обзор интеграции с MAESTRO
- Аналог в CLI:
care validateвыполняет preflight файла цепочки.