shennong-distill-skill — 把中医古籍蒸馏成"带安全边界的辨证决策系统"
使命
把一本中医古籍里沉淀的理(病机)— 法(治则)— 方(方剂)— 药(药物)知识链条,拆解成一个可被 agent 在辨证场景下调用的决策系统,让读者真正用起来。
> 术语约定:本文档及 methodology/、extractors/ 中所有的"书",泛指一切被蒸馏的中医内容——古籍原著、医家专著、医案合集、现代经方讲稿、方剂学教材、本草典籍。
边界:
- ✅ 做:辨证方法 / 方证对应 / 方剂晶体结构 / 药物性味归经 / 病机模型 / 医案解析模式的蒸馏
- ❌ 不做:书摘 / 读后感 / 开具真实处方 / 替代执业中医师诊疗(本 skill 产物永远只是"学术推演",绝不具备处方权)
与 cangjie-skill 的根本区别
cangjie-skill 蒸馏通用方法论(芒格、段永平那种"决策框架/思维模型"),产出 N 个原子化独立 skill。中医书不是方法论集合,而是高度耦合的理-法-方-药体系,且误用会危及人身安全。
因此本 skill 产出的是一个辨证决策系统(一个主 SKILL.md + 结构化知识库 + 安全模块),而非原子化 skill 包。这是两者最本质的区别。
核心方法论:SYNDROME-TV++
一个书型分流 + 七阶段 + 四重验证 + 安全层注入的流水线。详见 methodology/00-overview.md。
阶段 0 整书理解 + 书型判定 → BOOK_OVERVIEW.md + 书型
阶段 1 并行提取(按书型) → 候选知识单元池
阶段 1.5 四重验证筛选 → 通过的单元 (含 V4 安全验证)
阶段 2 构造辨证决策系统 → 主 SKILL.md + references/ 知识库
阶段 3 知识链接 → INDEX.md + GLOSSARY.md
阶段 4 压力测试 → test-prompts.json + 回炉淘汰
阶段 5 交付 → DIGEST.md + 安全层注入 + 安装
何时调用此 skill
用户说类似:
- "帮我蒸馏《伤寒论》"
- "把《黄帝内经》做成 skill"
- "拆解《金匮要略》/《临证指南医案》"
- "把陈士铎这本医书蒸馏成辨证 skill"
- "distill this TCM book into a diagnosis skill: <path>"
输入要求
在开始前必须从用户处确认:
1. 内容文本来源:PDF / EPUB / TXT / 扫描件 OCR 结果路径,或可访问的纯文本。不要在没有文本的情况下"凭记忆"蒸馏——宁可停下来问用户要。(PDF 优先用 MinerU 或 OCR 转纯文本;古文竖排扫描件务必先校勘断句)
2. 内容元信息:书名 + 作者 + 成书年代 + 版本。中医古籍版本差异极大(如《素问》王冰本/林亿本),版本必须标注,用于目录命名和审计。
3. 是否首次试点:第一次用本 skill,先蒸馏 1 本书验证流程再批量。
输出结构
books/<book-slug>/
├── PIPELINE_STATE.md # 流水线状态 (断点续跑用)
├── BOOK_OVERVIEW.md # 阶段 0 产出: 主旨/骨架/术语/批判 + 书型判定
├── verified.md # 阶段 1.5 产出: 通过四重验证的单元
├── INDEX.md # 阶段 3 产出: 系统总览 + 知识引用图
├── GLOSSARY.md # 阶段 3 产出: 全书共享中医术语词典
├── DIGEST.md # 阶段 5 产出: 面向读者的精华长文
├── SKILL.md # ★ 阶段 2 产出: 辨证决策系统主入口
├── references/ # ★ 结构化知识库
│ ├── 方剂晶体结构.md
│ ├── 辨证速查.md
│ ├── 药物数据库.md # (本草类书)
│ └── 医案精选.md # (医案类书)
├── safety/ # ★ 安全层 (强制注入)
│ ├── 免责声明.md
│ ├── 剂量安全.md
│ ├── 配伍禁忌.md
│ └── 红旗症状.md
├── candidates/ # 阶段 1 原始候选池 (审计用)
├── rejected/ # 阶段 1.5 淘汰单元 + 原因 (审计用)
├── test-prompts.json # 阶段 4 测试用例
└── test-results.md # 阶段 4 通过率 + 失败分析
执行流程 (严格按顺序)
断点续跑:开始前先检查 books/<slug>/PIPELINE_STATE.md 是否存在。存在则读取并续跑。每完成一个阶段更新该文件。
阶段 0 — 整书理解 + 书型判定 ★
- 读取书本文本。古文大文件分块阅读,注意繁体/异体字/断句。
- 执行
methodology/01-stage0-book-understanding.md中的四步(结构 / 解释 / 批判 / 应用)。 - 书型判定:按
methodology/00a-book-type-routing.md把书归入 6 类之一(理论经典/临床辨证/方剂/本草/医案/专科养生),据此确定阶段 1 启用的 extractor 组合。 - 按
templates/BOOK_OVERVIEW.md填充,写入BOOK_OVERVIEW.md(含书型判定结论)。 - 展示给用户确认:"骨架和书型我判断对了吗?" 得到确认再进入阶段 1。
阶段 1 — 并行提取 (按书型启用 extractor)
按书型从 extractors/ 中选定主/辅提取器,并行 spawn sub-agents(用 Agent 工具,一次调用发起全部):
| 书型 | 主 extractor | 辅 extractor |
|---|---|---|
| 理论经典 | theory, term | syndrome |
| 临床辨证 | syndrome, formula, case | contraindication, term |
| 方剂类 | formula | contraindication, herb |
| 本草类 | herb | contraindication, term |
| 医案类 | case | syndrome, formula |
| 专科/养生 | 混合配置 | 视内容定 |
7 个 extractor:theory(理论体系)/ syndrome(辨证方法)/ formula(方剂)/ herb(药物)/ case(医案)/ contraindication(禁忌·误治)/ term(术语)。
每个 sub-agent 独立读书、独立提取,输出到 books/<slug>/candidates/<type>.md。长文本按 methodology/02-stage1-parallel-extract.md 分块。当前环境不支持并行 sub-agent 时,串行执行同样 7 个 prompt,产出格式不变。
阶段 1.5 — 四重验证筛选
读取 methodology/03-stage1.5-quad-verify.md,对每个候选单元执行:
- V1 经典互证:本书至少 2 处独立佐证 + 至少 1 部他经互参?
- V2 临床可推演:能用它分析一个书里没明说的新症状组合吗?
- V3 学派特色:是该医家/学派的独特见解,而非任何中医师都会说的常识吗?
- V4 安全验证 ★:是否配齐禁忌红线、剂量安全、误治警示?缺则打回。
通过写入 verified.md,不通过写入 rejected/ 附原因。用户轻确认 ★:展示通过/淘汰名单,得到确认再进入阶段 2。
阶段 2 — 构造辨证决策系统 (替代 RIA++)
按 methodology/04-stage2-system-build.md:
- 主
SKILL.md按templates/SYSTEM_SKILL.md填充,包含完整流程:四诊采集 → 辨证(八纲/六经/脏腑)→ 立法 → 选方 → 定药 → 医嘱 → 免责声明。 - 每个方剂按
templates/formula-crystal.md做五维结构:方证抓主症 / 体质画像 / 药证加减 / 类方鉴别 / 禁忌红线。 - 药物按性味归经/功效/主治/毒性/配伍禁忌整理进
references/药物数据库.md。 - 医案按"症状→辨证→立法→方药→疗效"完整链条整理进
references/医案精选.md。
阶段 3 — 知识链接
按 methodology/05-stage3-link.md:建立方证之间的鉴别关系(类方三角)、药物之间的配伍/禁忌关系,生成 INDEX.md 和 GLOSSARY.md(中医术语古今异义词典)。
阶段 4 — 压力测试
按 methodology/06-stage4-pressure-test.md:设计 5–10 条测试 prompt,诱饵中至少 1 条是急危重症场景(应转就医,不辨证)+ 1 条纯西医咨询场景。独立 sub-agent 盲测,未过回炉。
阶段 5 — 交付
按 methodology/07-stage5-deliver.md:
1. 生成 DIGEST.md 精华长文。
2. 强制注入安全层:safety/ 下四份文件(免责声明/剂量安全/配伍禁忌/红旗症状)必须全部就位并写入主 SKILL.md。
3. 询问安装位置,安装通过测试的 skill。
质量红线 (违反则阻止输出)
- 每个知识单元必须通过全部四重验证(含 V4 安全验证)
- 主 SKILL.md 必须含完整辨证流程:四诊 → 辨证 → 立法 → 方药 → 医嘱 → 免责声明
- 每个方剂必须有禁忌红线 + 剂量双标注(古方原量 + 现代参考量)
safety/四份文件必须全部就位并强制注入主 skilltest-prompts.json必须含急危重症诱饵(应转就医)+ 纯西医咨询诱饵- 反幻觉约束:书里没有的方剂/药物严禁编造,无对应方证就拒绝推演
安全红线 (本 skill 产物的绝对边界)
> 本 skill 蒸馏出的任何辨证系统,其输出永远只是中医古籍学术推演,绝不构成医疗建议、诊断或处方。每个产物必须:
> - 每次输出强制置顶免责声明
> - 剂量双标注 + "由执业中医师现场裁定"
> - 急危重症(高热不退/神昏/大出血/剧烈胸痛等)一律转就医,不做辨证
> - 严禁编造古籍未记载的方剂或经验
调用惯例
- 永远先试点 1 本 — 除非用户明确说"批量"
- 阶段之间主动汇报进度
- 不凭记忆拆书 — 没文本就停下来问
- 保留审计轨迹 — candidates/ 和 rejected/ 都要留
- 随时可续跑 — 每完成一个阶段就更新 PIPELINE_STATE.md