为什么批量一条一条把意见发给 Agent,它会在多个修订之间来回摇摆;把批注攒成一整批一次发回,Agent 一轮思考、一轮修改,命中率高得多。
核心循环
评审 → 行内批注 → 批量发回 → Agent 修订 → 复核 → Resolve
1. 留下批注
- 悬停 diff 任意一行,gutter 出现 +
- 点击(或光标在该行按
c) - 输入反馈,支持 Markdown
Cmd+Enter(macOS)/Ctrl+Enter保存,Esc取消
批注钉在精确行上——diff 因 Agent 修改而移动时,批注会跟着行走。
2. 批量发回
评审完成后点 diff 顶部的 Send to agent:
- Orca 把所有批注(带行锚点)组合成一条 prompt
- 打开 Send notes to 菜单,选要修订的工作树 Agent
- 也可以从同一菜单启动新 Agent 来做修订
键盘党:Send Review Notes to Agent 默认未绑定快捷键(避免冲突),在 Settings → Shortcuts 里给它分配一个即可,编辑器聚焦时也能用。
3. 复核与解决
- Agent 修订后批注保持钉在原位,方便逐条验证
- 点 Resolve 收起线程
- 未解决的批注会进入下一次 Send 批次
实战场景:三 Agent 评审
- 三个 Agent 交了三份 diff(基础课的场景)
- 你挑了最接近的一份
- 在它的 diff 上留 5~8 条批注:边界条件、命名、遗漏的测试
- 一次 Send 发回,让那个 Agent 修订
- 复核后 Resolve;还不对的继续下一轮
比「把意见粘贴到聊天框」快得多,而且每一条都有明确的代码锚点。
与 Attribution 配合
Attribution(来源标注,review/attribution)会标记 diff 里哪些行是 Agent 写的、哪些是人工改的——评审时你一眼能看出「AI 写的地方优先细看」。两者结合就是一套完整的 AI 代码评审工作流。
落地练习:完整走一遍批注循环
- 打开一份有真实改动的 diff
- 在 3 个不同位置留下批注(
c快捷键 + gutter 点击各试一次) - 故意留一条 Markdown 格式的(列表 / 代码块)
- Send to agent,观察它一次性收到全部批注
- Agent 修订后逐条验证、Resolve
怎么判断做对了?——你能说出批量发送相比逐条发送的好处,并完成一次「批注 → 发回 → 复核」闭环。
卡住了怎么办? 批注跟丢?确认是在 diff 视图里留的;跨编辑移动的批注跟随有少量延迟,刷新后应该归位。
小结
- 行内批注钉在行上,支持 Markdown,随 diff 移动
- Send to agent 把整批批注合成一条 prompt 发回
- 批注保持钉住便于复核,Resolve 收起线程
- 未解决批注自动进入下一批
- 与 Attribution 配合 = 严肃的 AI 代码评审工作流
下一节,提交、推送与开 PR。