Rule — 独立 agent 审查(消除作者 anchor bias)¶
触发场景:写完任何 P0/P1 级别的核心代码后(调度、状态机、持久化、安全相关)。
为什么需要这个规则?¶
v0.10.44 的关键发现:
| 轮次 | 视角 | 发现 bug 数 |
|---|---|---|
| v0.10.38 自我 review 第 1 轮 | 自己新代码 | 2 |
| v0.10.40 自我 review 第 2 轮 | MV3 持久化 | 3 |
| v0.10.41 自我 review 第 3 轮 | 跨模块同款 | 1 |
| v0.10.43 自我 review 第 4 轮 | 数据 / 错误处理 | 0(以为收敛) |
| 独立 agent fresh-eyes | 不带 anchor | 3(含 1 个 P0) |
根本原因:自己写的代码自己 review,下意识按"我当初的思路"看。
anchor bias 是认知偏见,不是技术问题 —— 无法用更多轮 review 消除,只能换视角。
具体案例(ISSUE-0028):
v0.10.40 的
doResumeFromInterception末尾我写了manageQueue()。 4 轮 review 我都路过这行,下意识认为"启动了调度"。 独立 agent 直接对比resumeBatch:735-736的 canonical 模式, 一眼看出pumpScheduler/pumpPager漏了。
触发条件¶
必须跑独立 agent 审查的场景:
| 场景 | 例 |
|---|---|
| 调度 / 状态机改动 | doResumeFromInterception、resumeBatch、onInterception |
| MV3 持久化机制改动 | 新加 storage key、改 alarm 注册 |
| 安全相关改动 | auth、cookies、token 处理 |
| 跨模块大改动 | 涉及 background + content + UI |
| 修了 P0 bug 之后 | 确认没引入新问题 |
可选跑独立 agent 的场景:
- 写完任何"看着很简单但真要写就发现 corner case 很多"的功能
- 改了 1-2 个版本前的核心代码(自己已忘记当初思路)
用法(Agent tool)¶
Agent({
description: "Independent fresh-eyes audit",
subagent_type: "general-purpose",
prompt: `
独立审查 <project path>(v<version>)。
## 上下文:我已经做过哪些 review(避免重复)
- <轮次 1>: <发现内容>
- <轮次 2>: ...
## 我可能的盲区(请重点查)
- <盲区 1>
- <盲区 2>
- ...
## 约束
- 不要扫 X(已有工具)
- 不要重复 Y issues
- 重点找:真 bug,不是 quality 改进
- 输出 < 800 字
## 输出格式
1. 真 bug 清单(高确定性)
2. 可疑但需更多上下文
3. 明确不是 bug 的复核
如果没找到真 bug,明确说"未找到,确认收敛"。不要凑数。
`
})
关键 brief 原则¶
- 明确告知前几轮做了什么 —— 避免 agent 重复挖你已挖过的角度
- 明确我可能的盲区 —— 让 agent 知道你看哪个少
- 限定约束(不要凑数 / 不要 quality 改进)
- 限制输出长度 —— agent 倾向长篇大论,强制 800 字内
- 要求"未找到就明确说" —— 否则 agent 可能为了交差列假命题
Trust but Verify¶
agent 给的 bug 清单 必须验证再修:
# 对每个 agent 报告的 bug:
1. grep 验证位置(行号是否对得上)
2. 读上下文确认 agent 理解正确
3. 看是否真是 bug 还是 agent 误判
4. 修复后再跑一次扫描验证
agent 也会误判 / hallucinate。约 70-80% 命中率是合理预期。
流程图¶
写完 P0/P1 代码
↓
自己跑 N 轮 review(按 MV3持久化陷阱清单 等 rule)
↓
跑 pnpm scan:mv3 + pnpm compile + pnpm build
↓
觉得"收敛了"
↓ ← 这里 anchor bias 最强
🔍 必须跑独立 agent fresh-eyes audit
↓
agent 报告 → trust but verify → 修真 bug
↓
重要的代码可以再跑一次(验证 anchor bias 是否消除)
↓
进入版本发布
反模式¶
❌ "我自己 review 这么多轮了,肯定没问题"—— anchor bias 不在乎你 review 多少轮 ❌ "agent 报告了 5 个 bug,全修"—— 必须验证,agent 也会误判 ❌ "让 agent 提建议"—— 模糊的 prompt 给模糊的输出。明确"找真 bug" ❌ "让 agent 评 1-10 分"—— 没用,要的是具体可修的 bug
历史案例¶
- [[0028-captcha-resume-missing-map-schedule|0028-拦截恢复漏调地图调度]] — 独立 agent 找到的 P0,我自己 4 轮 review 都漏看
元教训¶
技术规则(如 MV3持久化陷阱清单)可以靠工具自动扫,但认知偏见只能靠换视角。 独立 agent 是消除作者 anchor bias 的最低代价方式。
"你不知道你不知道的事" — 这就是 anchor bias 的本质。