主题
02 · 现状基线与核验(P0-1 封板修正版)
证据标准见 00 §C。本文是 04/05 的事实地基。 ⚠️ 本文 2026-05-18 经 P0-1 封板核验重大修正——见 §0。早期版本严重高估了缺口,以本版为准。
⚠️ P0-3(2026-05-19,效力更高):本文矩阵把分析层判为"可用🟢/好用🟡",但实读底层证实那是 phase-B in-memory 占位实现(慢/超时、抽取分类错漏多、不可溯源)。"代码路径存在"≠"质量可用"——本文"已实现"列须按 09 §1 实现质量审计限定理解。
§0 P0-1 封板修正记录(框架自纠,透明落库)
研究早期基线(由单 agent "models 只有 {entities,facts,decisions,participants} 4 列表"读数得出)断言:"原子只有 4 类,risk/action/blocker 根本不抽,待办无上游数据源"。
P0-1 实读权威源(atom_extract_prompt.md、spec.md、reducers.py、meeting_aggregator_realtime/state.py)后,该断言被证伪:decisions 是多态列表,kind ∈ {decision,risk,milestone,action},action 已自带 owner/due/status/priority;跨会 evolution_chain/风险自动升级/矛盾诚实呈现/四象限已在引擎实现。
这是 00 §E 预警的 C1(absence-of-evidence)+ C4(单 agent 轻信)偏差,被框架自身的 P0 核验门拦截——方法论按预期生效。 修正方向:缺口比早期判断小得多,"事半功倍"论点更强。下游 04/05/08 已据此回传修正。
1. 三个地基级核验结论(修正后)
核验 ①(修正):原子类型其实覆盖了 PDCA 主体,缺的是 2 个次要类型 + 溯源精度 🟡(非🔴)
atom_extract_prompt.md 实证(= 权威抽取契约):
- 顶层 4 列表
{entities, facts, decisions, participants},但decisions多态:kind ∈ {decision, risk, milestone, action}(:35-37) action已含owner_entity_names / target_date / status(open|in_progress|done|cancelled) / priority(:38-44)— 这就是需求要的"action_item",且字段已齐facts.category ∈ {progress, announcement, agreement}(:31)—agreement已捕获- 每条 atom 带
quote(≤50 字原文片段,可空)+reasoning(:49-54)— 溯源已存在,但 quote 是 LLM 自选片段,无程序侧"在 transcript 中验证存在"
结论修正:PDCA 所需类型 decision/risk/action/milestone/agreement 均已抽取。真正缺失仅:assumption(无)、metric(数字落在 fact 文本,非结构化)、blocker(无独立 kind,risk+escalation:true+priority:high 近似);以及 quote→可验证溯源锚的精度升级(防幻觉关键,非可用门槛)。
核验 ②(修正):跨会聚合智能其实已在引擎实现 🟢
spec.md:150-251 + reducers.py:52-63 实证 AggregatedInsight schema 已含:
evolution_chain: list[StateChange{atom_id,state,timestamp,quote}]——跨会 decision/milestone 状态演进已实现(spec.md:142)reinforcement_count/source_atom_ids/first_seen_at/last_seen_at——跨会溯源链conflicts: list[ConflictRecord{atom_id,alt_text,quote}]+mark_conflicts节点不调 LLM 仲裁,矛盾全列(spec.md:188-208)——矛盾诚实呈现已实现priority可自动升级(spec.md:131"risk 反复出现自动升级")valid_from/valid_to双时序(Graphiti-inspired ADR-7)InsightTree.aggregated含actions象限 = "协同/待办"(spec.md:224),四象限 = decisions/risks/milestones/actions(:246),stats.business_group_counts按 calendar 分桶(:233-244)
结论:需求文档想要的"跨会 InsightTree、决策演进、风险升级、矛盾不掩盖、四象限(含待办象限)"大部分已是引擎产物。这是早期最严重的低估。
核验 ③(不变):平台 substrate 真·成熟且铺得广 🟢
证据同前(storage/reversible/* 遍布 repo/storage/services/agent_tools)。叠加核验①②:底座强 + 引擎强,真正弱的是"引擎产物之上的人审生命周期/会话注入/复盘 skill"——着力点比早期判断更聚焦、更轻。
2. 分层现状矩阵(修正版 · 7 维,锚见 00 §B.2)
| 层 | 关键已实现(file:line / spec) | 真实缺口(修正后,已收窄) | ①②③④⑤⑥⑦ | 档位 |
|---|---|---|---|---|
| 录音 | Meeting/Calendar 软删;ProjectNcMount;NC 可逆 | 多源入口未统一;音频↔下游绑定弱 | 3·—·1·3·—·3·3 | 可用🟢 |
| 口水稿 | 两阶段上传;markitdown;meeting_aggregator_realtime 双输入(inline_minutes/transcript,state.py:52-66)+ L2 cache | 无 ASR/diarization/词级时间戳 | 2·1·—·3·2·3·2 | 可用🟢/好用🔴 |
| 纪要 | meeting-minutes-generator docx;description AI 回写;BFF inline_minutes 为聚合权威输入 | 无 minutes.json 结构化落库;无修订→下游失效 listener | 2·1·1·2·2·3·3 | 可用🟢/好用🔴 |
| 分析 | 多态原子(decision/risk/milestone/action+owner/due/status)atom_extract_prompt.md:35-44;9 节点实时聚合 + L1/L2 + ALGO/EXTRACT 双版本(spec.md:662-688);evolution_chain/风险升级/矛盾诚实/四象限/business_group_counts 全 live;每 atom quote+reasoning 溯源 | assumption/metric 结构化原子缺;quote 非可验证锚(防幻觉精度) | 3·2·2·3·3·3·3 | 可用🟢/好用🟡 |
| 待办 | 上游已具备:action 原子带 owner/due/status/priority;actions 已成四象限一极 | 无人审生命周期(proposed→confirmed)、无跨会归并、无项目级持久 overlay、无反孤岛同步 | 1·2·1·0·2·1·2 | 🟡(上游齐,生命周期/闭环缺) |
| PDCA | 跨会 evolution_chain/风险升级/矛盾/timeline 已是引擎产物;ProjectAgentMount 管家骨架 | 无开场注入中间件;无改进项完成率度量;无复盘 skill;InsightTree 仅 L1 cache 态(非可查询库) | 1·2·1·1·2·1·2 | 🟡(信号已算,缺注入/复盘/度量) |
关键修正:分析层 ①3②2(早期误判为①2②1);待办/PDCA 从"🔴 0%"修正为"🟡 上游与跨会信号已具备,缺人审生命周期+注入+复盘+度量"。整体可行性显著优于早期判断。
3. 待核验项(P0-1 已清零)
| 项 | 核验结论 |
|---|---|
| source 锚类型 | 已定:quote = LLM 自选 ≤50 字原文片段 + reasoning,经 source_atom_ids 反查;无程序侧 transcript 存在性校验、无字符/行/时间戳 offset。"点开看溯源"是 spec scenario(spec.md:532),展示引用句而非跳转精确位置 |
| 聚合产物结构 | 已定:AggregatedInsight/InsightTree 字段见核验②(spec.md:150-251、state.py、reducers.py:52-63) |
| spec 与代码一致性 | 已分段读 spec 关键 Requirement(输入契约/AggregatedInsight/矛盾/InsightTree/隔离/版本/9节点/SSE),与矩阵一致;无重大冲突 |
recording_result | 确认无关:recording_result_router.py:1-3 = 录屏清洗供 BA 报告选择,非会议 ASR |
| 抽取扩展点边界 | extract prompt 在 skills/custom/meeting-aggregator-realtime/extract_prompt.md + acdm-backend/app/prompts/atom_extract_prompt.md(均可改);extract 节点 meeting_aggregator_realtime/nodes/extract.py 在 vendored harness(只读);atom pydantic 在 acdm-backend/app/schemas/insights.py(可改)。→ 加 assumption/metric 需评估解析逻辑是否落在只读 extract.py(P0-2 首查) |
P0-2 首步核验结论(2026-05-18,已封板)
读 atom_source.py:24-133 + meeting_aggregator_realtime/nodes/extract.py:
ExtractedDecision.kind: str(atom_source.py:64,非Literal);ExtractedFact.category: str(:46);attributes: dict注释明写**"不在 schema 强校验——让 LLM prompt 演进不被 schema 锁死"**(:70-77);全模型extra="ignore"。- 含义:在现有
decisions多态列表里新增kind="assumption"/"metric"/"blocker"= 纯 prompt 改动(skills/custom/meeting-aggregator-realtime/extract_prompt.md+acdm-backend/app/prompts/atom_extract_prompt.md,均可改)+ 经 BFF 注入的state.extract_versionbump(extract.py:425,BFF 侧可控),不触 vendored pydantic → GAP-1 确认 ★★ 纯原生。 - 两个 vendored 只读约束(已定,不阻塞主干):①
meeting_aggregator_realtime/nodes/extract.py与atom_source.py只读——故不新增顶层 atom 类别(用kind扩展即可);②finalize/InsightTreeaggregated是固定 6 桶(spec.md:221-227),新 kind 不自动成四象限新桶——但 PDCA 所需类型已在桶内,assumption/metric可由 skill 直读 L2 atom payload 消费,升为一等桶属可延后的 vendored-sync 项。 - 溯源收口(quote→可验证):
quote在 vendored 模型但extra="ignore"+宽松;校验"quote ⊂ 源 markdown 则保留/否则丢弃标记"放在可改的 acdm-backend BFF(ai_extract_worker.pyparse 后、L2 cache 写入前的单一收口点)→ ★★,不改 vendored 形状。
封板完成。GAP-1 全程 ★★ 纯原生/可改层,无红线触碰。唯一延后项 = "新 kind 升 InsightTree 一等桶"(非 PDCA 主干所需)。
4. OpenSpec 决策考古(修正后解读)
归档 change(ai-extract-as-aggregation-substrate / meeting-aggregator-realtime-with-cache / meeting-status-state-machine 等)+ 本次封板证实:会议域是被高质量持续迭代的成熟子系统,跨会智能(演进链/风险升级/矛盾/双版本/四象限)是已交付能力,非"从零起"。
含义(修正后,强化 00 §B.3 原生杠杆原则):
- 待办/Check/复盘缺的是"引擎产物之上的薄层"——比早期判断轻一个量级。
meeting-status-state-machine归档 → 待办状态机有现成范式。- 补
assumption/metric与 quote→可验证锚,应沿 substrate + 双版本机制扩展,不另起炉灶。