主题
07 · 风险与反模式登记册
三类:A 竞品验证过的"花架子陷阱"(产品/留存风险)· B 本项目特定红线(工程/部署风险)· C 本研究自身偏差(效度风险)。 每条:触发条件 → 缓解 → 由哪份文档/ADR 承接。竞品数字含营销成分,仅作量级锚。
A. 花架子陷阱(竞品 + 社区公认,留存杀手)
| # | 陷阱 | 触发条件 | 缓解 | 承接 |
|---|---|---|---|---|
| A1 | 摘要孤岛(留存第一杀手:待办被抓到却哪也去不了,产物躺着没人回访) | 待办池做了但不接执行系统 | GAP-3 列为"可用 Bar 硬门槛",P1-F 不可跳过;先内部面板+IM 闭环再谈外部 | 04 GAP-3 · 06 P1-F · ADR-3 |
| A2 | 可信度幻觉/张冠李戴(越新模型越少明显编造但更多隐性误述) | 抽取无 source_span,下游建在幻觉上 | GAP-1 强制 PDCA 类原子带 offset,后处理丢弃无效 offset(内建幻觉过滤);AI vs 人审 UI 可辨 | 05 GAP-1 · ADR-1 · 01 横切 |
| A3 | AISO/prompt 注入操纵纪要(2025 新威胁:用"key takeaway"等高信号词、抢首尾、对发言注入,操纵谁的话进官方纪要) | 把无人核验的 AI 摘要当裁决依据 | 输入按说话人 provenance 打标;摘要定位"待人确认草稿"非裁决;高 stake 强制 sign-off;Check 注入文案标"AI 草稿" | 05 GAP-4 · 01 横切 |
| A4 | 全文转写当卖点(用户几乎不需要 raw transcript) | 把口水稿直接给人读/当产物 | 需求本身已定 transcript "给 AI 读不给人读";产物是结构化纪要/insight | 需求 §1.2 · 01 §2.2 |
| A5 | 改进项完成率失真(执行人不更新状态→PDCA 仪表造假) | 完成率口径含糊、无自校正 | 口径锁定"confirmed 中 done 占比"+标样本量;Check(GAP-4)反推未更新项促更新形成自校正 | 05 GAP-5 devil's · 06 P3-B |
| A6 | 过早做花哨摘要而非闭环 | 资源投在更漂亮摘要而非待办闭环/跨会连续 | 路线图先"可用 Bar(闭环)"后"好用 Bar";企业内部优势是可深绑内部执行体系 | 01 §1 · 06 |
B. 本项目特定红线(违反代价惨重,来自 CLAUDE.md / lessons)
| # | 红线 | 触发条件 | 缓解 | 承接 |
|---|---|---|---|---|
| B1 | 改 vendored 只读层 | 在 deer-flow/backend/packages/.../deerflow/** 等原生目录改代码 | 只走扩展点(skills/custom/config.yaml/langgraph.json/aegra.json/custom_middlewares 入参/acdm-backend BFF);每相"原生杠杆体检"第 2 问把关 | 03 §5 · 06 体检 |
| B2 | 往 deer-flow/docs/ 写 A-CDM 文档 | 偏差报告/复盘工件写进 vendored docs | 回写走 GitLab 知识库 services/ba_report/wiki.py 范式(wiki/by-project/...,[ai-assist] 前缀) | 05 GAP-4/5 |
| B3 | 新增 xxx_API_KEY 先 merge 后改 .env | 引入新 provider/role 未先 ssh prod 配 .env | 先 ssh prod 改 .env → 再 merge → 再 force-recreate;ai_registry 凭据空只 503 但结构错仍 fail-fast(L94) | 03 §5 |
| B4 | 在 main 直接 commit | 落地时直接改 main | 永远 checkout -b <feature|fix|chore>/<desc> → MR;本研究仅产 docs 不改业务码 | CLAUDE.md §6 |
| B5 | Caddyfile reload / 改 basePath 不重 build / rebuild 前不腾内存 | 部署期操作违铁律 | 切 Caddyfile 用 restart;改 basePath 必重 build;rebuild 前先 stop 腾内存(8GB ARM) | deploy-topology §5 |
| B6 | EXTRACT_VERSION bump 无回退路径 | P0 bump 后抽取退化无法回滚 | 旧 prompt 保留;EXTRACT_VERSION 可回退;backfill token bucket 限流 | 06 P0 风险闸 · ADR-1 |
| B7 | overlay 退化为"另一份真相" | GAP-2 2C / GAP-6 6C 旁表存了无法从原子重建的字段 | 硬约束:旁表必须可纯函数 rebuild_* 重建;CI/评审强制验证(P2-D 收敛判据) | 05 GAP-2/6 · ADR-2/6 · 06 P2 强制验收 |
C. 本研究自身偏差(效度控制,来自 00 §E)
| # | 偏差 | 本研究中的暴露点 | 已采取的对冲 | 残留风险 |
|---|---|---|---|---|
| C1 | Absence-of-evidence | 早期"无 action_item 原子"断言 | 已发生并被 P0-1 拦截纠正(单 agent 把多态 decisions.kind=action 误读为"不存在");框架自纠按预期生效,见 02 §0 | 已闭环(实例:本研究最大一次纠偏) |
| C2 | 需求文档权威性偏差 | 需求 §5 自述"待办面板已 live" | 以代码为准,显式标 drift 并解释成因 | 低 |
| C3 | 竞品光环 | "改进项完成率是空位"等竞品判断 | 标"营销成分";区分"产品做了"vs"做好了" | 中(竞品闭源,边界靠公开资料推断) |
| C4 | 底座过度乐观 | "压在原生即可"的乐观 | 每"复用积木"给具体挂载点;2C/6C 给收敛判据防退化 | 低(P0-1 已清 02 §3 待核验项;乐观方向反被证实) |
| C5 | 方案单恋 | 倾向"原生杠杆"可能压制合理自建 | 每 GAP ≥2 方案 + devil's advocate;自建例外均举证 7 维 | 低 |
| C6 | spec 未全读 | meeting-insight-engine/spec.md 30k tokens | P0-1 已读关键 Requirement(输入契约/AggregatedInsight/矛盾/InsightTree/隔离/双版本/9节点/SSE);与矩阵一致 | 低(残留:非核心 Scenario 未逐字,不影响承重结论) |
D. 风险热度排序(若只能盯三条)
C4+C6(地基核验未封板)已闭环:P0-1 已完成,纠正"只 4 类"误判,接口返工风险消除。新最大不确定性 = B7(双源漂移)+ P0-2 边界(加 atom kind 是否触及 vendorednodes/extract.py)。- A1(孤岛):最易"做了一堆没人用"。P1-F 必须与待办池同相,不可拖。
- B7(双源漂移):2C/6C 是本研究的杠杆关键,但纪律不严会重蹈需求 §6 自承的"部分 cache 部分表"漂移——已设硬验收门,执行时不可松。
其余 A2/A3(可信/防操纵)由 GAP-1 source_span 纪律 + "AI 草稿"定位系统性覆盖;B 类红线由"原生杠杆体检"流程化拦截。