[控场AI]
· 8 分钟阅读· 4,249 字

Orca实战:一个提示词让Claude Code与Cursor同台PK

Orca实战:一个提示词让Claude Code与Cursor同台PK

开源工具 Orca 让两个 AI 编码代理在同一提示词下并行开发,由人工对比择优合并。

文章介绍开源多 agent 编排工具 Orca 的完整使用流程:在一台 Mac 上,把同一个提示词同时发给 Claude Code 和 Cursor Agent,二者各自在独立的 Git worktree 与分支中实现「为待办应用添加全部清除按钮」。Orca 本身免费,但调用的是用户已登录的 CLI 代理,消耗各自的订阅额度,底部状态栏的用量计量器可追踪消耗与重置时间。两个版本完成后由人审核 diff、给出反馈并在同一 worktree 内迭代,最终作者选择了经修正后的 Claude 版本,提交并合并进 main,落选版本连同 worktree 一并丢弃。文章强调人工审阅不可省略、bypass permissions 仅用于可丢弃项目,并指出该工作流适合技术选型与个人学习。

当两个AI Coding Agent同时为你干活

想象一下:你输入一个提示词,两个独立的AI编码代理在各自的工作区里同时开工,完成之后由你来对比、挑出更好的那个。这正是开源工具 Orca 的核心玩法。来自 YouTube 频道 AI Tambayan 的教程用一台 Mac Mini 完整演示了这套流程——让 Claude Code 与 Cursor Agent 针对同一个需求各写一版代码,再由人工审核择优合并。

对日常和 AI 结对编程的开发者来说,这个工作流的价值不在于"让 AI 写代码",而在于把"选型"这件事也交给了实证对比:与其争论哪个模型更强,不如让它们在同一个任务上跑一遍给你看。

Orca 底部状态栏显示用量计

准备工作:你需要什么

按教程的说明,跑通这套流程的门槛并不高,但有几个前提条件。

硬件与基础环境

一台电脑即可,演示用的是 Mac Mini。关键在于 Git——因为每个 agent 都会创建自己的 Git worktree,也就是一份独立的代码副本。这意味着两个 agent 各改各的,互不干扰,主分支也不会被弄乱。

Git worktree 是 Git 从 2.5 版本开始提供的能力:它允许同一个仓库同时检出多个工作目录,每个目录对应一个独立分支,但共享同一份 .git 对象库。相比 git clone 复制整个仓库,worktree 几乎不额外占用磁盘,创建和销毁都以秒计。这正好契合多 agent 编排的场景——每个 agent 在自己那份工作目录里读写文件、提交 commit,分支互不可见,主分支也不会被误改;任务结束后直接删除目录即可回收。Orca 之所以能把「并行开两个 agent」做得如此轻量,底层依赖的就是这一机制。理解 worktree 与普通分支的区别(分支只切换指针,worktree 才是真正的物理隔离),也就理解了为什么两个 agent 同时改同一个文件却不会互相打架。

至少一个已安装并登录的编码代理

Orca 本身不提供模型能力,它调用的是你电脑上已经装好、已经登录的 CLI 编码代理。演示环境里配置了 Claude Code 和 Cursor Agent 两个。这里有个容易被忽略的成本点:Orca 是开源的,但每个 agent 消耗的是你自己的订阅额度,agent 本身并不免费。

安装方式

从官方网站 orca.dev 或 GitHub 仓库的 releases 页面下载 Mac 版本,拖进 Applications 文件夹打开即可。

界面速览:左侧栏与工作区

教程对新用户做了一次快速导览。左侧栏包含 Search、Tasks、Artifacts、Skills、Automations 和 Orca Mobile,下方是项目列表;顶部是工作区标签页;底部状态栏则放着用量计量器——这个细节后面会展开讲。

为了演示,作者新建了一个不含真实代码和密钥的小型待办事项应用,并将其加入 Orca。项目列表里随即出现了这个 demo 及其 main 分支。需要注意的是,这次演示是通过 Orca 的命令行工具运行的,这样才能完整录制整个过程。

核心操作:一个提示词,两个 Agent

这是整套流程最精彩的部分。演示用的提示词是:给待办应用添加一个"全部清除"按钮,清空整个列表,并且保持改动尽量小。

Orca 随即创建了两个 worktree:Clear Claude 对应 Claude Code,Clear Cursor 对应 Cursor Agent。两者收到完全相同的提示词。侧边栏中,main 分支下出现了两个子 worktree,各自拥有独立分支——这正是它们不会互相冲突、也不会污染主分支的原因。

第一个需要决策的点来了:Claude Code 弹出询问,是否启用 bypass permissions 模式,也就是允许它不经确认直接执行命令。演示者同意了,因为这是一个用完即弃的 demo 项目。但教程明确提醒:在真实项目里,开启这个模式前务必三思。

启用 bypass permissions 前的确认提示

运行过程中,侧边栏会实时显示每个 worktree 的状态,你能一眼看出谁先完成。Claude Code 读取了两个文件,然后修改了 index.html 和 app.js,几秒钟就结束了。右侧的 diff 面板显示改动了两个文件、各加了一行——干净利落,符合"改动尽量小"的要求。Cursor Agent 在自己的 worktree 里也完成了,改的同样是这两个文件。

bypass permissions(也称 YOLO 模式或自动批准模式)是 Claude Code 等 CLI 编码代理提供的一档权限开关。默认情况下,agent 每次要执行 shell 命令、写文件或访问网络时都会暂停并向用户请求确认,这在交互式使用中是安全护栏。开启 bypass 后,这些确认被全部跳过,agent 可以连续自主执行多步操作,速度显著提升,但代价是失去人工拦截点:一条误判的 rm -rf、一次误改配置文件都会直接生效。因此在容器、临时目录或可丢弃的 demo 项目里开启风险可控,而在生产仓库、含密钥的环境或共享机器上则应保持默认的逐次确认,或改用更细粒度的 allowlist 规则。

人工审核:AI 干活,你做裁判

两个 agent 都交卷了,接下来才是真正体现工作流价值的部分。

作者在 Orca 的编辑器里打开 app.js 的 diff,新行有高亮标注。Claude 的做法是:点击"全部清除"时,把列表的 innerHTML 置空。功能上没问题,但有更干净的写法。改动行的旁边有一个 revert block 按钮——注意,按下它会把这部分内容在编辑器里还原,别误触。

作者给出的反馈是:在 app.js 里改用 replaceChildren,而不是 innerHTML。几秒之后,Claude 就更新了那一行,旧代码显示为红色、新代码为绿色,对比一目了然。

diff 中红色为旧代码,绿色为新代码

这里揭示了一个重要的协作模式:AI 负责产出,但你始终是审核者。反馈闭环可以在同一个 worktree 里快速迭代,不必推倒重来。

选定赢家:合并与清理

两个版本都实现了"全部清除"按钮,可以直接对比。Cursor Agent 一开始就用了 replaceChildren;Claude 最初用 innerHTML,但在收到反馈后改正了。作者最终选择了 Claude 的版本。

合并流程在 Orca 内的主项目终端完成:先查看两个 worktree 的 diff,确认都是两个文件各一行改动;然后提交 Claude 的工作到它的分支,再合并进 main。整个过程干净利落,没有任何冲突。落选的那个直接连同 worktree 一起丢弃,主分支毫发无损。

另一个实用技巧是终端分屏:把终端面板一分为二,上方看合并的 git log,下方看 main 中 app.js 的内容,确认新加的那行"全部清除"代码确实已经就位。

文中提到的 innerHTML 与 replaceChildren 是 DOM 操作中一组值得辨析的 API。element.innerHTML = "" 会把字符串解析为 HTML 再重建子树,虽然清空场景下结果相同,但它走的是 HTML 解析器路径,还会销毁并重建所有子节点、丢失已绑定的事件监听器,并带来潜在的 XSS 面(当赋值的字符串含用户输入时)。element.replaceChildren() 是较新的标准方法,直接以节点对象替换全部子节点,不经过 HTML 解析,语义更清晰、性能更好,也不会意外触发脚本执行。对于「清空列表」这类需求,replaceChildren() 无参数调用即是推荐写法。这也解释了演示中为何 reviewer 会要求 Claude 把 innerHTML 改成 replaceChildren——功能等价,但后者是现代、更安全的表达。

用量追踪:别让额度在关键时刻耗尽

底部状态栏的用量计量器值得单独一提。点开它,可以看到各个账号的使用情况——例如 Cursor Agent 和 Claude 各自的消耗,以及额度何时重置,还能查看用量明细、历史记录并管理账号。对于同时开着多个 agent 的用户,这个功能能避免"工作到一半才发现额度用完了"的尴尬。

四条实践建议

教程结尾给出了几条值得抄下来的提醒。

第一,合并前务必阅读 AI 写的东西,代码的最终责任人始终是你。第二,不要往提示词里放 API 密钥或密码,录屏时记得打码。第三,agent 开得越多,订阅额度消耗越快,建议从两个起步,就像演示里那样。第四,谨慎对待 bypass permissions,只在"坏了也无所谓"的项目里使用。

合并前先审阅 AI 产出的代码

这套工作流适合谁

回顾整个流程:在 Orca 里打开项目,把同一个提示词发给两个 agent,审核产出,给出反馈,合并最优版本。它特别适合需要做技术选型的团队——与其凭直觉判断哪个模型更懂你的代码库,不如让它们在同一任务上实跑对比,用 diff 说话。

对个人开发者而言,这套方法也有一个隐性收益:你可以从两个 agent 的不同实现中学到东西。演示中 Cursor Agent 直接用了更规范的 replaceChildren,而 Claude 在反馈后也改了过来——这种并排对照本身就是一次代码审查练习。

作者在结尾抛出了一个问题给观众:Cloud Code 和 Cursor Agent,你更喜欢哪个?这个问题本身也点明了 Orca 的定位——它不做裁判,只提供擂台。

#Orca教程#Claude Code#Cursor Agent#AI编程代理#Git worktree#AI代码审核#开源AI工具
分享:

相关推荐