# 阶段 F 第二部分:知识链派发——抽取智能体 日期:2026-08-23 状态:已完成(离线绿 + 真实派发通过) 上游事实:候选 164 经决策通道采纳(署名 qingse),第 3 章正典落库(5131 字);接受意图 `queue_chapter_extraction`。 ## 1. 意图 抽取智能体接入框架派发(边界合同:智能体框架记模型事件/raw,生产编排记知识草稿与业务回执),替代抽取直调链的生产使用;直调链保留为对照/回退,终态裁决按总 plan 用数据说话。 ## 2. 设计 ```text 生产编排:注册抽取运行 → 读正典章全量正文 + 既有实体名 ↓ 派发抽取智能体(单次派发,探索与产出同一循环): 输入 = 全量正文(注入,不经工具——工具读取会截断)+ 既有实体名 + 抽取合同 工具白名单 = read_chapter_text、search_entities(查重与回读核验用) 产出 = 结构化抽取 JSON(entities/relations/state) ↓ 机械校验:normalize_extraction(证据必须正文逐字片段) 失败 → 一次修复重派(只纠证据绑定,不新增条目)→ 仍失败 → salvage 保守收口 ↓ 落库:persist_extraction(muse_knowledge_draft,草稿态)→ 人确认转正(:8766) ``` 关键取舍: - 正文注入而非工具读取:`read_chapter_text` 超长截断,证据逐字绑定要求全量正文,注入是唯一可靠路径;工具留给查重探索。 - 单次派发(非两阶段):抽取产出是结构化 JSON,无长篇碎片化风险;探索与产出同循环。 - 机械校验与落库全部复用既有可信适配层(`normalize_extraction`/`salvage_extraction`/`persist_extraction`),不新造合同。 - 修复重派一轮(证据绑定是机械问题,对齐直调链既有语义);仍不合法走 salvage;salvage 失败失败关闭。 - 证据归属:派发运行 `{run_id}-extractor-v{N}` 记事件/raw(trigger_detail 带 productionRunId),草稿落生产抽取运行。 ## 3. 改动台账 | 文件 | 动作 | 原因 | |---|---|---| | `.agent/skills/extract-chapter-knowledge/scripts/dispatch_extraction_bridge.py` | 新增 | 抽取任务包装配 + 派发编排(校验/修复/落库/收口) | | `.agent/skills/extract-chapter-knowledge/scripts/extract_via_dispatch.py` | 新增 | 派发入口(显式 provider/model,真实调用需授权) | | `tests/skills/extract-chapter-knowledge/test_dispatch_extraction_bridge.py` | 新增 | 离线测试(7 项) | ## 4. 验证结果 - 离线测试 7/7 通过。 - 真实派发(作品 12 第 3 章,`extract-knowledge-w12-c3-20260823T150511`,catproxy-anthropic/claude-opus-5,medium): - v1 派发完成但证据绑定未过 `normalize_extraction` → 桥自动触发 v2 修复重派 → 通过(修复路径首次真实验证)。 - 18 条实体草稿 + 1 条叙事状态草稿落库(status=pending),看板与经验确认通道 :8766 可见,待人审转正。