P2 反思循环插件 — ADP Ch4 Reflection Pattern 的 CMDC 实现。
对标 ADP 书中"生产者-评审者"模型:在 Agent 即将完成前触发评审,未通过
则注入修改指令让 Agent 继续工作,直到通过或达到 max_reviews。
两种评审模式
模式 A — 同智能体自评(默认)
在 Agent 自身对话里注入 review prompt,让同一个 LLM 评审自己的输出。 优点:轻量、零额外成本;缺点:ADP Ch4 警告此模式有"认知偏差"。
模式 B — 独立 Reviewer SubAgent(推荐)
设置 reviewer_subagent: true 时,会启动一个独立的 SubAgent 作为
Reviewer(可搭配 reviewer_model 使用不同模型),对主 Agent 的最后一条
回复做评审。此模式真正实现 ADP Ch4 + Ch7 "生产者-评审者" 分离。
配置
{CMDC.Plugin.Builtin.Reflection,
reviewer_prompt: "你是一位严格的质量评审员...",
reviewer_model: "qwen3-max", # 可选,模式 B 时指定评审模型
reviewer_subagent: false, # 默认 false;true 启用 SubAgent
criteria: ["事实准确性", "完整性"], # 评审维度
max_reviews: 3, # 最大 review 轮数(防死循环)
pass_signal: "APPROVED" # 通过信号;可为字符串或 Regex
}max_iterations 是 max_reviews 的历史别名,向后兼容,优先使用 max_reviews。
状态机
:idle ──before_finish──> :reviewing ──after_response(pass)──> :done
│
├─after_response(fail)──> :reviewing (保持,等下次 before_finish)
└─max_reviews 达到──────> :done(强制通过)一旦 :done,后续 :before_finish 不再触发评审(修复 v0.2 iteration reset bug)。
触发 Hook
:session_start— 重置内部状态:before_finish— Agent 准备返回前触发评审:after_response— 评审期内检查回复是否含pass_signal