microsoft/conductor

A CLI tool for defining and running multi-agent workflows with the GitHub Copilot SDK and Anthropic Agents SDK.

Conductor – 用于确定性多代理 AI 工作流的 CLI

它是什么 – conductor 是一个命令行工具,可让您在单个 YAML 文件中描述 AI 代理(Copilot、Claude 等)的管道,然后在本地或 CI 中运行该管道。编排本身是确定性的:路由决策使用 Jinja2 模板表达,而非 LLM,因此相同的输入始终遵循相同的路径。

您为何可能在意 – 如果您构建或实验多步骤 AI 系统(代码审查机器人、研究后合成循环、规划后实现周期),您通常会编写难以版本化、测试或共享的临时脚本。Conductor 为您提供:

  • 可重复、版本控制的工作流(可在 PR 中进行 diff 的纯 YAML)
  • 提供商无关的代理 – Copilot、Anthropic Claude、Claude-Agent SDK、NousResearch Hermes 或 Azure Container Apps 沙箱执行。
  • 并行处理与子工作流 – 使用 for_each 进行扇出、可重用的子工作流,以及并行代理组。
  • 人机回环门控 – 暂停运行,让用户回答 Markdown 提示。
  • 可观测性 – Web 仪表板(实时 DAG 视图、流式代理输出)和 TUI“Fleet Manager”,可监控每个运行中的工作流、显示令牌使用量,并让您无需离开终端即可回答门控。
  • 安全限制 – 最大迭代上限、超时和明确终止步骤。
  • OpenTelemetry – 导出追踪至 Jaeger/Tempo 以进行更深入分析。

工作原理

  1. 编写 YAML,声明 workflow、agents 列表(模型、提示、输出结构)以及它们之间的路由(routes)。Jinja2 表达式可以计算值、决定下一步运行哪个步骤,或为子工作流构建输入映射。
  2. 运行它,使用 conductor run my-workflow.yaml --input key=value …。CLI 解析 YAML、启动所选提供商的 API 客户端,并执行每个步骤 – 代理、脚本、set 步骤、MCP 工具调用等。
  3. 观看它 – 添加 --web 以获取交互式浏览器 UI,或 --web‑bg 以无头模式运行并稍后打开仪表板。使用 conductor fleet(TUI)查看所有活动运行、回答人类门控,或从表单启动新运行。
  4. 观察与调试 – 会发出日志、令牌/成本计数器和可选的 OpenTelemetry spans;您也可以导出运行的 JSON 输出。

安装 – 项目提供一行安装程序,通过 curl … | sh(或 Windows 上的 PowerShell)拉取最新版本。它在底层使用 uv 创建隔离的虚拟环境,处理镜像、代理和完整性检查。您也可以通过 uv tool install、pipx 或纯 pip 安装。

关键概念

  • 提供商 – 在 workflow.runtime.provider 中选择 AI 后端(copilot、openai、claude 等)。每个提供商的模型名称使用 default_model 设置。
  • 步骤 –
    • agent – 使用提示调用 LLM。
    • script – 运行 shell 命令,可根据退出码或解析的 JSON 进行路由。
    • set – 使用 Jinja2 计算值(无 LLM、无子进程)。
    • mcp – 直接调用工具服务器,绕过 LLM 令牌使用。
    • terminate – 以状态结束工作流。
  • 路由 – 第一个匹配的 Jinja2 条件获胜;您可以根据代理输出、脚本退出或任何上下文变量进行路由。
  • 人类门控 – 步骤可以暂停并呈现 Markdown 提示;用户通过仪表板、CLI 或 TUI 回答。
  • 并行组 / for_each – 静态组一起运行;动态组在列表上扇出,每个实例可以调用子工作流。

典型使用案例

workflow:
  name: simple-qa
  entry_point: answerer
  runtime:
    provider: copilot
    default_model: gpt-5.5

agents:
  - name: answerer
    model: gpt-5.5
    prompt: |
      Answer the following question:
      {{ workflow.input.question }}
    output:
      answer:
        type: string
    routes:
      - to: $end

output:
  answer: "{{ answerer.output.answer }}"

使用以下命令运行:

conductor run my-workflow.yaml --input question="What is Python?"

CLI 会打印 JSON 结果,如果添加 --web,则会在仪表板中流式代理的推理过程。

谁应该使用它 –

  • 构建 AI 增强的开发者工具、代码审查机器人或研究助理的团队。
  • 原型化 多代理管道 的研究人员,需要可重现性和可观测性。
  • 想要在 CI/CD 中运行此类管道的 DevOps 人员(确定性路由意味着运行是可预测且可追踪成本的)。

限制 / 状态 – 核心 CLI 稳定,但几个提供商(Claude Agent SDK、Hermes、Azure Container Apps)标记为 实验性。项目积极维护(CI 徽章、版本化发布),并提供升级工具(conductor update)。


以上所有信息直接取自存储库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目