Skip to content

Agent 代码审查与变更交付证据链:Claude Code / Codex / OpenClaw / Hermes

Agent 写出 diff 不等于变更可合并;Agent 留下 review comment 也不等于系统应阻断发布。生产交付必须拆开:发现问题、验证问题、修复、验证修复、合并决策和发布对账,避免模型自评、自批、自合并。

Coding Agent 的隔离与 PR/CI 基础见 智能编码 Agent 企业操作手册,多 Agent handoff 见 多 Agent 委派与 Handoff 控制平面,证据与 effect 对账见 Agent 观测、取证与事故响应手册

30 秒总答法

我将 Agent 交付分为 author、reviewer、verifier、merge gate 和 deploy controller。Author 在独立 worktree 产生 patch;reviewer 只读 diff 和代码上下文,输出含 file:line、证据、严重度、置信度和复现路径的 finding;verifier 用测试、静态分析或最小复现确认 finding;merge gate 聚合 CI、分支保护、人工批准、风险策略和已确认 finding,输出可审计 decision。自动修复必须创建新 commit/attempt 并接受独立复审。每一步用 repo SHA、diff digest、测试报告、review revision、policy/approval 与最终 PR/deploy effect 组成证据链。

一、五种结论

结论产生者证据能否直接合并
Observationreviewer可疑 diff/context
Findingverifier 或高置信 reviewerfile:line、影响、复现
Fixauthor/fixer新 diff、测试意图
VerificationCI/scanner/testexit code、报告、artifact仍需门禁
Merge decisionbranch policy + 人类必需 check/approval才能合并

自然语言“LGTM”或“发现 bug”都是建议,不是系统状态。门禁读取结构化 evidence,不能从长评语猜测模型态度。

二、PR 证据链

text
issue -> plan -> isolated worktree + base SHA -> patch/commit
  -> CI/test artifacts -> independent review -> finding verification
  -> remediation commit -> re-review + checks -> merge decision -> deploy effect

每个节点关联 task_idrepo/base/head SHA、worktree/image digest、instruction/review profile digest、test command/exit code、finding revision、policy/approval 和 PR/deploy effect ID。发生 rebase 或 push 后,旧 review/CI 必须按 head_sha 失效,不能被错误复用。

json
{"finding_id":"f_19","head_sha":"abc123","file":"src/auth/session.ts","line":142,"severity":"important","claim":"logout 与 refresh 存在竞态","evidence":["file:142","test:repro_7"],"confidence":"verified","status":"OPEN"}

仅推测的内容标记 hypothesis,不作阻断合并的 finding;高风险 finding 应有最小复现、静态规则或第二独立 reviewer。

三、独立性与自动修复

风险错误设计正确设计
自评偏差author 自己批准reviewer/verifier 与 author 隔离 context/worktree
修复漂移comment 直接改 main新 task、新 commit、重新审查
过期结论rebase 后沿用旧 checksfinding 绑定 head SHA,push 后重验
注入PR 文本指挥 reviewer 执行命令payload 只作数据,拉取真实 diff,最小工具面
噪声所有模型意见阻断严重度、证据阈值、反馈闭环和结构化 gate

四、Runtime 映射

Claude Code

Claude Code Review 对 PR 使用多个专门 Agent 并行分析、验证、去重和分级发布 finding。其 check run 是 neutral,默认不阻断合并;若要门禁,应让组织 CI 读取机器可解析的严重度结果。这正是 reviewer 与 merge gate 分离。Desktop 支持逐文件 diff 审阅和通过 gh 展示 checks。

Codex

Codex 将 worktree、cloud environment、Skills 和多 Agent 工作流用于并行变更。工程上把 thread 的 diff、测试输出、worktree/环境与 PR 关联为 author evidence,再交独立 CI/reviewer 和分支保护决定 merge;Agent 完成消息不能等价于批准。

OpenClaw

OpenClaw 可由 webhook/cron 触发审查,但 PR payload 是不可信输入。审查任务只读、按 repo/PR/head SHA 拉取实际 diff;评论与合并使用不同 capability,CI/branch policy 是最终 authority。

Hermes

Hermes GitHub PR Webhook Guide 明确 PR 标题、描述和提交信息是 attacker-controlled,应以 gh pr diff 获取真实变更。其 PR Review Agent 展示 skill、cron/webhook 与 GitHub review 组合;gh 凭证必须限制 repo scope,自动 request-changes 与普通 comment 分开授权。

五、合并门禁与系统设计题

yaml
merge_gate:
  required: [head_sha_matches_review_and_ci, tests_pass, no_verified_important_findings, codeowner_approval]
  optional: [agent_review_advisory]
  forbidden: [agent_merges_own_patch, stale_review_reused]

设计企业 PR Agent 时,每个 PR/head SHA 创建 author attempt 和只读 reviewer attempt;finding 有证据/置信度/生命周期;high severity 经 verifier 或规则确认;fixer 创建新 commit 使旧 finding/check 失效并重跑;CI/CodeOwner/branch policy 才能 merge,生产发布另需 environment approval/effect 对账。

  • [ ] PR、base/head SHA、worktree、diff、测试与 finding 可关联。
  • [ ] webhook/PR 文本视作不可信数据,工具/凭证最小化。
  • [ ] author、reviewer、verifier、merge/deploy gate 职责分离。
  • [ ] 自动修复创建新 attempt/commit,并经过独立复审和 CI。
  • [ ] merge 与 deploy 有独立 policy/approval/effect evidence;Agent 不能自批自合。

延伸阅读

基于 MIT 许可发布