README.zh-CN.md

May 23, 2026 · View on GitHub

🐝 后续:Hive

MCO 的"一条 prompt 调度多个 agent"的思路,现在在 Hive 里走得更远——浏览器里的多 agent 协作工作台,带稳定 agent 身份、共享任务图、一键重启全队。

想找多 CLI 协作工具,Hive 开始npm i -g @tt-a1i/hive)。MCO 当前用户仍可继续使用。


MCO

MCO Logo

npm version npm downloads GitHub stars License: MIT Python 3.10+ 5 built-in providers

MCO — 编排 AI 编程 Agent。任意提示词,任意 Agent,任意 IDE。

MCO 为你的主 Agent 配备一支 Agent 团队:同时调度 Claude、Codex、Gemini、OpenCode、Qwen,并行执行任务、审查结果、汇总共识。

English | 简体中文

Claude Code Gemini CLI Codex CLI OpenCode Qwen Code OpenClaw
Claude Code Gemini CLI Codex CLI OpenCode Qwen Code OpenClaw 🦞
claude gemini codex opencode qwen openclaw

AI 编程 Agent 已经是开发者的标配工具。但一个 Agent 只是一个视角。

像 Tech Lead 一样工作:把同一个任务分配给多个 Agent 并行执行,比较结果后再决策。

一条命令,五个 Agent 同时干活。

与 OpenClaw 配合使用

你的机器上运行着 OpenClaw?它可以直接使用 MCO 作为多 Agent 编排后端。只需告诉 OpenClaw 你的需求:

"用 mco 对这个仓库做安全审查,使用 Claude、Codex 和 Gemini,汇总结果。"

OpenClaw 读取 mco -h,学会 CLI 接口,自主编排整个多 Agent 工作流。你的本地电脑变成一个多 Agent 审查团队 — OpenClaw 是管理者,MCO 是调度器,Claude/Codex/Gemini/OpenCode/Qwen 是团队成员。

同样适用于 Claude Code、Cursor、Trae、Copilot、Windsurf,或任何能执行 shell 命令的 Agent。

MCO 是什么

MCO(Multi-CLI Orchestrator)是一个中立的 AI 编程 Agent 编排层。它将提示词并行分发给多个 Agent CLI,汇总执行结果,返回结构化输出 — JSON、SARIF 或 PR Markdown 报告。不绑定任何厂商,不改变你的工作流。

OpenClaw 为代表的多 Agent 热潮正在重塑开发者工作流 — Claude Code、Codex CLI、Gemini CLI 等工具已全面可用。MCO 更进一步:不依赖单一 Agent,而是编排一整个团队。

MCO 设计为被任意编排方 Agent 或 AI IDE 调用 — Claude Code、Cursor、Trae、Copilot、Windsurf 或 OpenClaw。调用方 Agent 自行组织上下文、分配任务,通过 MCO 将工作并行扇出到多个 Agent。例如,运行在你电脑上的 OpenClaw 可以调用 mco review,将代码审查同时分发给 Claude、Codex 和 Gemini — 一条命令就把本地环境变成多 Agent 审查团队。Agent 之间也可以互相调度:Claude Code 可以通过 MCO 分发任务给 Codex 和 Gemini,反之亦然。

一个 Agent 是工具,五个 Agent 是团队

没有任何一个 AI 模型能看到所有问题。每个模型有各自的训练数据、推理风格和盲区。只用一个 Agent,就像团队里有五个工程师却只问其中一个的意见。

MCO 把这变成团队工作流:

  1. 分配任务 — 你给 MCO 一个任务和一组 Agent。就像 Tech Lead 把同一份代码审查分配给五个团队成员。
  2. 并行执行 — 所有 Agent 同时工作,总耗时 ≈ 最慢的那个,而不是所有人的总和。
  3. 审查去重 — MCO 收集每个 Agent 的发现,跨 Agent 自动去重相同问题,追踪哪些 Agent 发现了什么(detected_by)。
  4. 汇总共识 — 可选地,让一个 Agent 汇总全部结果:大家达成了哪些共识,在哪些地方存在分歧,下一步该做什么。

实际使用中,不同 Agent 发现不同的问题:

  • 一个 Agent 发现了异步代码中的竞态条件,却忽略了 ORM 层的 SQL 注入。
  • 另一个立刻定位了注入问题,却完全没注意到竞态条件。
  • 第三个两个都没发现,但找到了资源清理路径中一个隐蔽的内存泄漏,而前两个对此毫无察觉。

这不是假设 — 不同模型确实擅长不同的事。有的长于安全分析,有的擅长逻辑流,有的对性能模式更敏感。并行跑 3–5 个 Agent 审查同一份代码,你得到的是视角的并集而非交集。结果比你挑任何单一 Agent 都更全面。

这个原则不限于代码审查:

  • 架构分析 — 不同 Agent 暴露不同的设计风险和取舍
  • Bug 排查 — 更广的代码路径和边界条件覆盖
  • 重构评估 — 多视角评判变更的影响范围和安全性

问题不是"哪个 AI Agent 最好" — 而是"为什么只用一个?"

核心特性

  • 并行扇出 — 同时分发到多个 Agent,wait-all 语义
  • 任意 IDE,任意 Agent — 在 Claude Code、Cursor、Trae、Copilot、Windsurf 或命令行中使用
  • Agent 互相调度 — Agent 之间可以通过 MCO 互相分发任务
  • 双模式mco review 结构化代码审查,mco run 通用任务执行
  • 跨 Agent 发现去重 — 多个 Agent 发现的相同问题自动合并,保留 detected_by 来源追踪
  • 共识引擎 — 合并后的 finding 会得到 consensus_score = agreement_ratio × max_confidence,并标记为 confirmed / needs-verification / unverified
  • LLM 共识总结--synthesize 额外执行一轮总结,输出跨 Agent 的共识/分歧摘要
  • 实时终端流模式--stream live 提供面向 TTY 的实时终端渲染;--stream jsonl 继续服务自动化消费者
  • 辩论模式--debate 在合并 finding 后追加第二轮 challenge/refine 辩论
  • 分工模式--divide files|dimensions 支持按文件或按审查维度拆分任务,同时复用现有合并 + 共识流程
  • CI/CD 集成--format sarif 对接 GitHub Code Scanning,--format markdown-pr 生成 PR 评论
  • 环境健康检查mco doctor 探测所有 provider 的二进制、版本和认证状态
  • Token 用量追踪--include-token-usage 可选输出各 Agent 和汇总的 token 消耗
  • 进度驱动超时 — Agent 自由跑完,仅在长时间无输出时取消
  • 自定义 Agent 注册 — 通过 .mco/agents.yaml.mcorc.yaml~/.mco/agents.yaml 注册 shim / ACP / Ollama Agent,并可用 mco agent list / mco agent check 检查
  • 可扩展适配器 — 统一接口适配任意 CLI Agent,不限于内置 provider
  • 机器可读输出 — JSON、SARIF 或 Markdown 输出,便于下游自动化

v0.9 新增内容

  • 共识引擎升级 — review 合并不再只是去重;每个 finding 现在都有:
    • agreement_ratio = detected_by_count / total_providers_ran
    • consensus_score = agreement_ratio × max_confidence
    • consensus_level = confirmed | needs-verification | unverified
  • 实时终端模式--stream live 为交互式终端提供实时进度视图,同时保留 --stream jsonl
  • 辩论模式--debate 让多个 Agent 在最终输出前对合并后的 finding 再做一轮质疑或补充。
  • 分工模式--divide files 按文件分片;--divide dimensions 按安全、性能、可维护性、正确性、错误处理五类维度自动分工。
  • 自定义 Agent 注册表 — 支持从 .mco/agents.yaml / ~/.mco/agents.yaml 发现自定义 Agent,包括 Ollama 本地模型。

内置 Provider

ProviderCLI状态
Claude Codeclaude已支持
Codex CLIcodex已支持
Gemini CLIgemini已支持
OpenCodeopencode已支持
Qwen Codeqwen已支持

适配器架构可扩展 — 添加新的 Agent CLI 只需实现三个钩子:认证检查、命令构建、输出标准化。

使用场景

场景命令效果
PR 代码审查mco review --format markdown-pr多个 Agent 并行审查,输出 PR 评论
CI 安全扫描mco review --format sarif结果直接上传 GitHub Code Scanning
架构分析mco run --providers claude,gemini,qwen多视角架构评估
部署前健康检查mco doctor --json确认所有 Agent 已安装且已认证
共识决策mco review --synthesize汇总 Agent 共识、标注分歧
辩论复核mco review --debate --providers claude,codex,gemini在最终输出前再做一轮 challenge/refine
文件分工审查mco review --divide files按文件大小优先、均衡分配到不同 provider
维度分工审查mco review --divide dimensions每个 provider 聚焦一个审查维度
实时 JSONL 流mco review --stream jsonlprovider 执行过程中输出 JSONL 事件流
实时终端流mco review --stream live交互式终端中的实时人类可读进度视图
查看 Agent 注册表mco agent list列出内置 + 自定义 Agent
检查单个 Agentmco agent check my-ollama验证某个自定义 Agent 或 Ollama 包装器

注意:--debate--divide 互斥,不能同时使用。

辩论模式完整示例:

mco review \
  --repo . \
  --prompt "审查这个 PR,并在最终排序前质疑证据不足的 finding。" \
  --providers claude,codex,gemini \
  --debate

分工模式完整示例:

mco review \
  --repo . \
  --prompt "审查这个 PR 的正确性和性能问题。" \
  --providers claude,codex,gemini \
  --divide dimensions

快速开始

通过 npm 安装(需要系统有 Python 3):

npm i -g @tt-a1i/mco

或从源码安装:

git clone https://github.com/mco-org/mco.git
cd mco
python3 -m pip install -e .

运行第一次多 Agent 审查:

mco review \
  --repo . \
  --prompt "Review this repository for high-risk bugs and security issues." \
  --providers claude,codex,qwen

Agent 友好的 CLI

MCO 的 CLI 完全自描述。运行 mco -hmco review -h 即可看到分组参数、默认值和用法示例 — 全在终端里。这意味着任何能执行 shell 命令的 AI Agent 都可以通过阅读帮助输出自主学会使用 MCO,无需文档,无需预训练。

实际使用中,你只需要告诉 IDE 里的 Agent 你想要什么:

"用 mco 把安全审查分发给 Claude 和 Codex,性能分析分发给 Gemini 和 Qwen — 并行执行。"

Agent 读取 mco -h,理解参数,组装命令,自主编排整个流程。你描述意图,Agent 处理剩下的一切。

使用方式

Review 模式

结构化代码审查,输出标准化的 findings(含严重级别、分类、证据、建议)。

mco review \
  --repo . \
  --prompt "Review for security vulnerabilities and performance issues." \
  --providers claude,codex,gemini,opencode,qwen \
  --json

Run 模式

通用多 Agent 任务执行,不强制输出格式,provider 自由完成任务。

mco run \
  --repo . \
  --prompt "Summarize the architecture of this project." \
  --providers claude,codex \
  --json

Doctor

在执行任务前检查所有 Agent 的安装、可达性和认证状态:

mco doctor
mco doctor --json

输出格式(Review 模式)

格式参数用途
人类可读报告--format report(默认)终端阅读
PR Markdown--format markdown-pr作为 GitHub PR 评论发布
SARIF 2.1.0--format sarif上传到 GitHub Code Scanning
机器可读 JSON--json下游自动化

共识引擎

MCO v0.9 将 review 合并从“简单去重”升级为“共识分析”:

  • agreement_ratio = detected_by_count / total_providers_ran
  • consensus_score = agreement_ratio × max_confidence
  • consensus_level = confirmed | needs-verification | unverified

三个等级的含义:

  • confirmed — 至少 50% 的 provider 报告了该 finding
  • needs-verification — 有 2 个及以上 provider 报告,但同意比例低于 50%
  • unverified — 仅有 1 个 provider 报告

这些信息会统一进入输出层:

  • JSON — 每个 finding 都带 consensus_scoreconsensus_level
  • SARIFconfidence 取自 consensus_score
  • Markdown — 按共识等级分组展示
  • Chain 模式confirmed 会显示成 confirmed-by

Review 协作模式

模式参数行为
并行默认所有 provider 审查同一份范围
Chain--chain顺序执行,后一个 provider 看到前一个的分析
Debate--debate对合并后的 finding 再做一轮 challenge/refine
文件分工--divide files按文件切片分工,大文件优先后轮转分配
维度分工--divide dimensions文件范围不变,但每个 provider 负责不同审查维度

--divide--chain--debate 互斥。

结果模式

模式行为
--result-mode stdout完整结果输出到 stdout,不写产物文件(默认)
--result-mode artifact写产物文件,输出摘要
--result-mode both既写产物又输出完整结果

使用 --save-artifacts 可在保持 stdout 返回的同时写入产物。

路径约束

限制 agent 可访问的文件范围:

mco run \
  --repo . \
  --prompt "Analyze the adapter layer." \
  --providers claude,codex \
  --allow-paths runtime,scripts \
  --target-paths runtime/adapters \
  --enforcement-mode strict

默认值与参数覆盖

MCO 默认零配置可用。直接运行即可,按需通过命令行参数覆盖行为。

关键运行参数

参数默认值说明
--providersclaude,codex逗号分隔 provider 列表
--stall-timeout900无输出进展超过此时间才取消(秒)
--review-hard-timeout1800review 模式硬截止;0 = 禁用
--max-provider-parallelism00 = 选中 provider 全并行
--enforcement-modestrict权限不满足时 fail-closed
--strict-contract关闭强制 findings JSON 契约(review 模式)
--formatreport输出格式:reportmarkdown-prsarif(后两者仅 review 模式)
--include-token-usage关闭各 provider 和汇总 token 用量(best-effort)
--synthesize关闭额外执行一轮 LLM 总结,输出共识/分歧摘要
--synth-providerclaude执行总结的 provider
--provider-timeouts未设置provider 级 stall timeout 覆盖(provider=seconds
--provider-permissions-json未设置provider 权限映射 JSON(见下方)
--save-artifacts关闭在默认 stdout 模式下同时写入产物
--task-id自动生成稳定的任务标识符,用于产物路径
--artifact-basereports/review产物输出基础目录
--diff关闭仅审查相对主分支 merge-base 的变更
--staged关闭仅审查 git staged 变更
--unstaged关闭仅审查未暂存变更
--diff-base自动分支 diff 的 Git 基线(例如 origin/mainHEAD~3
--stream关闭jsonl 输出机器可读事件流,live 输出实时终端视图
--transportshimshim(stdout 解析)或 acp(Agent Client Protocol JSON-RPC)
--agent未设置临时自定义 ACP Agent:--agent NAME "command",可与 shimacp transport 一起使用
--file未设置从文件读取 prompt,或用 - 从 stdin 读取
--quiet关闭仅输出最终文本,不带标题和格式;与 --json/--stream 互斥
--chain关闭顺序执行 provider,把前序输出传给后序
--debate关闭合并后再做一轮辩论复核
--divide关闭filesdimensions 分工模式
--perspectives-json未设置按 provider 指定 review 视角 JSON

默认 provider 权限:

Provider权限 Key默认值
claudepermission_modeplan
codexsandboxworkspace-write

示例:

mco review \
  --repo . \
  --prompt "Review for bugs." \
  --providers claude,codex,qwen \
  --save-artifacts \
  --stall-timeout 900 \
  --review-hard-timeout 1800 \
  --max-provider-parallelism 0 \
  --provider-timeouts qwen=900,codex=900

运行 mco review --help 查看完整参数列表。

自定义 Agent

配置文件按以下优先级加载:

  1. .mco/agents.yaml(项目级)
  2. .mcorc.yaml(项目根目录)
  3. ~/.mco/agents.yaml(全局)

查看当前可见的 Agent:

mco agent list
mco agent check my-ollama

示例 .mco/agents.yaml

agents:
  - name: my-acp-agent
    transport: acp
    command: my-agent --acp
    permission_keys: [sandbox]

  - name: my-shim-agent
    transport: shim
    command: my-review-bot --json

  - name: my-ollama
    model: qwen2.5-coder:14b

说明:

  • transport: acp 注册自定义 ACP Agent
  • transport: shim 注册基于命令行的 shim Agent
  • model: ... 会自动注册一个基于 Ollama 的本地模型 Agent

这意味着你可以把本地 Ollama 模型和 Claude、Codex、Gemini、OpenCode、Qwen 一起放进同一条 mco review / mco run 工作流里。

退出码

退出码含义
0成功
2FAIL / 输入 / 配置 / 运行时错误
3INCONCLUSIVE(仅 review 模式,启用 --strict-contract 时)

工作原理

You (Tech Lead)


  mco review / mco run

     ├─→ Claude Code  ──┐
     ├─→ Codex CLI      │
     ├─→ Gemini CLI     ├─→ 共识引擎 → Debate / Synthesize → 输出
     ├─→ OpenCode       │
     └─→ Qwen Code   ───┘

                    ┌─────────┼─────────┐
                    ▼         ▼         ▼
                  JSON    SARIF    Markdown-PR
               (stdout)  (CI/CD)  (PR 评论)

调用方 Agent(或用户)传入提示词和 provider 列表调用 mco,MCO 并行扇出到所有选中的 Agent,等待全部完成。

每个 provider 通过统一的适配器契约作为独立子进程运行:

  1. Detect — 检测二进制文件和认证状态
  2. Run — 启动 CLI 进程,传入提示词,捕获 stdout/stderr
  3. Poll — 监控进程状态 + 输出字节增长,判断活跃度
  4. Cancel — stall timeout 或硬截止时 SIGTERM/SIGKILL
  5. Normalize — 从原始输出中提取结构化 findings

执行模型是 wait-all:单个 provider 超时或失败不会中断其他 provider。

重试与容错

  • 瞬态错误(超时、限流、网络抖动)自动重试,指数退避(默认重试 1 次)。
  • 单个 provider 失败不影响其他 provider。
  • 每次调用都会真实执行 provider 并返回新输出(不复用结果缓存)。

在 Claude Code 内运行

MCO 在启动 provider 子进程前会自动清理 CLAUDECODE 环境变量,可以安全地在 Claude Code 会话中运行 mco

产物结构

当启用产物写入(--save-artifacts--result-mode artifact/both)时,会生成:

reports/review/<task_id>/
  summary.md          # 人类可读摘要
  decision.md         # PASS / FAIL / ESCALATE / PARTIAL
  findings.json       # 聚合后的标准化 findings(review 模式)
  run.json            # 机器可读执行元数据
  providers/          # 各 provider 结果 JSON
  raw/                # 原始 stdout/stderr 日志

许可证

MIT — 见 LICENSE