Orca 如何用 ADE + 多 Agent 编排重写 AI 编程工作流
如果你同时用 Claude Code 写业务逻辑、Codex 重构模块,再开一个 OpenCode 做 UI 方案,大概率经历过这样的场景:
三个终端窗口来回切,记不清哪个 Agent 改了什么文件;某个 Agent 的改动把另一个的覆盖了;最后只能手动 diff 对比,再小心翼翼地合并。AI 编码 Agent 越来越强,但管理多个 Agent 的工作流,反而成了新的瓶颈。
Orca 就是冲着这个混乱来的。
它由 Stably AI 团队开发,采用 MIT 协议开源,在 GitHub 上迅速崛起,星数已超过 16,500 ,目前处于高速迭代阶段,几乎每天都有新版本发布。Orca 的全称是 ADE(Agent Development Environment,智能体开发环境) 。它不是传统 IDE,不是用来写代码的编辑器,而是专门用来管理和编排 AI 编程 Agent 的工具。
你可以把 Orca 想象成一个指挥中心:同时调度多个 AI 程序员,各自分配不同任务,然后比较谁的结果更好。
一、痛点:为什么需要 Orca?
Orca 不是一个凭空出现的工具,它解决的是多 Agent 工作流中非常具体的六个痛点。
1. 终端地狱:多个 Agent 多个窗口,管理靠记忆
当你只有一个 Agent 时,终端是够用的。但当你同时使用 Claude Code、Codex、OpenCode、Cursor CLI 时,你很快会陷入"终端地狱":
- 每个 Agent 一个窗口,来回切换成本极高;
- 忘记哪个 Agent 正在处理哪个任务;
- 某个 Agent 卡住了,你过了半小时才发现;
- 任务完成后,你不知道该先看哪个结果。
Orca 的解法是:把所有 Agent 放进一个统一的指挥中心。你在一个界面里创建任务、分发 prompt、查看进度、接收通知、对比结果。终端不再是散落的窗口,而是被 Orca 管理的"工作间"。
2. 上下文切换成本高:人成了"空中交通管制员"
多 Agent 并行时,最累的其实不是 AI,而是人。
你需要在不同 Agent 的输出之间来回跳转,记住每个任务的背景、当前状态、下一步动作。这种上下文切换会快速消耗注意力,让你从"开发者"变成"空中交通管制员"。
Orca 通过并行 Worktree + 统一 Diff 界面,把切换成本降到最低。你不需要记住每个终端的历史,只需要在 Orca 中看任务列表、看 diff、做决策。
3. 文件冲突与环境污染:多个 Agent 在同一目录下互相覆盖
这是最危险也最常见的问题。
如果多个 Agent 在同一个代码目录下工作,它们会:
- 同时修改同一个文件,互相覆盖;
- 让 Git 状态变得混乱;
- 一个任务的失败波及其他任务;
- 你无法判断某个改动到底来自哪个 Agent。
Orca 的核心机制------每个 Agent 独立 Git worktree------从根本上解决了这个问题。每个 Agent 拥有自己的独立代码副本和分支,文件完全不共享。一个 Agent 搞砸了,不会影响其他 Agent。
4. 结果对比与合并困难:想比较方案,只能手动 diff
当你让多个 Agent 处理同一个任务时,真正的价值在于比较不同方案。
但传统方式下,比较意味着:
- 手动打开多个终端;
- 手动运行
git diff; - 手动复制粘贴代码;
- 手动判断哪份更好;
- 手动合并。
这个过程繁琐、易错,而且很难逐行对比。
Orca 提供了直观的比较界面,让你可以并排查看每个 Agent 产出的差异,逐行审查,然后选择最优方案合并。它把"编码竞赛"变成了一种可操作的工作流。
5. 移动场景缺失:离开电脑就失去对 Agent 的监控
很多 Agent 任务需要长时间运行。你可能让 Claude Code 重构一个模块,预计要跑 20 分钟。但你不能一直守在电脑前。
传统工具下,一旦你离开电脑,就失去了对任务的监控。你不知道它完成了没有,也不知道它是否卡住了。
Orca 提供了 iOS 和 Android 移动端 App。你可以在手机上实时监控 Agent 进度,当 Agent 完成任务时收到推送通知,然后直接在手机上发送 follow-up 指令。出去喝杯咖啡、通勤路上,都能随时关注 Agent 的工作状态。
6. 工具链割裂:Agent、任务管理、代码审查散落各处
多 Agent 工作流涉及多个环节:
- AI Agent 在终端里写代码;
- 任务在 GitHub Issues 或 Linear 中管理;
- 代码审查在 PR 中进行;
- 结果通知在另一个工具里。
这些环节彼此割裂,导致工作流不连贯。
Orca 提供了原生 GitHub 和 Linear 集成。你可以在 Orca 内部浏览 PR、Issues 和项目看板,直接从任务创建 worktree。Agent 的输出、任务管理和代码审查,被收进同一个环境。
二、定位:Orca 是 ADE,不是 IDE,也不是 Agent
理解 Orca,最重要的是理解它的定位。
1. 它是 ADE,不是 IDE
传统 IDE 的核心是编辑代码。你打开文件、写代码、调试、运行。
Orca 的核心是管理和编排 AI 编程 Agent。它不是用来替代 VS Code 或 JetBrains 的,而是用来替代你桌面上那堆散落的终端窗口。
你可以这样理解:
- IDE:你写代码的地方;
- Orca:你指挥 AI 写代码的地方。
Orca 覆盖桌面端和移动端,支持 macOS、Windows 和 Linux 三大平台,还有配套的 iOS 和 Android App。
2. 它是编排层,不是 Agent
这是最容易混淆的一点。
Claude Code、Codex、OpenCode 是Agent。它们会调用大模型来理解任务、规划步骤、编写代码。
Orca 是编排层。它本身不是一个会调用大模型来"思考"的 Agent。它的核心循环中并没有一个 LLM。它不生成代码,不决定用哪个模型,也不替你做代码审查。
Orca 的"智能"体现在:
- 它为多个 Agent 提供隔离的工作环境;
- 它根据你的配置和规则分发任务;
- 它管理 Agent 之间的依赖、消息和审批;
- 它让你在一个界面中比较和合并结果。
真正调用模型的是被 Orca 启动的那些 Agent。Orca 管的是这些 Agent 的进程、终端、worktree、diff 和通知。
3. 它如何决定"用哪个 Agent"?
Orca 不需要用大模型来判断该用哪个 Agent。它的调度基于确定性的规则和你的显式配置。
你可以预设:
- 哪个 Agent 做协调者(Coordinator);
- 哪个 Agent 做执行者(Worker);
- 什么任务分发给什么后端;
- 在什么条件下触发决策门。
Orca 的调度顺序通常是:
任务复杂度 → 当前可用额度 → Worker 后端 → 模型/环境变量
这是一个机械化的、基于配置的决策流程,不涉及 LLM 的模糊判断。
4. 它和 OpenCode、Claude Code 的关系
Orca 不是 OpenCode 或 Claude Code 的替代品。
- OpenCode:模型无关的 AI 编程 Agent;
- Claude Code:Anthropic 的编程 Agent;
- Codex:OpenAI 的编程 Agent;
- Orca:这些 Agent 的编排平台。
如果你只用一个 Agent,Orca 的价值有限。如果你已经在用多个 Agent,并且开始感受到"工具能跑,但结果不好管"的压力,Orca 是目前最完整的解决方案之一。
5. 一个容易混淆的点:OrcaRouter
你可能看到过"Orca 可以路由模型"的说法,那指的是另一个同名产品 OrcaRouter。它是一个 API 网关/模型路由层,负责把请求发给不同模型。它和 Orca ADE 不是同一个东西。
三、核心机制:并行 Worktree
Orca 最核心的功能是并行 Worktree。
1. 什么是 Worktree?
Git worktree 允许你在同一个仓库中检出多个独立的工作目录,每个目录对应不同的分支。它们共享同一个 .git 仓库,但文件系统完全隔离。
Orca 把 worktree 变成了多 Agent 工作的基本原语。
2. 工作流程
假设你有一个编程任务,比如"修复支付模块的并发 bug"。
在 Orca 中,你可以:
- 写一个 prompt;
- 选择同时发给多个 Agent,比如 Claude Code、Codex、OpenCode、Cursor;
- Orca 为每个 Agent 自动创建一个独立的 Git worktree;
- 每个 Agent 在自己的目录中并行工作,互不干扰;
- 所有 Agent 完成后,你在 Orca 中并排查看 diff;
- 逐行比较,选择最优方案合并。
这个过程就像举办一场"编码竞赛"。Agent 之间的竞争会产生更好的解决方案,因为不同模型对同一个问题的理解不同,失败方式也不同。
3. 为什么这很重要?
- 隔离:一个 Agent 的改动不会污染另一个;
- 并行:多个方案同时探索,节省时间;
- 可比较:统一 Diff 界面,逐行审查;
- 可合并:选择最优方案,直接合并到主分支;
- 可回滚:每个 worktree 独立,失败不影响主仓库。
四、编排功能详解:从"并行"到"协同"
并行 Worktree 只是 Orca 的起点。真正的重头戏是编排(Orchestration)。
编排和并行的区别在于:
- 并行:同时跑多个 Agent;
- 编排:决定谁先谁后、谁依赖谁、谁审批、谁合并、谁通知谁。
Orca 通过一套结构化的原语,让多个 Agent 可以协同工作。
1. 用户预设的"协调者-执行者"模式
你可以指定一个 Agent 作为协调者(Coordinator) ,其他 Agent 作为执行者(Worker)。
例如:
- Codex 作为项目经理:负责拆解任务、派发工作、汇总结果;
- Claude Code 作为执行者:负责具体模块开发;
- OpenCode 作为执行者:负责另一个模块或提供备选方案。
Orca 忠实地执行你的配置。协调者 Agent 本身会调用大模型来思考,但 Orca 编排层不调用模型做调度决策。
2. 任务 DAG:定义依赖关系
DAG(有向无环图)是 Orca 编排的重要原语。
你可以定义任务之间的依赖:
- A 完成后,B 才能开始;
- A 的输出作为 B 的输入;
- B 和 C 可以并行,但都依赖 A;
- 所有任务完成后,触发最终合并。
例如:
text
任务 A:生成数据库 schema
↓
任务 B:编写 API 接口
↓
任务 C:编写测试
↓
任务 D:运行集成测试
这种依赖关系让多个 Agent 可以按顺序协同,而不是盲目并行。
3. Agent 间消息传递
Orca 提供了 Agent 之间的消息系统。
协调者 Agent 可以向执行者 Agent:
- 派发任务(dispatch);
- 询问进展(ask);
- 接收回复(report);
- 发送修正指令。
这让 Agent 之间可以像团队一样协作。一个 Agent 不再是孤立的终端进程,而是编排网络中的一个节点。
4. 决策门(Decision Gates)
在关键节点,你可以设置决策门。
决策门的作用是:
- 等待人工确认;
- 或者根据预设条件自动放行;
- 或者让协调者 Agent 做判断。
例如:
- Agent 完成代码修改后,不直接合并;
- 先进入决策门,等待你审查 diff;
- 你确认后,才继续执行后续任务。
这为自动化工作流保留了人类控制权。
5. 协调器循环(Coordinator Loops)
Orca 支持更高级的协调器循环。
一个协调者 Agent 可以:
- 持续监控其他 Agent 的状态;
- 根据结果决定下一步;
- 动态派发新任务;
- 在失败时重新分配;
- 在完成后触发合并。
这让 Orca 不仅是"人在管 Agent",也可以是 Agent 在管 Agent。
6. Orca CLI:让 Agent 驱动 Orca
Orca 提供了强大的 CLI 工具。
你可以编写脚本来自动化工作流:
- 创建 worktree;
- 保存快照;
- 模拟点击;
- 填充表单;
- 触发 Agent;
- 查询状态。
更重要的是:Agent 也可以反过来驱动 Orca 本身。
例如,一个协调者 Agent 可以通过 CLI:
- 创建新的 worktree;
- 启动新的 Agent;
- 获取 diff;
- 触发合并;
- 发送通知。
这意味着 Orca 不仅是人类操作的工具,也可以成为 Agent 工作流中的基础设施。
7. 规则调度,不是 LLM 调度
再强调一次:Orca 的编排层不调用 LLM 来做调度决策。
它的调度基于:
- 你的配置;
- 预定义规则;
- 任务 DAG;
- 决策门;
- CLI 脚本。
真正调用模型的是 Agent。Orca 负责的是环境、隔离、依赖、消息、审批和合并。
8. 一条指令的编排流转示例
假设你在 Orca 中输入一条指令:
"重构用户认证模块,要求兼容旧接口,并补充测试。"
Orca 可以这样编排:
- 创建多个 worktree;
- 把同一 prompt 分发给 Claude Code、Codex、OpenCode;
- 三个 Agent 并行工作;
- 协调者 Agent(比如 Codex)监控进度;
- 完成后,协调者汇总三份 diff;
- 决策门等待你审查;
- 你选择最优方案;
- Orca 合并到主分支;
- 移动端推送通知;
- 如果需要,继续派发测试任务。
这就是从"并行"到"编排"的完整闭环。
9. 编排能力总览
| 编排原语 | 作用 | 示例 |
|---|---|---|
| 并行 Worktree | 多方案同时探索 | 同一 bug 发给 5 个 Agent |
| 任务 DAG | 定义依赖关系 | A 生成 schema → B 写 API → C 写测试 |
| Agent 消息 | 协调者与执行者通信 | PM Agent 派发任务 |
| 决策门 | 人工或自动审批 | 合并前等待确认 |
| 协调器循环 | Agent 管理 Agent | Codex 调度 Claude Code |
| Orca CLI | 自动化与反向驱动 | 脚本创建 worktree、Agent 驱动 Orca |
| 规则调度 | 确定性分发 | 按任务复杂度、额度、后端选择 Agent |
五、其他亮点:完整的 Agent-first 开发环境
Orca 不只是调度器,它围绕 Agent 工作流提供了完整工具链。
1. Ghostty 级终端
- 支持 WebGL 渲染;
- 无限分屏;
- 重启后滚动历史不丢失。
对于长时间运行 Agent 的场景,这是很实际的体验改进。
2. Design Mode
Orca 内置 Chromium 窗口。
你可以直接点击网页上的任何 UI 元素,Orca 会自动提取对应的 HTML、CSS 和截图,并直接注入到 Agent 的 prompt 中。做前端开发时,这比手动描述元素位置高效得多。
3. 原生 GitHub 与 Linear 集成
- 在 Orca 内部浏览 PR、Issues;
- 查看项目看板;
- 直接从任务创建 worktree。
Agent 的输出、任务管理和代码审查,被收进同一个环境。
4. SSH Worktrees
如果你有一台性能强劲的远程服务器,可以让 Agent 在远端运行。
Orca 会自动处理:
- 远程重连;
- 端口转发;
- 远程 worktree 管理。
5. 移动端 Companion
- iOS 版已上架 App Store;
- Android 可以通过 APK 安装;
- 实时监控 Agent 进度;
- 接收任务完成推送;
- 直接在手机上发送 follow-up 指令。
6. 支持 20 多种 Agent
Orca 支持几乎市面上所有主流的 AI 编程 Agent,包括:
- Anthropic 的 Claude Code;
- OpenAI 的 Codex;
- GitHub 的 Copilot CLI;
- xAI 的 Grok;
- 开源的 OpenCode;
- Google 的 Antigravity;
- 小米的 MiMo Code;
- Pi、Devin、Goose、Cline、Continue 等。
总共有 20 多种,而且架构非常开放:只要是在命令行中运行的 AI Agent,理论上都可以接入。
你可以在 Orca 中为不同 Agent 配置不同 API 密钥,自由切换。
六、安装与上手
安装 Orca 非常简单。
桌面端
从官网 onOrca.dev 下载,支持:
- macOS;
- Windows;
- Linux。
macOS Homebrew
bash
brew install --cask stablyai/orca/orca
Arch Linux
AUR 中有对应的包。
安装完成后
- 配置你的 API 密钥;
- 创建 worktree;
- 运行 Agent;
- 使用 Orca CLI 自动化工作流。
七、适用人群与边界
Orca 最适合:
- 已经在日常工作中频繁使用多个 AI 编程 Agent 的个人开发者;
- 有基本代码评审和分支合并习惯的小团队;
- 需要并行探索多个方案、比较不同模型输出的场景;
- 需要远程运行 Agent、移动监控进度的用户。
但也要坦诚地说:
- 并行不是免费的。更多 Agent 意味着更多 Token 消耗、更高协调开销、更嘈杂的输出;
- Orca 帮你管工作区、管 diff、管通知,但它不会告诉你五份 diff 中哪一份是正确的;
- 如果团队还没有稳定的评审流程,直接扩大并行 Agent 数量,只会放大审核成本。
八、结语:从单 Agent 到多 Agent 编排
AI 编程工具的发展路径,正在从"单 Agent 替代开发者"转向"多 Agent 协作 + 人做决策"。
当你有五份来自不同模型的代码方案摆在面前时,瓶颈不再是 AI 能不能写,而是你能不能高效地挑出最好的那一份。
Orca 给出的答案,是一个专门的编排环境:
- 从单 Agent 到多 Agent 协作;
- 从本地到云端;
- 从桌面到移动;
- 从并行到编排;
- 从终端地狱到指挥中心。
它不替你做决定,但它让做决定这件事,从"翻五个终端窗口"变成了"在一个控制台里点几下"。