主题
09 · 实现质量审计与人机协同底座(P0-3 纠正层)
2026-05-19 由功能上线者反馈触发的重大纠正:前文 02/04/05/08 把"spec 写了 + 容器在跑 = live"误读为"做得好"。 本文以代码实证审计真实实现质量,评估
05-人机协同任务编排模型能否做底座,给出端到端底座架构与最小闭环路线。 效力高于前文相关结论;前文"已 live / 跨会智能已交付 / 事半功倍"措辞按本文限定理解。
§0 纠正记录(框架自纠 · 第二次,比 P0-1 更根本)
- P0-1 纠的是"原子类型不存在"的事实错(absence-of-evidence)。
- P0-3 纠的是"live 即好用"的判断错:
02 §2矩阵虽给分析层 ②=2(已隐含质量不足),但 04/05/08 结论层未把"phase-B 占位实现 ≠ 已交付智能"放到承重位置,反而强化"事半功倍"。 - 根因偏差归类(补入 00 §E):"占位/in-memory/ZeroX 实现当成熟"——比文档权威性偏差更隐蔽,只有实读热点代码 + 跑真实数据才暴露。功能上线者反馈是这次的拦截器(非框架自动拦下,记此教训)。
§1 实现质量审计(代码实证根因)
审计对象:会议"分析/跨会智能"实际跑的链路。结论:这是 spec 自承的 phase-B in-memory 占位实现,被当成已交付能力。
| 真实症状 | 根因(file:line) | 性质 |
|---|---|---|
| 单会都慢/超时 | meeting_aggregator_realtime/nodes/extract.py 逐场串行 for meeting_input in state.meetings_input → _llm_extract_one_meeting;kimi-k2.6 +thinking,注释自承单场 10KB+ "常 4-6 min";9 节点在 BFF 单次 SSE 同步请求内跑完 | 架构性:串行 + 重模型 + 同步,N 场 = N×数分钟 |
| 提取/分类错、漏、多 | 同一 system prompt 一遍做"纪要整理 + 4 大类抽取 + kind 细分 + owner/date/status + quote + reasoning";extract.py 注释自承关 thinking 时 entity_type 错分、quote 与 text 错位;无精修、无分块、无多 pass | 方法性:单 mega-prompt 一遍过,垃圾进垃圾出 |
| 跨会"智能"近似失效 | extract.py:_assemble_atom_batch 写死 canonical_entity_map={};relate.py:entity_overlap 依赖 canonical_entity_id(全 None → ≡0);embedding.py 默认 ZeroEmbeddingService(embedding_sim≡0)→ relate.py:relevance 实际 = 0.2×time_proximity(只看会议日期接近,与内容无关) | 占位性:关联=日期启发式,evolution_chain/风险升级在真实数据上乱触发或不触发 |
| 同一事项漏并/重复 | reducers.py:_group_by_fingerprint 同一逻辑判别 = owner 名 _names_to_canonical_set(canonical_map 空 → 退化字面名)集合 Jaccard≥0.5;无语义、无 embedding、无 LLM 仲裁(spike 决策 phase-B 不做) | 占位性:"张三"≠"张总",换说法不归并 |
| 无法溯源 | quote = LLM 自选 ≤50 字片段;无程序侧"引文是否真在 transcript"校验,无 char/行/时间戳 offset | 契约缺失:溯源靠 LLM 自报,可臆造 |
一句话:当前不是"智能引擎质量待优化",而是"占位骨架被当成品"。在它之上"打补丁"性价比低;应换底座(§3)。spec 大量 ADR 本就写"phase-B 默认 in-memory impl,follow-up 切 PG/真 embedding"——只是 follow-up 没做,而被当已交付。
§2 05-人机协同任务编排模型 能否做底座:评估
模型要点:双主体(人/Agent)× 三层嵌套容器(项目工作台 → 任务卡片 → 任务流);人管"是什么"(配置工作台/配置 Agent/看·操作/主动触发),Agent 管"怎么做"(创建任务流并执行/系统自动触发回环);任务流是契约边界(产出落节点,便于人在卡片层审阅/回滚/续跑);双触发对等。
2.1 判断:能做底座,且方向正确——因与 deer-flow 原生高度同构
| 05 元素 | deer-flow 原生对应(复用,不自造) | 出处 |
|---|---|---|
| 任务流=节点/依赖/产物,可审阅/回滚/续跑 | 确定性 Pipeline(LangGraph StateGraph)+ Aegra 持久化 + interrupt/resume | 03 §1 |
| 项目工作台=项目级上下文/事实集 | 原生长期记忆 namespace(项目级隔离) | 03 §2、05 GAP-6 6B |
| 可疑点→向人提问获准确回复 | ask_clarification 工具 + ClarificationMiddleware(Command(goto=END) 中断,人答续跑) | deer-flow 中间件链 #18 |
| 任务卡片=状态/责任人/产出;失败回退人工 | 待办 overlay(GAP-2)↔卡片;clarification 中断=回退卡片层 | 05 GAP-2 |
| 双触发(人主动 / 系统自动) | Pipeline+Agent 双轨 + 事件/cron 自动触发 | 03 §1 |
故 05 不是另起炉灶,而是把已有原生能力在"项目级智能会议"场景的正确组织方式——符合 00 §B.3 原生杠杆原则。
2.2 局限:它是高层草图,做"稳定底座"必须补 4 件(正是修 §1 根因)
- 精修先行:抽取前加"清洗+分块+多 pass+说话人归一"任务流节点 → 修"垃圾进垃圾出"。
- 可验证溯源(硬契约):每条事实带 transcript 字符/行 offset,程序侧校验引文确在原文,无效即丢/标可疑 → 把溯源从"LLM 自报"变"系统保证"。
- 可疑点→HITL 澄清任务卡片:低置信/冲突不猜,生成澄清卡挂工作台向责任人提问,人答回灌事实集并续跑(= 05 的"失败回退卡片层等人工" + clarification 中断)。
- 项目事实集=单一真相底座:精修+人确认后入项目级记忆/事实集;跨会聚合/待办/Check/复盘全从事实集读(同时治 §1 的慢:增量、缓存,不再每次重扫口水稿);真 embedding/实体消歧替换 ZeroEmbedding+空 canonical_map。
2.3 回答 05 的三个开放问题(底座设计取此默认)
- 任务流失败回退人工 vs 自动重试:确定性技术失败(超时/解析失败)自动重试有限次;语义可疑/低置信/冲突一律回退卡片层 HITL,不自动猜(治 §1 的"多/错")。
- 多 Agent 写"创建任务流"并发覆盖:事实集写入走单一真相 + 版本/乐观锁(沿 05 GAP-6 6C "可纯函数重建"判据);任务流产物按 (project, card, run) 隔离,合并入事实集是显式审阅步骤。
- 全局规则 vs 卡片内联配置优先级:卡片内联覆盖全局(就近原则),但敏感操作审批策略全局强制不可被卡片放宽。
§3 端到端底座架构草案(以 05 为骨架,最大化原生杠杆)
项目工作台(=项目事实集,deer-flow 原生记忆 namespace,单一真相)
│ 挂多张任务卡片(=待办 overlay/看板卡:状态/责任人/产出)
▼
任务卡片:一场会议的"事实化"工作
└─ 任务流(LangGraph Pipeline,节点产物可审阅/回滚/续跑):
① ingest 原始口水稿/纪要入卡
② refine 清洗·分块·说话人归一·结构化(多 pass) ← 修"垃圾进"
③ extract 在精修文本上抽事实,每条带 char/行 offset
④ verify 程序校验 quote⊂源文 → 通过/丢弃/标"可疑" ← 可验证溯源硬契约
⑤ clarify 可疑/低置信/冲突 → 生成澄清子卡片向责任人提问 ← HITL(clarification 中断)
人答 → 回灌 ③ 续跑(仅重算受影响项)
⑥ commit 确认事实写入【项目事实集】(带 offset+确认人+时间)
▼
跨会聚合 / 待办派生 / Check 注入 / PDCA 复盘 —— 全部【只读项目事实集】
(不再每次重扫口水稿 → 同时根治 §1 的慢;关联用真 embedding/实体消歧)- 触发:人主动(上传会议→建卡)/ 系统自动(事件:新文件→自动起任务流;cron:周期复盘)——05 双触发对等。
- 每节点产物落 Pipeline state(Aegra 持久化)→ 人在卡片层可逐节点审阅/回滚/续跑(05"任务流=契约边界")。
- 事实集即"像 deerflow 原生记忆的项目事实底座":跨会/待办/Check/报告都从它读,这是 04 GAP-6/2/4/5 的统一答案,也把"慢"从架构上消除。
与原研究 GAP 的关系(修订)
| 原 GAP | P0-3 后定位 |
|---|---|
| GAP-1 溯源 | 升级为可验证溯源硬契约(节点④),不再是"prompt 让 LLM 带 quote" |
| GAP-2 待办 overlay | = 05 任务卡片;HITL 澄清卡是其子类 |
| GAP-6 InsightTree 持久化 | = 项目事实集(原生记忆 namespace + 6C 可重建判据),升为单一真相底座 |
| GAP-4/5 Check/PDCA | 不变,但数据源改为"读事实集"而非"重扫/重聚合占位产物" |
| 新增 | 精修层(②)+ 可验证(④)+ HITL 澄清层(⑤)——前文完全缺失 |
§4 最小闭环路线(先证明端到端可用,再扩)
原 06 路线图 的 P0/P1 在 P0-3 后重排:先建"单会端到端可溯源可人审"最小闭环,跨会/报告靠后。
- M0 占位现状显式标注:UI/文档标注当前聚合为"实验·质量未保证",停止把它当结论源(止损)。
- M1 精修+可验证溯源(单会闭环):任务流 ②③④;一场会议 → 精修文本 + 带 offset 事实,程序校验引文;出口门:随机抽 N 条事实 100% 可一键跳原文且引文真实(01 横切·可信"好用")。
- M2 HITL 澄清 + 项目事实集:节点⑤⑥;可疑点生成澄清卡、人答回灌、确认入事实集;出口门:可疑项不进事实集即不被下游消费(治"多/错")。
- M3 真关联:用真 embedding/canonical 实体消歧替换 ZeroEmbedding+空 canonical_map;跨会聚合改读事实集;出口门:同一事项跨会归并准确率人审达标、聚合不再"只看日期"。
- M4+:待办派生/Check 注入/PDCA 复盘(原 06 P1–P3,数据源换事实集)。
每阶段仍走 00 标尺与"原生杠杆体检"。M1–M3 是中–大工程(非"补薄层"),但方向正确且复用原生,远优于在占位骨架上打补丁。
§5 给决策者的一句话
当前会议"智能"是占位骨架被当成品(慢+错+不可溯源,根因是 ZeroEmbedding+空 canonical+朴素 Jaccard+单 mega-prompt 串行+无精修/HITL/验证)。
05 模型能做正确底座且与 deer-flow 原生同构;重点不是优化抽取,而是换成"精修→可验证溯源→可疑点 HITL→项目事实集单一真相"的人机协同任务流。先做单会端到端最小闭环(M1/M2),证明可溯源可人审,再扩跨会与报告。
前文 02/04/05/06/08 的"已 live/事半功倍/路线"按本文 §1/§3/§4 限定与重排理解。