assumed_defect_reflection_interrupt_20260607_deep_research
方法论库 · 引用级 · none
本页是 <code>contexts/methodology/assumed_defect_reflection_interrupt_20260607_deep_research.md</code> 的逐字投影(仅隐私清洗,零改写)。
时点提示:本页是仓内文件 contexts/methodology/assumed_defect_reflection_interrupt_20260607_deep_research.md 的逐字投影(仅做隐私清洗:仓库根绝对路径→相对路径、家目录→~/;除此零改写)。若源文件后续有修订,以仓内真源为准。
报告元数据(frontmatter)
name: assumed_defect_reflection_interrupt_20260607_deep_research
description: 假设缺陷探针中断机制
domain: infra
consumption:
surface: none
trigger: ""
consumer: orchestrator
status: library
promoted_to: null疑错探针:把“好像有问题”变成 Agent 运行机制
结论先说:这个机制值得做,但它的理论支撑不应写成“你预设有问题,所以问题被唯心地创造出来”。更准确的说法是:你用“可能有问题”改变了模型的观察框架、搜索目标和注意力分布,于是原先被默认执行路径压低权重的反例被提到前台。落到工程上,它应该成为一个有边界的 interrupt:暂停执行、只做取证、生成可定位反例、再带着明确的 resume packet 回到原任务。最重要的限制是,疑错不能直接触发改代码;它只能触发 evidence-backed review。没有证据的怀疑只能进入 watchlist 或补采任务。
这件事和“唯心”的关系
如果把唯心理解成“意识创造现实中的 bug”,这个类比会误导工程设计。代码缺陷不会因为一句提示而在文件系统里凭空出现。但如果把它理解成更弱、更有用的一层:对象如何被经验到,取决于观察者携带的概念框架,那么这个类比就成立。
哲学上,这更接近 observation is theory-laden。Stanford Encyclopedia of Philosophy 在讨论科学观察时指出,观察证据的价值依赖背景理论,甚至观察和证据使用本身都带有理论负载(https://plato.stanford.edu/entries/science-theory-observation/)。映射到 agent coding:同一个代码 diff,在“实现完成”框架下会被读成进度,在“可能有问题”框架下会被读成假设集合。模型没有看到新的字节,但它改变了哪些模式会被激活。
Tversky 和 Kahneman 的 framing effect 给了认知层证据:同一个选择问题换一种表述,人的偏好会系统性变化(https://psych.hanover.edu/classes/Cognition/Papers/tversky81.pdf)。这不是说现实变了,而是问题表述改变了决策表征。用户说“好像有问题”相当于把 agent 从 builder frame 切到 critic frame。
Dewey 的反思理论更贴近这个机制。他把 reflective thought 定义为对信念及其依据和后果的主动、持续、谨慎考察,并强调思考起源于疑惑、困惑或不确定;疑惑会引发进一步搜索,以确认或否定初始信念(https://www.gutenberg.org/cache/epub/37423/pg37423.txt)。这正是“疑错探针”的原型:不是宣判有错,而是制造一个足够具体的 doubt,使系统进入 inquiry。
Popper 的 critical rationalism 可以提供方法论边界:知识增长不靠证明自己对,而靠让想法暴露在批判中,并用批判替代 justification(https://iep.utm.edu/karl-popper-critical-ratiotionalism/)。对应到 AI 编程,plan 写完后最危险的状态不是“它已经错了”,而是“它还没有被有效反驳过”。疑错机制的目标不是让模型自责,而是让 plan 变得可反驳。
为什么不能只靠一句“反思一下”
LLM 论文给出一个很清楚的边界:反思有用,但纯内源自我修正不稳定。
Reflexion 表明,agent 可以把任务反馈转成语言反思,并放进 episodic memory 影响下一次尝试(https://arxiv.org/abs/2303.11366)。Self-Refine 也显示,同一个模型可以生成反馈再迭代改进输出(https://arxiv.org/abs/2303.17651)。这支持“反思产物要进入状态,而不是停留在对话里”。
但 Chain-of-Verification 的关键不是“多想一次”,而是先生成验证问题,再独立回答,最后修正,避免答案被初稿污染(https://arxiv.org/abs/2309.11495)。Huang 等人的 ICLR 2024 论文则直接提醒:没有外部反馈时,LLM 在 reasoning self-correction 中可能无法改正,甚至会变差(https://arxiv.org/abs/2310.01798)。Valmeekam 等人对 planning self-critique 的研究也发现,用 GPT-4 同时生成和验证 plan 时,false positives 会损害可靠性(https://arxiv.org/abs/2310.08118)。
所以工程规则必须很硬:疑错是一种传感器,不是裁判。它产生候选缺陷,真正能改变 plan 或代码的,是可定位证据、独立验证、测试结果、用户需求锚和原始 source。
机制命名:疑错探针
疑错探针的定义:
在 agent 从计划进入执行、或从一个执行单元进入下一个执行单元之前,临时注入“当前产物可能存在关键缺陷”的反事实假设,要求 agent 暂停原任务,只寻找可定位反例;审查结束后,以结构化 resume packet 回到原任务。
它解决的不是“审查不够多”,而是审查进入得太晚。你提到的熵增控制源头化是关键。代码一旦写下去,后续上下文会被实现细节污染,模型会开始维护自己刚刚生成的结构。源头审查应该卡在两个点:
- plan 已经成形但还没写代码;
- 一个原子执行单元刚完成但还没交给下游消费。
第一个点控制方向熵,第二个点控制传递熵。
运行流程设计
最小可行状态机如下:
PLAN_DRAFT
-> ASSUMED_DEFECT_PROBE
-> PROBE_DECISION
-> pass: EXECUTE_OR_RESUME
-> patch_plan: PLAN_DRAFT_vN+1
-> split: UNIT_DECOMPOSITION
-> needs_evidence: EVIDENCE_GATHERING
-> blocked: ASK_OR_REPORT_WITH_EVIDENCE
-> EXECUTE
-> VERIFY_WITH_REAL_SIGNALASSUMED_DEFECT_PROBE 必须输出 ledger:
probe_ledger:
target: plan_v3 | diff_abc123 | task_card_AUP003
assumption: "there may be a serious defect"
findings:
- id: F1
status: evidence_backed_issue | false_alarm | unresolved_suspicion
defect_class: requirement_loss | interface_mismatch | hidden_state | test_gap | overreach | unsafe_side_effect
evidence: "path:line / command output / source URL / requirement id"
proposed_action: patch_plan | add_test | split_unit | watchlist | no_change
resume_packet:
return_to: "original_task_pointer"
plan_version: "v3 or v4"
next_allowed_action: "execute | revise_plan | gather_evidence"这里最重要的是三态,而不是二态。很多疑错会变成 false alarm 或 unresolved suspicion。如果把每个怀疑都当成 issue,模型会进入 false-correction loop,把本来对的设计改坏。
插入位置
第一处是方案结束、实践开始之前。这是你问题里的核心。实现上不该试图捕捉模型隐藏思维的结束,因为 hidden reasoning 不可控。应捕捉 artifact boundary:当 agent 产出 plan、task card、design doc、implementation outline,且下一步准备 Write/Edit/patch 时,进入疑错探针。
第二处是跨单元 handoff 前。workflow_unit_decomposition_and_context_injection.md 已经指出,熵管理应从 essential state 重组,不能复制上一轮 raw transcript。疑错探针应该在 handoff 前检查:下游拿到的上下文包是否丢了用户原始约束、是否把上游修辞误当需求、是否缺 locator 链路。
第三处是 review 输出准备闭环时。contexts/observations/OBSERVATIONS.md 记录过历史问题:review 只汇报不转 dispatch。疑错探针应检查 review 是否生成了 binding next action,否则它只是报告,不是控制。
第四处是高风险写入前。比如 API/schema 变更、数据库迁移、认证/支付/删除逻辑、多文件重构、用户明确指出过的敏感点。这里可以像 stop-authority 那样授予机制正式叫停权:不是“提醒一下”,而是没有过 probe 就不得继续。
Interrupt 与 Resume
基础实现不做物理回滚,只做注意力中断:
- 冻结当前任务指针:需求锚、plan version、已读 source、当前 write scope。
- 切换到 critic frame:只读计划和证据,不继续实现。
- 产出 probe ledger。
- 生成 resume packet。
- 回到原任务,按
next_allowed_action执行。
这相当于插拔式 interrupt。它的关键不是让同一个上下文“记得回来”,而是让回来所需的信息被显式写入 packet。
激进实现做逻辑回退,不做破坏性 git 回退:
- 每个 plan artifact 都有
plan_version和parent_plan_version。 - probe 若判定 plan 级缺陷,禁止在旧 plan 上继续 patch。
- controller 将状态回退到
PLAN_DRAFT(parent),从 original requirement + confirmed evidence + probe ledger 重组新上下文。 - 新 plan 生成后再次过 probe。
注意这里的“回退”是控制状态回退,不是 git reset --hard。它符合本仓库 git safety 的精神:保留历史,重建执行状态。
与现有 workspace 机制的接法
这套机制不需要从零发明。现有技能已经有四块承重墙:
workflow_phase_framework.md:每个 phase 都要有需求锚、机械误差信号、独立调控者。疑错探针可以成为 phase exit 前的suspicion_gate。workflow_complexity_drift_detection.md:检测器要有确定性外壳、硬负样本、可操作反例、第二独立 agent、诚实边界。疑错探针的 detector 应复用这套标准。workflow_unit_decomposition_and_context_injection.md:关注 handoff 熵增、forbidden_read、bare verdict 和从 essential state 重组。疑错探针在跨单元处检查这些条件。stop-authority:把“看到跳步”升级为正式停止权。疑错探针应被赋予流程级 stop authority,而不是靠用户临时质疑。
推荐落地分三层:
第一层,prompt 纪律。给 coding agent 加一句硬约束:进入实现前,必须输出 assumed_defect_probe,且只允许 evidence-backed issue 改 plan。这个成本最低,但容易被长上下文稀释。
第二层,artifact gate。要求 task card 或 design doc 中有 probe_ledger 字段,字段为空则不能进入 implementation。这个比 prompt 稳,因为下游能机械检查。
第三层,运行时 hook。在 Write/Edit 前检查当前任务状态是否已有有效 probe。没有就 interrupt。这个最强,但实现成本最高,需要与 controller loop、trace validator 或 tool receipt 机制接合。
触发策略
不要每一步都疑错。泛化的怀疑会变成噪声,模型会疲劳式应付。触发条件应按风险密度决定:
- plan 即将变成代码;
- 一个 unit 即将 handoff;
- 涉及不可逆或高成本副作用;
- 用户需求超过五条等权约束;
- 同单位数字密集、跨域概念多、接口多;
- 模型刚刚做过“看起来很顺”的大段实现;
- 用户曾经在同类任务中纠正过 agent。
低风险任务可以只跑轻量版:列三个最可能的失败模式,每个给 pass/issue/watchlist。高风险任务跑完整 ledger,并要求独立 verifier 或确定性测试。
失败模式
第一个失败模式是仪式化:模型输出“我检查了,没有问题”。解决办法是 ledger 必须有 defect class、evidence 和 proposed action;空泛自信不算 probe。
第二个失败模式是过度修正:模型为了回应“有问题”而改坏正确代码。解决办法是无证据不得改代码,unresolved suspicion 只能进 watchlist。
第三个失败模式是同源审查:builder 用同一套注意力盲点审自己。解决办法是高风险场景用第二 agent 或确定性 verifier;若只能单 agent,至少换 frame、限制审查范围、要求引用原始 source。
第四个失败模式是回不去主线:interrupt 后 agent 忘了原任务。解决办法是 resume packet 作为硬产物,包含 return pointer、plan version、next allowed action。
第五个失败模式是事后堆 gate:每次失败后再加一层后验审查。解决办法是把疑错放在 plan-to-code 和 unit-to-handoff 两个源头点,不把它变成 final report 前的又一张 checklist。
推荐的下一步
如果要把这份设计落地,我建议先不改全局 AGENTS/CLAUDE,而是做一个小范围 production candidate:
- 新建或修改一个 draft workflow skill,暂名
workflow_assumed_defect_probe.md。 - 在一个真实 coding loop 中只接入 plan-to-code gate,不碰所有 phase。
- 定义一个最小 detector:检查 task card 是否有 probe ledger,且每条 issue 是否带 evidence。
- 用两个历史 case 回放:一个真实有缺陷,一个无缺陷但容易被过度修正。
- 通过后再接入 controller loop 的 task phase plan。
版本判定:本文件是新的调研型对外承诺。按 rules/skills/workflow_version_evolution.md,它应在落定后作为 research artifact 记录一次 Y 级研究版本;当前未打 tag,因为文件尚未 commit,且工作区已有大量无关变更。
Source Index
- Stanford Encyclopedia of Philosophy, Theory and Observation in Science: https://plato.stanford.edu/entries/science-theory-observation/
- John Dewey, How We Think: https://www.gutenberg.org/cache/epub/37423/pg37423.txt
- Internet Encyclopedia of Philosophy, Karl Popper: Critical Rationalism: https://iep.utm.edu/karl-popper-critical-ratiotionalism/
- Tversky and Kahneman, The Framing of Decisions and the Psychology of Choice: https://psych.hanover.edu/classes/Cognition/Papers/tversky81.pdf
- Reflexion: Language Agents with Verbal Reinforcement Learning: https://arxiv.org/abs/2303.11366
- Self-Refine: Iterative Refinement with Self-Feedback: https://arxiv.org/abs/2303.17651
- Chain-of-Verification Reduces Hallucination in Large Language Models: https://arxiv.org/abs/2309.11495
- Large Language Models Cannot Self-Correct Reasoning Yet: https://arxiv.org/abs/2310.01798
- Can Large Language Models Really Improve by Self-critiquing Their Own Plans?: https://arxiv.org/abs/2310.08118
- Local anchor:
rules/skills/bestpractice_ai_programming_mindset.md - Local anchor:
rules/skills/drafts/workflow_phase_framework.md - Local anchor:
rules/skills/drafts/workflow_complexity_drift_detection.md - Local anchor:
rules/skills/drafts/workflow_unit_decomposition_and_context_injection.md - Local anchor:
rules/skills/drafts/the_checklist_manifesto/codex_v6/skills/stop-authority/SKILL.md - Local anchor:
contexts/observations/OBSERVATIONS.md