Install
openclaw skills install tcm-dietary中医食疗辨证论治 AI 助手。提供体质辨证、疾病证型辨识、食疗方案生成、菜品中医改良、食材性味归经查询、保健茶饮配方、导引功法推荐、古籍经典引用。基于"理法方药"完整理论框架,覆盖 460 种证型、3372 种食材(含 150 种全球食材)、8673 道食疗方、997 首茶饮、154 式功法、15 类美容方、102 首房中秘方。基于 28 本中医古籍原文。
openclaw skills install tcm-dietary基于完整的中医食疗理论体系:理 → 法 → 方 → 药(食),为 AI Agent 和终端用户提供专业的中医食疗能力。
以下是在辨证和食疗推荐中反复出现的 Agent 失败模式。每一条都曾导致真实诊断错误,处理每个请求前检查本节。
现象: 知识库中的古文本(《辨证录·中妖门》《证治汇补》等)包含异质条目(如"山魈吸气证""鬼魅侵扰证"),这些条目文本短且包含常见单字("眠""热""痛"),易被关键词匹配命中。
为什么会失败: match_from_knowledge() 对古文本做子串匹配时,"口渴"+"多饮"+"多尿" 可能命中《中妖门》条目,因为古文本包含"饮""渴"等单字。
正确做法:
_try_disease_bridge)结果,桥接命中时以桥接为准现象: 症状列表中的某单一症状(如"月经不调")触发了疾病桥接,桥接返回的分型(如"肾虚型")覆盖了其他症状("胁痛""情绪低落")强烈指向的脏腑(肝)。
为什么会失败: _try_disease_bridge() 取症状列表中的第一个匹配病名决定桥接方向,但第一个匹配的疾病未必是主病。
正确做法:
现象: 输入同时包含寒性症状(怕冷)和热性症状(盗汗、口干),八纲辨证简单取"得分最高"维度,可能判为"实证寒证"而忽略"盗汗"的热象。
为什么会失败: _resolve_nature() 对虚实和寒热分别取最高分维度,差值≤1时判为"不明显"。但两个维度的得分差异在≤1时仍存在有意义的临床信号。
正确做法:
现象: 针对消渴患者推荐含高糖食材(红枣、桂圆),或痛风患者推荐高嘌呤食材(海鲜、动物内脏)。 为什么会失败: 辨证和食谱推荐是两个独立步骤,食谱推荐没有自动交叉验证辨证结果中的禁忌约束。 正确做法:
chronic-diseases.json 中对应疾病的 avoid_foods / 禁忌食材ingredients.json 中学名对应食材的性味,交叉验证与证型的冲突现象: 仅 1-2 个症状(如"乏力")就给出精确证型结论("肺气虚"),而实际上"乏力"是 80% 证型的共有症状。
为什么会失败: 辨证引擎对输入症状数没有下限校验,_determine_syndrome 在知识库无匹配时会 fallback 到八纲+五脏关键词匹配,但 1-2 个症状的匹配噪音极高。
正确做法:
每次 diagnose() 调用按以下步骤执行,不允许跳过任何步骤:
expand_symptoms() 将用户输入症状扩展同义词(如"怕冷"→"畏寒/四肢不温/形寒")必须同时运行以下五个引擎,不可只取一个结果:
| 引擎 | 函数 | 核心作用 |
|---|---|---|
| 八纲辨证 | _score_bagua() | 确定虚实·寒热·阴阳大方向 |
| 五脏辨证 | _organ_differentiation() | 确定病变脏腑(返回全部脏器得分,不取max) |
| 五行因果 | wuzang_engine.analyze() | 五行生克推演主证+兼证(心→脾→肺→肾→肝传变路径) |
| 气血辨证 | qi_blood_engine.differentiate() | 判断气虚/血虚/气滞/血瘀/痰湿维度 |
| 病因辨证 | xie_qi_engine.differentiate() | 判断六淫(风寒暑湿燥火)+七情+饮食+劳倦 |
_try_disease_bridge(symptoms):症状→疾病名→辨证分型(数据源:中医病证诊断疗效标准/证因脉治等)match_from_knowledge(expanded_symptoms) 全文检索_score_bagua() 结果矛盾 → 过滤遇到以下冲突时的处理优先级:
| 冲突类型 | 处理规则 |
|---|---|
| 桥接证型 vs 五行推演主证不一致 | 五行推演吻合度≥2 → 五行优先;否则桥接优先 |
| 八纲 vs 知识库证型矛盾 | 八纲一致性校验自动过滤矛盾候选 |
| 多脏得分接近(前两名差≤1) | 必须输出复合证型,不能只取最高分 |
_determine_syndrome() 综合所有引擎结果chronic-diseases.json 获取推荐食材和禁忌食材ingredients.json 获取每个推荐食材的性味归经以下操作在任何情况下都不得执行。违反将导致输出质量严重下降,已被评测验证为有害:
| # | 禁止操作 | 替代方案 |
|---|---|---|
| 1 | 禁止基于 <3 个症状给出精确证型诊断 | 返回八纲宽泛结论 + "建议补充更多症状" |
| 2 | 禁止将来自"中妖门""鬼魅门"的古籍条目作为证型输出 | 自动降权过滤,不得出现在 TOP5 候选 |
| 3 | 禁止输出含"吐血""疟""妖""鬼"的证型名(除非用户明确讨论该主题) | 改为功能描述:如"虚火扰心(肾肝相关)"替代"肾肝虚火久吐血证" |
| 4 | 禁止在未查 chronic-diseases.json 禁忌字段的情况下推荐食材 | 先查禁忌,再推荐 |
| 5 | 禁止将中医证型名(如"消渴")直接等同于西医诊断(如"糖尿病")向用户陈述 | 使用中医术语,括号注明"常见于现代医学的XX" |
| 6 | 禁止推荐含附子/乌头/细辛/马钱子/斑蝥/砒石等毒性药材的食疗方,除非明确标注剂量限制和禁忌人群 | 如有必要提及,必须附带完整的安全警告 |
| 7 | 禁止跳过食材禁忌交叉验证 | 推荐食材 ∩ 禁忌食材 = ∅,必须验证 |
| 8 | 禁止在疾病桥接命中后跳过五脏辨证引擎 | 桥接和五脏必须并行,用于交叉验证 |
| 服务 | 说明 |
|---|---|
| 基础调理 | 9 种体质辨识 + 针对性调理方案(平和/气虚/阳虚/阴虚/痰湿/湿热/血瘀/气郁/特禀) |
| 功能改善 | 针对具体症状(失眠/便秘/脱发/痛经/口腔溃疡/乏力等)辨证施治 |
| 生活方式 | 四季养生、食疗茶饮、日常食谱、饮食禁忌等生活化建议 |
| 慢病调理 | 617 种疾病的辨证分型 + 食疗原则(糖尿病/高血压/痛风/胃炎等) |
| 功能 | 调用 | 关键参数 |
|---|---|---|
| 辨证 | core.syndrome.diagnose(symptoms) → dict | symptoms: list[str], 至少3个 |
| 知识检索 | core.knowledge.search(category, keywords) → list | category: tcm-theory/ingredients/dishes/chronic-diseases |
| 食材查询 | core.knowledge.get_ingredient(name) → dict | 返回性味归经功效 |
| 个性食谱 | core.recipe.personalize(profile) → dict | profile: {体质, 症状, 口味, 过敏} |
| 菜品改良 | core.recipe.improve(dish, condition, body_type) → dict | 自动查慢病库和体质库 |
| 茶饮推荐 | core.tea.recommend_by_constitution(type) → list | 从997首茶方筛选 |
| 功法推荐 | core.daoyin.recommend_by_constitution(type) → list | 从148式功法推荐 |
理(辨证基础)
├─ 体质辨证:9 种体质(平和/气虚/阳虚/阴虚/痰湿/湿热/血瘀/气郁/特禀)
├─ 八纲辨证:阴阳·表里·寒热·虚实
├─ 五脏辨证:心·肝·脾·肺·肾
└─ 五行因果:母病及子/子盗母气/相乘/相侮/以克为生
↓
法(调理方法)→ 汗·吐·下·和·温·清·消·补
↓
方(配伍方法)→ 君臣佐使·相须相使
↓
药/食(食材应用)→ 性味归经·功效主治·禁忌·现代营养
# 无需额外安装,标准 Python 3.10+
python3 -c "from core import syndrome; print(syndrome.diagnose(['头晕','乏力']))"
from core.syndrome import diagnose
result = diagnose(["失眠", "心悸", "健忘", "食欲不振"])
# → {"证型": "心脾两虚证", "治则": "补益心脾", "推荐食材": ["龙眼", "红枣", "黄芪"]}
from core.knowledge import search, get_ingredient
# 搜索中医理论
results = search("tcm-theory", ["阳虚质", "怕冷"])
# 查询食材
ginger = get_ingredient("生姜")
# → {"性": "温", "味": "辛", "归经": ["肺","脾"], "功效": ["散寒解表","温中止呕"]}
from core.recipe import personalize
plan = personalize({
"体质": "阴虚质",
"症状": ["口干", "盗汗"],
"口味": "清淡"
})
# 辨证
python3 scripts/syndrome_differentiator.py --symptoms "头晕,乏力,失眠"
# 知识检索
python3 scripts/knowledge_manager.py search --category ingredients --keywords 枸杞
# 菜品改良
python3 scripts/dish_improvement.py --name 红烧肉 --chronic 糖尿病
# 个性化食谱
python3 scripts/personalized_recipe.py --body 阴虚质 --symptoms "口干,盗汗"
# 茶饮推荐
python3 core/tea.py --constitution 阴虚质 --count 3
python3 core/tea.py --symptoms 失眠 疲劳 --count 3
# 功法推荐
python3 core/daoyin.py --constitution 阴虚质 --count 3
python3 core/daoyin.py --organ 肾 --count 3
| 知识库 | 条目数 | 说明 |
|---|---|---|
| tcm-theory.json | 460 | 证型库:八纲/五脏/六经/气血/卫气营血/病因,含辨证要点、治则、食疗原则 |
| ingredients.json | 3,372 | 食材性味归经功效(含 150 种全球食材) |
| dishes.json | 8,673 | 药膳食疗方 |
| chronic-diseases.json | 619 | 慢病辨证分型与食疗原则 |
| symptoms.json | 4,283 | 症状→证型映射 |
| cosmetic_formulas.json | 15 | 中医美容方剂(护发/面部/瘢痣/手足等) |
| daoyin_module.json | 154 | 导引功法(八段锦/五禽戏/太极拳等) |
| 茶饮保健 | 997 | 16 功效分类保健茶饮配方 |
| 古代房中秘方 | 102 | 传统房中养生方药 |
tcm-dietary/
├── core/ # 公共 API(薄封装)
│ ├── syndrome.py # 辨证引擎接口
│ ├── knowledge.py # 知识检索接口
│ ├── recipe.py # 食谱/菜品接口
│ ├── daoyin.py # 导引推荐接口
│ └── tea.py # 茶饮推荐接口
├── references/ # 参考文档
├── tests/ # 测试
├── SKILL_FULL.md # 完整文档(Agent 深度使用)
└── CHANGELOG.md
MIT-0 (MIT No Attribution)。可自由使用、修改和重新分发。无需署名。
本 Skill 提供的中医食疗建议仅供参考,不构成医疗建议。如有健康问题,请咨询专业医师。