muse-agent-example/docs/plans/2026-08-22-阶段F-第二部分-知识链派发-抽取智能体.md

49 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 阶段 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 可见,待人审转正。