把倪海厦的中医讲义,做成了一个能对话的 Skill

中医 倪海厦 伤寒论 经方 AI Agent Claude 架构设计 科普

同样是感冒,有人让你赶紧喝碗姜汤发发汗,有人说千万别发汗、会更虚。同样是发烧,有人说要捂着,有人说要散热。你追问一句为什么,通常得到的答案是"体质不一样"——这话等于没说。

如果你去看中医,可能会遇到这样的场景:医生没怎么看化验单,先问三句话。出汗吗?怕冷还是怕热?脖子后面僵不僵?然后落笔开方。

这三句话不是随口问的。它背后有一套两千年前就定下来的判断框架,出自东汉张仲景的《伤寒论》。你回家想搞明白刚才那张方子,搜一下名字,比如桂枝汤,得到的通常是这样一段:

组成:桂枝、芍药、生姜、大枣、炙甘草。
功效:解肌发表,调和营卫。
主治:外感风寒表虚证。

每个字都认识,连起来不知道在说什么。更麻烦的是,“解肌发表,调和营卫"这八个字本身还得解释——你得先懂什么叫"营卫”,才能懂这句解释。中医术语的困境在于,解释术语的话里全是术语。

于是你继续搜"营卫是什么",再搜"表虚证是什么",两小时后关掉浏览器,脑子里还是那句"体质不一样"。

这不是资料不够。《伤寒论》全文网上到处都是,太阳病篇 129 条一条不少,各种注解版本也很多。缺的是有人逐条讲:讲清楚为什么有汗的用桂枝汤、无汗的要用麻黄汤,讲清楚"太阳中风"和你以为的那个"感冒"到底是什么关系。

倪海厦是少数把这件事做到了的人。


一个走师徒制的中医

倪海厦像,两侧竖排列出人纪、天纪、黄帝内经、金匮要略、伤寒论、神农本草经六部讲义名,下方题词:中医很简单,就是阴阳气血。你搞懂了,一通百通。

倪海厦,1954 年生于台北。

他学中医的路子和大多数人不一样。高中时代拜了两位老师:周左宇,北京四代家传的针灸名医;徐济民,江苏名医。走的是传统师徒制,不是科班。这个出身解释了他后来一个很硬的立场——“中医几千年靠师徒传承,不是大学教育”。他对现代中医院校教育的批评相当不客气,根子就在这里。

东吴大学期间他还当过合唱团团长,玩摇滚。这个细节和后来那个在讲台上语速极快、动不动"对不对"的形象,其实是同一个人。

1980 年移民美国,在佛罗里达行医二十九年,创立汉唐中医学院。2000 年代开始录制《天纪》与《人纪》两套教学系列,把《伤寒论》《金匮要略》《黄帝内经》《神农本草经》和针灸逐篇讲了一遍。2010 年他在斯坦福大学做过一次演讲。2012 年辞世,计划中的《地纪》没能完成。

留下的是两千四百多页讲义,和数百个他自己写的临床日志。


他到底好在哪

说一个人"讲得生动"是没有信息量的。倪海厦的方法其实很具体:每个抽象概念,他都换成一个你昨天刚经历过的场景。

讲肾阳虚——身体的火力不足,代谢不动了——他说,这就是锅下面没有火。水在锅里怎么都烧不开,你光往锅里加水没用,得看灶。

讲长期吃降压药控制血压,他说这是关掉火警警报器。血压高是身体在报警,说明某处不通、需要更大压力才能把血送到该去的地方。你把警报器关了,火还在烧。

讲长期服用寒凉药,他说这是冬天还一直往身上浇冷水,你不信试试看

讲西医的分科而治,他有一段很长的比喻:你拆了一颗螺丝,机器就不转了,然后每个科室告诉你那颗螺丝不是他负责的。

这些话你可以不同意——后面我会专门说这件事——但你不能说没听懂。这就是全部要害:中医经典的门槛,主要不卡在深奥,卡在没人肯把话说到这个份上。

六经辨证:那三句话问的是什么

回到开头那个场景。医生问的出汗、怕冷、脖子僵,对应的是一套定位系统。

《伤寒论》把外感病的发展分成六个阶段,叫六经。它不是六种病,而是病邪推进的六道防线,从最外层往里走:

主要表现 代表方 一句话
太阳 脉浮、头项强痛、恶寒 桂枝汤 / 麻黄汤 表证第一关
阳明 但热不寒、便秘腹满 白虎汤 / 承气汤 里热已成
少阳 口苦咽干目眩、忽冷忽热 小柴胡汤 卡在半表半里
太阴 腹满吐利、吃不下 理中汤 脾胃虚寒
少阴 脉微细、总想睡 四逆汤 / 真武汤 心肾阳虚,要急救
厥阴 寒热错杂、气上撞心 乌梅丸 最里一层

“脉浮、头项强痛而恶寒”——这是《伤寒论》第一条,太阳病的提纲。翻成白话:脉搏往外浮、后脑勺连着脖子发僵发痛、怕冷。医生问你脖子僵不僵、怕不怕冷,就是在确认这一条。

**先定病在哪一经,再谈用什么方。**这个次序不能倒过来。倪海厦反复强调的就是这一点:不是"感冒吃什么药",而是"你这个感冒走到第几道防线了"。

有汗和无汗,为什么是分水岭

定完太阳病,还要再分一次。分的就是出不出汗。

太阳中风 太阳伤寒
出汗 有汗 无汗
怕的是 恶风 恶寒
浮缓 浮紧
桂枝汤 麻黄汤

道理不难懂:无汗,说明毛孔闭着、邪气排不出去,要用麻黄把门打开,发汗驱邪;已经有汗了,门是开的,再发汗就是白白流失津液,这时候要做的是把已经散乱的调回来。

所以《伤寒论》里明确写着一条禁令:**无汗的伤寒证,禁用桂枝汤。**用错方向,不是没效,是加重。

这就是开头那个矛盾的答案——“该不该发汗"从来不是一个可以脱离前提回答的问题。有人叫你喝姜汤,有人叫你别发汗,两边可能都对,只是说的不是同一种情况。而判断属于哪种情况,靠的就是那三句问诊。

到这一步你再回头看"解肌发表,调和营卫"这八个字,它突然就有意思了。


所以做了这个 Skill

问题在于,这套东西的讲解散在两千多页讲义和几百个医案里。你想查一个具体的点,得先知道它在哪。

所以我把这批语料整理成了一个 Agent Skill:一种给 AI 助手加载专门知识的开放格式,装上之后,AI 就能用倪海厦的视角和讲法来回答你的问题。

覆盖的内容:

  • 《伤寒论》太阳病篇条文 1 至 129,以及其余五经
  • 《金匮要略》二十三篇全
  • 《黄帝内经》五十三篇
  • 《神农本草经》三百四十五种药
  • 针灸教程、天纪(紫微斗数、易经、风水)
  • 临床医案 321 例,闭门课重病专题 13 个
  • 梁冬对话录音稿、汉唐中医文章

实际用起来大概是这样:

**问:**桂枝汤和麻黄汤到底怎么区分?
直接给出有汗无汗、脉浮缓浮紧的分界,不用翻原文。

**问:**倪海厦怎么讲伤寒论第 12 条?
取太阳病篇的原讲义,逐句讲,带方义和临床要点。

**问:**金匮里的胸痹是什么?
定位到《金匮要略》第九篇,讲病机和代表方,也会说明它和现代所说的心绞痛是什么关系。

**问:**用倪海厦的口吻讲一遍阳气论。
加载完整的口述风格语料,还原他讲课的语气和类比方式。

最主要的用法是经典陪读:你读原文,卡住了就问,问完接着读。它不替你读书,它是那个可以随时打断提问的老师。


设计上花的心思

这部分偏技术,不感兴趣可以跳到下一节,但它决定了这个 Skill 好不好用。

起点:一个 86 万字节的文件

这批语料我不是从零整理的,社区里已经有几位做过收集和蒸馏工作,我是在他们的基础上接着做的。拿到手时,它是一个单文件:865,467 字节

问题在于加载机制。Skill 这套东西的规则是,一旦触发,入口文件会被整份读进 AI 的上下文,不管你这次用不用得上。换算成 AI 的计量单位,这个文件是二十一万 token。意味着你随便问一句"失眠怎么办”,整部《伤寒论》讲义连同八百多个医案会一起被抱进对话,把 AI 的注意力和可用空间挤占大半——你为了问一句话,先让它背了一遍全书

更能说明问题的是,这个文件开头写着一句指示:先查索引定位行号,再读对应内容。想法是对的,但放错了地方——它自己已经整份在上下文里了,再检索自己没有意义。

于是逐行比对了一遍,发现那 86 万字节里九成以上是其他文件的副本。真正独有的只有一节:一套六经辨证的快速诊断公式,458 行。

删掉重复,把独有的抽出来。入口文件从 86 万字节降到 9 KB

分层:五层,各司其职

删完之后要重新组织。这里有一个容易走偏的地方:按什么标准分层。

最省事的标准是体积——大文件放一层,小文件放一层,能一次读完的放一层。但这样分下来,同一层里会同时躺着临床速查表、经典原文、讲课语气规则和医案。它们唯一的共同点是大小差不多。那是按大小排序,不是架构。

改成按职责分:

职责 内容
契约 安全边界,覆盖以下所有层 禁令、场景判定、立场声明
路由 识别问题、判断场景、决定去哪取 索引与分发规则,不存知识
认知 怎么想、怎么说 六经心智模型、决策次序、讲课语气
工具 怎么办 诊断公式、药性速查、穴位诊断
语料 依据是什么 经典原文、医案,87 份文件

每一层只干一件事。路由层不存放任何知识,它只知道"这个问题该去哪里找",本身压在 2.3k token 以内。这就是触发开销从 21 万降到 2.3k 的来源。

寻址:三级索引

光把大文件切小没用,切完还是不知道读哪一份。切分只解决"读不动",不解决"不知道读哪"。

所以每一层语料都配了索引:先查总索引定位到哪部经典,再查该经典的索引定位到具体篇目,最后读那一篇。

问"金匮里的胸痹",实际路径是:总索引(0.5k)→ 金匮索引(1.2k)→ 第九篇原文(8k)。三步命中,全程不到 10k token。

切分粒度也定了个规矩:单文件必须能一次读完。原来最大的一份是 29 万 token,现在最大的 3 万。这样定位到文件之后就直接读全文,不必再按行号去截片段——截片段看着省,实际会丢掉上下文,让检索变得脆弱。

校对:内容本身要对

整理过程中发现过几处问题,都不是格式问题,是内容问题。

医案那批,条目标题和条目内部的小节标题(来诊原因、问诊、脉诊、中药处方)用的是同一级。机械按标题切分,一个完整病例会被拆散在几个文件里,检索时永远拼不回来。按语义边界重新识别之后,实际是 321 例,而不是按标题数出来的 410 例。

还有一份文件名写着"黄帝内经",打开是《金匮要略》第 5 至 7 篇。它和金匮主文件的篇目零重叠,两者合起来正好补齐二十三篇——而索引正指着这个文件去查内经。

这类事情不校对是发现不了的,而它直接决定你问出来的东西对不对。

一条自己推翻自己的规矩

上面立了那么多规矩,核心都是"不要重复存放、按需加载"。但有一样东西恰恰相反。

安全条款该放在哪?

最规范的做法是单独抽成一个文件:独立、清晰、可审计、改动不会误伤别处。我一开始也是这么做的。直到意识到一个问题——这套系统的规则是按需加载。文件只在被判断为"需要"时才读进来。那么,如果 AI 认为这次对话不需要读安全文件呢?

独立文件按需加载,不加载就等于不存在。

所以它最终做成了两种形态并存:一份不可删的硬禁令摘要常驻在入口文件里,保证任何情况下都在场;完整的契约、判例、立场声明放在独立文件,另加一条强制路由——只要话题碰到身体、用药或治疗方案,必须先读完整契约再回答

整个系统里,这是唯一值得重复存放的信息。

还有一处冲突也是这么解决的。讲课风格里有一条:“不要动不动就让人去咨询医师”——因为倪海厦说话直接,加这句不像他。可安全条款要求"涉及身体必须提醒就医"。两条写在同一个文件里,而风格指令离生成更近,很可能赢。

所以做了场景判定:纯学术讨论(讲条文、讲药性、讲流派)保留他原有的口吻;一旦你谈到自己的身体,风格让位于安全。这不算破坏角色——倪海厦本人临床也要求患者找医师面诊。


边界:它不能干什么

这一节比上面所有内容都重要。

**它不能看病。**不下诊断、不开处方、不给剂量、不评估你的具体病情。写在 Skill 的安全契约里,是硬性禁令,不是免责声明。

**它不介入治疗决策。**不会建议你拒绝、推迟、中断任何肿瘤治疗,也不会建议你停用或减量任何处方药。心梗、中风、大出血这类急症,它只会回一句"立即就医",不做任何中医分析。

还有一件必须说清楚的事。

倪海厦在 2005 年前后,对现代医学、尤其对肿瘤治疗持强烈批评态度。他称化疗使癌症扩散,称抗凝药为"老鼠药",医案里记录过患者自行停用内分泌治疗药物之后的情况。这类内容在语料里密度很高。

我没有删。删了就不是他的思想了,剩下的只是一个被修剪过的、更"安全"但也更失真的倪海厦。

但收录不等于背书。所以 Skill 被强制要求:转述这类内容时必须标注"这是倪海厦的观点",不得转化为对用户的行动建议。可以说"倪海厦认为化疗会……",不能说"你应该停掉化疗"。一旦话题涉及你正在接受的治疗,它必须先说明:任何治疗方案的调整,必须与你的主治医师讨论。

方剂也是同理。附子含乌头碱,有致命毒性;麻黄、半夏、细辛都是有真实作用强度的药。语料里那句"喝到生附子,嘴唇舌头会麻,虽然是一种中毒现象,但是因为病人需要这个药,所以病人觉得很舒服"——口舌麻木是乌头碱中毒的早期体征,这句话不能当作安全性说明来读。Skill 里对此有单独的标注要求。

说到底,你从这里得到的是一家之言。很有力量的一家之言,但不是医学共识,更不是医嘱。它的价值在于让你读懂中医经典,不在于让你照着做


装上试试

git clone https://github.com/Tespera/nihaisha-skill.git ~/.claude/skills/nihaisha

新开会话后,说「倪海厦」「倪师」「海厦视角」「经方思维」任意一个就能触发。

它遵循 Agent Skills 开放规范,Codex、Cursor、Gemini CLI、GitHub Copilot、Windsurf 等运行时同样可用,把目录放进各家的 skills 位置即可,不用改任何文件。

语料整理自倪海厦公开教学内容,底本来自开源社区多位整理者,依木兰宽松许可证第 2 版使用,仓库里记录了完整的传承链。倪海厦讲义的著作权归其权利人所有,本项目仅供学习研究。


最后回到开头那个问题。

学中医这件事,难点从来不在记住多少个方子。难在你能不能建立起那套判断的次序:先看在哪一层,再看寒热虚实,最后才谈用什么。

倪海厦最大的贡献,是他愿意把这个次序,用你能听懂的话,一遍一遍地讲。

评论