| name | kg-hypothesis |
| description | 从生物医学知识图谱生成可检验假设。当用户要求提出研究假设、寻找机制解释、做靶点发现、药物重定位、或问"X 和 Y 之间可能有什么联系"时使用。也在需要为一个观察到的表型找候选通路时使用。 |
| allowed-tools | Read, Write, Grep, Bash(python -m graph.*), mcp__kg__*, mcp__ot__*, mcp__pubmed__*, mcp__biomni__*, Agent(bio-critic, lit-scout) |
| model | opus |
| effort | high |
从知识图谱生成可检验假设
什么时候不要用这个 skill
先说这个,因为误用的代价比不用高。
- 只需要事实检索时不要用。 "TP53 的已知互作蛋白有哪些" 是检索,直接查 Open Targets / STRING。图上的多跳采样在简单事实检索上会输给普通 RAG —— 已发表的对比显示 basic RAG 在 fact retrieval 上 60.92% 胜过 GraphRAG,且 GraphRAG 的 token 成本是 44×–377×。
- KG 里没有相关子图时不要用。 先跑
python -m graph.kg_staging --coverage <terms>,若种子词命中的节点 < 5 个,说明这个领域没被本地 KG 覆盖,改走文献路线(lit-scout subagent)。
核心机制:随机化路径采样,不是最短路
这是 SciAgents 的做法,且它解释了为什么有效:在 embedding 距离寻路的基础上注入
随机性(randomness factor 0.2,waypoint 从路径节点的邻居中抽),原文理由是
"randomization infuses the path with a richer array of concepts"。
最短路给你的是已知关系的复述;带随机性的路径给你的是需要解释的意外邻接——
后者才是假设的原材料。node + edge 路径本身就是 prompt 支架,不要把它压缩成
一句自然语言再喂给模型,那样会丢掉中间节点的类型信息。
python -m graph.kg_staging --sample-paths \
--seed "T cell exhaustion PD-1 metabolic reprogramming" \
--k 8 --randomness 0.2 --max-hops 5 --out /tmp/paths.json
严格只在 asserted 命名空间采样
KGStaging.sample_paths() 默认 include_pending=False,不要改。
用未验证的 pending 边播种假设会形成自我强化的幻觉回路:
上一轮的猜测变成这一轮的"证据"。
步骤
- 确认覆盖度 —— 种子词在 asserted 图上的命中节点数 ≥ 5,否则改走文献路线。
- 采样 8 条路径(可并行,这是安全的扇出维度)。
- 每条路径生成一个假设,输出必须含这五项:
statement —— 一句话,含方向(上调/下调/增强/削弱)与比较对象
kg_path —— 支撑路径的 edge id 列表(可追溯,这是审计凭据)
mechanism —— 沿路径讲的机制故事,每一跳都要有交代
falsifier —— 能推翻它的最小实验(不是"能支持它的实验")
prior_evidence —— 已有文献是支持、反对、还是沉默
- 逐条核验支撑边(这一步不可省):
- 用
mcp__pubmed__* / mcp__ot__* 为每条边取文献支持
- 参考基线:OptimusKG 用 PaperQA3 评估 5,708 条边(4,708 真边 + 1,000 假对照),
真边 70.0% 能取到文献支持,假边 83.4% 取不到支持。
所以"取不到支持"是强信号,不是噪声。
- 支撑率 < 70% 的假设直接弃掉,不要"降级保留"。
- Elo 锦标赛排序 + escalation ladder。新假设起始分 1200;
top-3 做多轮辩论,其余只做单轮比较 —— 把算力花在难分的对上。
这是 Google AI co-scientist 的 Ranking agent 做法。
- 异构对抗评审。调
Agent(bio-critic) 与 mcp__codex__codex,
要求它们试图反驳而不是评价。
⚠️ 不要用同一个模型自评:LLM 在没有外部反馈时自我纠错会降低性能
(Huang et al., ICLR 2024),且 LLM 成对排序准确率只有 53.3%。
- 写入 pending,不写 asserted。新产生的边只 stage:
kg = KGStaging(thread_id=..., step="H")
kg.stage([Edge(subject=..., predicate=..., object=..., provenance=action_id)])
只有等实验验证门(G_V)通过后才由 verify_join 节点 promote。
输出格式
写到 design/hypotheses.json,schema 见 references/hypothesis_schema.json。
排名第一的假设同时写一份人类可读的 design/H1.md,含:
路径图(mermaid)、机制叙述、falsifier、以及明确列出的、如果假设为真则必然
同时成立的三个可检验推论(这三个推论是后续 pipeline 的断言来源)。
一条必须写进输出的免责说明
假设生成的质量与执行后的质量是两件事。已发表的对照实验(43 位专家各花约 103 小时
执行 43 个随机分配的想法,58 位专家盲评)显示:AI 生成的想法在执行后各项指标
显著下降,而人类想法保持稳定。所以本 skill 的产出是待检验的候选,
排名不代表可行性,必须走完 D→I→E→V 才有结论。