multi-agent-coding-system
斯坦福Terminal Bench #13的多Agent AI编程系统,用Orchestrator+
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
斯坦福Terminal Bench #13的多Agent AI编程系统,用Orchestrator+
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有遇到过这种情况:让一个AI助手去修改一个陌生的代码库,结果它折腾了半天,连项目结构都没搞清楚就乱改一通?问题在于,单个AI Agent的能力是有上限的——它既要理解任务、探索代码库,又要动手写代码,还不能出错,这本身就超出了"单兵作战"的合理边界。 Orchestrator(编排器)解决的就是这个矛盾:它不是一个AI在干活,而是一组AI协作分工——一个大脑(Orchestrator)负责规划和调度,多个专业Agent(Explorer负责调研、Coder负责编码)各司其职,把"理解任务"和"执行任务"解耦开来,让专业的人做专业的事。 这个思路在斯坦福大学Terminal Bench基准测试中得到了验证:Orchestrator系统以1378 Stars、#13的成绩超越了Claude Code,登上了排行榜。这不是一夜成名的偶然——背后是一整套多Agent协作框架的工程化实现。
Orchestrator的作者Danau5tin在2025年9月公开了这个项目。在此之前,斯坦福大学的Terminal Bench排行榜几乎被各大商业AI系统霸榜,而Orchestrator作为完全开源的方案,以非商业模型的组合(Orchestrator用Sonnet-4,subagent用Qwen-3)打出了#13的名次——比当时炙手可热的Claude Code还要靠前。 这次成功直接推动了作者继续深耕多Agent强化学习(RL)方向。2025年11月,基于同一套多Agent框架训练的14B参数Orca-Agent-v0.1模型,在Qwen3-14B的基础上实现了160.71%的相对性能提升,训练规模扩展到32块英伟达H100 GPU、256个并发Docker容器。整套训练代码和模型权重也一并开源。
图1展示了Orchestrator系统的整体架构
整个系统分为三层,每一层都有明确的职责边界: 第一层:Orchestrator(编排大脑)
Orchestrator是整个系统的中枢神经。它接收用户的任务指令,但永远不直接碰代码——这是整个设计的核心约束。Orchestrator的工作流程是:
Explorer Agent是代码库的"侦察兵"。它被 Orchestrator 派遣去理解陌生的代码结构,搜索特定文件、读取README、了解依赖关系,并将发现整理成结构化的Context报告返回。Explorer的核心能力是减少信息不对称——让Orchestrator在制定计划时能够基于真实的代码状态而非猜测。 Explorer Agent使用了强制报告(Forced Reporting)机制:如果连续3次解析动作失败,或者执行超时,系统会自动触发报告提交,避免Agent陷入死循环。 第三层:Coder Agent(编码Agent)
Coder Agent是真正的"代码工人"。它接收来自Orchestrator的具体实现指令,执行文件读写、代码编辑等操作。和Explorer一样,Coder也需要向Orchestrator返回结构化的Subagent Report,汇报完成情况。
系统的动作体系是代码质量的核心。Orchestrator采用XML标签 + YAML参数的格式来定义Agent的动作:
<SearchFiles>
<path>src/</path>
<pattern>*.py</pattern>
</SearchFiles>
每个动作由Parser解析,然后通过ActionHandler分发到对应的Manager执行。目前已定义的Pydantic动作模型超过15种,涵盖:
llm_client.py)封装了对多种LLM API的调用,内置重试逻辑,支持OpenAI、Anthropic、Azure等多种后端。这使得Orchestrator和Subagent可以使用不同的模型组合——比如Orchestrator用Sonnet-4做规划,Subagent用Qwen-3做执行,这种灵活的模型混用是性能优化的关键。Terminal Bench是斯坦福大学开发的一个AI基准测试,专门衡量AI系统在真实命令行环境中的任务完成能力。测试涵盖:Shell命令、Git操作、文件编辑、代码调试等真实开发场景,AI的表现直接在真实终端中评判,而非基于静态的文本评测。
图2:Orchestrator + Sonnet-4在Terminal Bench的排行榜表现
Orchestrator在Terminal Bench上取得#13的关键因素之一是上下文复用机制——Explorer在调研过程中发现的信息,会通过Context Store积累下来,后续的Coder Agent可以直接查阅,而不必重复探索。这种"复合智能"(Compound Intelligence)让每个动作都建立在前序发现的基础上,而非每次都从零开始。
图3:性能对比图表
需要说明的是,Orchestrator是一个纯CLI工具包,没有Web界面。使用方式是通过Python代码调用其API:
from multi_agent_coding_system.agents import OrchestratorAgent
agent = OrchestratorAgent(
model="claude-sonnet-4-20250514",
max_turns=10
)
result = agent.run("修复这个项目的README拼写错误")
安装过程需要Python >= 3.12,通过 pip 或 uv 安装依赖。Docker是可选的——如果只是用Orchestrator框架跑任务,本地Python环境即可;如果要进行RL训练或Terminal Bench评测,则需要Docker支持。
Orchestrator的设计哲学是"强委托+强验证",但这意味着系统运行成本是单Agent的2-3倍——每个任务至少需要一次Explore + 一次Code,Token消耗量较大。在简单任务上可能得不偿失。 此外,当前版本的上下文积累机制(Context Store)依赖Orchestrator主动查询,如果子Agent遗漏了关键信息,Orchestrator可能无法感知。从Terminal Bench的#13排名来看,表现已属优秀,但距离Top 10仍有差距,说明复合智能在复杂任务上仍有提升空间。
本报告基于项目GitHub仓库(Apache-2.0许可证)分析生成,数据截止2026年6月。