agent-diff-guard
June 9, 2026 · View on GitHub
这份文档回答一个问题:
agent-diff-guard要怎么从一个单兵 dogfood 的脚本,长成一个生产级、有人愿意付费的产品。它不是路线图(那在 ROADMAP.md)。它是判断:为什么这个位置存在、护城河在哪、谁会付钱、定价怎么定、最大的风险是什么。
1. 一句话定位
当 AI agent 在你没盯着时改了该看一眼的东西,它在合并前把那 1–3 处拎到你眼前,逼一次确认。
平时安静放行,关键时刻刹车。不是又一个通用 coding agent,也不是又一个 dashboard。
2. 它站在一个 agent 时代才出现的新位置
过去十年的开发工具,默认的世界模型是 「一个人 × 一双手」——你写的每一行代码都经过你的眼睛。code review、CI、lint 都建立在这个前提上:改动是稀缺的、人类产生的、可被人类逐行看完的。
agent 时代把这个前提击穿了。现在是 「一个人 × N 个 agent」:
- 你派 4 个 agent 同时干活,它们产出的 diff 总量远超你能逐行看完的速度。
- 你不在每个 agent 的回路里——你是在事后看结果,而不是在过程中盯着。
- agent 足够"听话"地完成了主任务,但顺手做的事没人审:一个本该只改文档的 agent 动了 CI;一个为了让测试变绿直接删了测试;一个新增了一行硬编码密钥。
这些改动会安静地通过 review 溜进主干——因为 review 的人也信任 agent,也没时间逐行看。直到出事你才知道。
核心洞察:agent 让"产出代码"变便宜了,于是"审查代码"成了新的瓶颈。而现有工具全都在帮你产出得更快,没有一个在帮你审得过来。
这个位置——怀疑 agent、要审 agent、为"一个人管 N 个 agent"而生的守门人——结构上是空的。下一节解释为什么它会一直空着。
3. 护城河:为什么 harness 厂商结构上不会做这个
Claude Code / Cursor / OpenHands / 各家 coding agent harness 的北极星指标是"让 agent 写出能用的代码"。它们的整个产品、定价、叙事都建立在"我的 agent 很强、很自主、值得信任"之上。
一个怀疑自己 agent、要在合并前拦下它的功能,和它们的核心叙事是冲突的:
- 它等于在产品里承认"我的 agent 会干坏事,你得防着它"。
- 它给 agent 的自主性踩刹车,而它们卖的就是自主性。
- 它最有公信力的形态是第三方、中立、跨 agent的——而厂商做的任何"自审"都天然有"既当运动员又当裁判"的信任折扣。
所以这是一个结构性空位,不是"它们还没顾上"。这构成第一条护城河:叙事冲突 → 在位者不会真心做。
第二条护城河是判断力的积累(见第 5 节):哪些 agent 改动"几乎一定该让人看一眼",是领域 know-how,不是几行 regex。误报防线(第 4 节)做得越久、被真实 diff 校准得越多,越难被后来者一夜追平。
4. 不可妥协的设计哲学:宁可漏,不可烦
一个老是误报的守门人,三天就会被关掉(狼来了)。误报是这个产品的头号死因。
所有设计决策都服从这一条:
- 第一版只抓"几乎一定该让人看一眼"的改动,误报压到接近零。抓得准 >> 抓得全。
- 每条规则进
wake-you-up(会阻断/惊醒你)级别前,必须能回答:"什么正常改动不会被它误伤?"——想不出反例的规则,太宽,不许进。 - 拿不准的改动降到
look-once(弱提示,不阻断),或者干脆不报。 - 一次最多拎出 1–3 处(
--max),绝不刷屏。守门人的价值是"把注意力聚焦到最该看的那一两处",不是"列出所有可疑"。
这条哲学也是与所有现有工具的根本区别:secret 扫描、SAST、linter 的文化是"宁可错杀,不可放过"(覆盖率优先),它们靠"可配置忽略"来对抗噪音。我们反过来——默认极度克制,信任优先,只在高确信时才打断你。 这是为"人类注意力是 agent 时代最稀缺资源"这个前提专门设计的。
5. 差异化:它和相邻工具到底有什么不同
| 类别 | 代表 | 它们的世界模型 | 为什么替代不了 agent-diff-guard |
|---|---|---|---|
| AI code review | CodeRabbit、Greptile、Qodo、Graphite、Cursor bugbot | "帮你把每个 PR 审得更全/更深" | 目标是覆盖与深度,会产出大量评论;我们目标是克制与聚焦,只拎 1–3 处。它们审"代码对不对",我们审"agent 是不是越界/作弊了"。 |
| Secret 扫描 | GitGuardian、TruffleHog、Gitleaks | "扫出所有泄露的密钥" | 只是我们规则集里的一条。它们不懂"删测试骗 CI""任务范围外顺手改"这类 agent 独有的雷。 |
| 供应链/依赖安全 | Snyk、Socket.dev、Dependabot | "已知漏洞 + 恶意包" | 同上,是我们"依赖清单改动"规则的上游;但它们不判断"这次依赖改动和声称的任务相不相关"。 |
| policy-as-code / IaC | OPA、Checkov、tfsec | "基础设施配置合不合规" | 我们借鉴它"碰了 IaC 就该确认"的判断,但我们是合并时的人在回路守门,不是 CI 里的硬性 gate。 |
| pre-commit / git hook 生态 | pre-commit.com、Husky、lefthook | "在本地跑一堆检查的框架" | 它们是承载我们的管道(我们就装成 pre-push hook),不是竞品。我们是装进这个管道里的那份判断力。 |
真正独有、CI/lint/任何现有工具都做不了的能力,是「任务 vs 实际改动的偏离检测」(task-drift): 你声称的任务是 A,agent 却顺手改了和 A 无关的 B。这个判断需要"任务意图"这个输入——而只有在 agent 时代,"每次改动都对应一个可被记录的任务描述/prompt"才成立。这是我们结构上独占的信号源。
6. 商业化:三段式漏斗
经典的开发者工具 OSS → 商业化路径,每一段都有明确的角色:
段 1 — 开源 CLI(获客 / 信任)
- 形态: 现在这个。
bun src/cli.ts check+ 一行装 pre-push hook。MIT、免费、本地跑、不上传任何代码。 - 作用: 建立信任(代码本地、开源可审)、积累 star 与口碑、收集真实误报/漏报反馈来打磨判断力。
- 关键: "代码不离开你的机器"是个人开发者敢用的前提,也是 vs 云端 AI review 工具的信任优势。
段 2 — 团队版 / GitHub App(留存 / 变现起点)
- 形态: GitHub App,在 PR 上以评论形态呈现守门发现(而不只是本地 hook)。把"一个人的刹车"变成"团队的共识刹车"。
- 为什么这是留存抓手: PR 是团队协作的中心。一旦守门发现出现在 PR 评论里、被团队讨论、被纳入 merge 流程,它就长进了团队的肌肉记忆——个人 hook 可以随手
--no-verify,团队流程里的 gate 不行。 - 付费点: 按贡献者/按仓库订阅。团队独有价值:跨成员的规则统一、谁放行了什么的记录、把"哪些 agent 改动该确认"的判断中心化配置。
段 3 — 企业版(扩张 / 高 ARPU)
- 形态: 自托管 / 私有部署 + 治理层。
- 付费点(企业留存抓手,行业通用): SSO/SAML、审计日志(谁在何时放行了哪条 agent 越界改动——这在 agent 时代是合规刚需)、policy 中心化与强制、SOC2、按组织的规则市场。
- 叙事: 当一个组织里有几百个工程师 × 每人 N 个 agent,"谁的 agent 改了生产配置、谁批准的"会变成审计与合规问题。我们是这个问题的天然记录者。
付费意愿的本质: 个人开发者付的是"省下逐行审 agent diff 的注意力";团队付的是"避免一次 agent 越界改动溜进主干的事故";企业付的是"agent 改动的可审计性与合规"。痛感随组织规模指数放大——这正是好的 land-and-expand 曲线。
7. 定价方向(anchor 待联网调研校准)
开发者工具行业的定价区间是稳定的行业常识,先用它锚定;具体数字待市场调研返回后校准。
- 个人 / OSS: 免费(段 1)。这是漏斗口,不收费。
- 团队版: 典型开发者协作工具落在 $10–30 / 贡献者 / 月区间(对标 CodeRabbit、Graphite、Linear 这类按 seat 的协作工具)。也可考虑按活跃仓库或按 agent 改动量计费,与"价值随 agent 用量增长"对齐。
- 企业版: 自定义报价,年付,通常起步 数千美元 / 年,加 SSO/audit/SOC2 溢价。
计费维度的选择是个战略决策: 按 seat 简单但和"价值"脱钩(价值来自 agent 数量,不是人数)。按"被审查的 agent 改动量 / 活跃 agent 数"计费更贴合"一个人 × N agent"的世界——一个超级个体用 10 个 agent,应该比一个只用 1 个 agent 的人付更多。这可能是定价上的差异化点。
⚠️ 本节数字为行业 anchor,需用真实竞品定价页校准后再对外承诺。市场调研完成后增补。
8. 最大的风险与应对
| 风险 | 说明 | 应对 |
|---|---|---|
| 被原生功能吃掉 | Cursor/Claude Code 出一个"改动确认"功能 | 靠护城河 #1(叙事冲突,它们做的是"自审",有裁判信任折扣)+ 跨 agent 中立性。我们守的是所有 agent 的改动,不绑定单一 harness。 |
| 误报毁掉信任 | 一次刷屏/误杀就被关掉 | 哲学 #4 是硬约束;贡献流程强制"不误报测试用例";误报 issue 是头号优先级。 |
| 价值太轻,不值得付费 | "不就是几条 regex 吗" | 价值不在 regex,在判断力的持续校准(被海量真实 agent diff 训练过的"该不该惊醒"的边界)+ task-drift 这个独占信号 + 团队/企业的协作与审计层。 |
| 分发触达不到用户 | 好工具没人知道 | 多渠道:GitHub Marketplace(团队版天然入口)、npm/homebrew(CLI)、可能的 Cursor/VS Code 扩展。OSS 口碑是冷启动主引擎。 |
9. 一句话总结
现有工具都在帮你让 agent 跑得更快。
agent-diff-guard是第一个帮你在 agent 跑得太快时踩一脚刹车的——而且只在真该刹车时踩。这个位置因 agent 时代而生,因在位者的叙事冲突而长期空缺,因判断力的持续积累而越来越深。