mcpField
K
Knowledge Graph & Causal Discovery

Knowledge Graph & Causal Discovery

远程服务
ryanclinton--knowledge-graph-causal-discovery-mcp.apify.actor记忆与知识032 周前更新

关于 Knowledge Graph & Causal Discovery

Knowledge Graph & Causal Discovery 是面向研究人员、数据科学家和 AI Agent 的 MCP 服务,用于分析多领域研究数据中的因果结构。它整合多个公共数据领域,并通过专门的因果推断工具返回含证据的结构化结果。

主要功能

  1. 01跨领域构建因果知识图谱
  2. 02发现有向因果结构
  3. 03估算干预和处理效应
  4. 04模拟反事实结果
  5. 05提取并分类文献主张

适用场景

  1. 01识别潜在药物安全信号
  2. 02评估政策对经济结果的影响
  3. 03综合研究论文中的因果主张
  4. 04评估责任案件中的反事实

MCP 相关

该服务向 MCP 客户端提供 8 种专门的因果推断工具,并返回含评分和支持证据的结构化 JSON。客户端使用 Apify API 令牌连接其远程端点。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://ryanclinton--knowledge-graph-causal-discovery-mcp.apify.actor/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

知识图谱因果发现 MCP 服务

在 ApifyForge 上查看 | 在 Apify Store 上使用


快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf):

{
  "mcpServers": {
    "knowledge-graph-causal-discovery-mcp": {
      "url": "https://ryanclinton--knowledge-graph-causal-discovery-mcp.apify.actor/mcp"
    }
  }
}

基于跨领域研究数据进行知识图谱因果发现,并通过统一的 Model Context Protocol 接口提供服务。此 MCP 服务面向研究人员、数据科学家和 AI Agent,帮助他们超越相关性分析,从已发表的文献和公开数据集中发现有向因果结构、估计处理效应,并推理反事实。

该服务并行协调 17 个 Apify actors,覆盖五个数据来源领域——学术、生物医学、监管、经济和安全——并将结果汇总为统一的因果知识图谱。随后,八种专用工具会应用严谨的因果推断算法:FCI 骨架学习、采用 BIC 评分的 GES、Pearl 的 do-calculus 与 ID 算法、双生网络反事实、TMLE 估计、RotatE 知识图谱嵌入、层上同调一致性检查,以及 Shapley 来源归因。每次工具调用都会返回包含数学评分和支持证据的结构化 JSON。

⬇️ 可以访问哪些数据?

数据点来源覆盖范围
📄 学术论文和引用OpenAlex、Semantic Scholar、Crossref2.5 亿以上学术作品及其引用图谱
📑 预印本和开放获取内容arXiv、CORE物理学、计算机科学、定量生物学、数学
🧬 生物医学文献PubMed3,600 万以上引用记录,含 MeSH 索引
🏥 临床试验ClinicalTrials.gov45 万以上已注册研究及方案数据
💊 药物不良事件报告OpenFDAFDA FAERS 药物警戒数据库
🔬 NIH 研究资助NIH Reporter正在进行和历史资助项目
📜 联邦法规Federal Register美国监管行动和拟议规则
🏛️ 国会立法Congress.gov法案、决议和修正案
🗂️ 政府数据集Data.gov30 万以上联邦开放数据资源
📈 经济时间序列FRED美联储 GDP、通胀、就业数据
🌍 世界发展指标World Bank200 多个国家的发展指标
⚠️ 产品召回通知CPSC消费品安全召回数据库
💬 消费者投诉CFPB金融保护投诉记录
📖 百科背景信息Wikipedia背景知识和概念消歧

为什么使用知识图谱因果发现 MCP?

从零开始构建因果推断工作流,需要整合十多个数据来源、实现图构建逻辑,并编写涵盖三十年学术文献的算法。典型的研究团队即使花一周时间,最终得到的工作流通常也最多只覆盖两三个数据领域。

此 MCP 服务涵盖 17 个数据来源,应用 10 种经同行评审的因果算法,并在数秒内返回结构化结果——可直接在 Claude、Cursor、Windsurf 或任何兼容 MCP 的 AI 客户端中使用。

  • 数据始终保持最新 — 每次工具调用都会从来源 API 获取最新结果;没有过时快照或缓存索引
  • 并行执行 — 每次查询最多同时运行 17 个 actors,而非依次运行,因此响应时间取决于最慢的数据源,而非各数据源耗时之和
  • 待机模式 — 两次调用之间服务保持预热状态,消除交互式研究会话中的冷启动延迟
  • 按次付费 — 无月度订阅;每次调用费用为 $0.035 至 $0.050,完整的 8 工具工作流费用低于 $0.35
  • 原生支持 MCP — 可用于 Claude Desktop、Cursor、Windsurf、Cline 以及任何支持 Model Context Protocol 的客户端

⬆️ MCP 工具

工具价格算法最适用于
discover_causal_structure$0.045FCI + GES + additive noise model从观察性数据中初步发现因果图结构
compute_interventional_effects$0.050Pearl's do-calculus + ID algorithm + Balke-Pearl LP政策评估、治疗规划、干预设计
simulate_counterfactuals$0.045Twin network method + Tian-Pearl bounds“如果……会怎样”分析、法律因果关系、必要性/充分性
extract_causal_claims_literature$0.035NLP pattern matching + evidence classification系统性综述、证据综合、主张审查
embed_causal_knowledge_graph$0.040RotatE complex-valued embeddings链接预测、实体相似度、通路发现
estimate_causal_effect_tmle$0.050TMLE + Super Learner ensemble + influence function CI使用双重稳健置信区间进行半参数 ATE 估计
check_graph_consistency$0.035Sheaf cohomology H¹(G,F)验证因果假设、检查可识别性
attribute_source_contribution$0.040Shapley values + nucleolus + core stability数据来源优先级排序、预算分配

知识图谱因果发现的应用场景

药物安全信号检测

药物警戒团队将 PubMed 生物医学文献、ClinicalTrials.gov 结果数据和 FDA 不良事件报告整合到单一因果图中。discover_causal_structure 工具可识别化合物与不良结果之间的有向边。compute_interventional_effects 工具通过对来自 NIH 资助数据和 OpenAlex 引用的混杂因素进行后门调整,估算 P(不良事件 | do(开具药物处方))。

政策影响评估

政策分析师通过整合 Federal Register 规则、FRED 经济时间序列和世界银行发展指标,估算监管干预对经济结果的因果效应。estimate_causal_effect_tmle 工具使用 TMLE 和 Super Learner,根据影响函数生成带有 95% 置信区间的双重稳健平均处理效应估计,超越简单的前后对比。

系统性综述与证据综合

文献审查人员使用 extract_causal_claims_literature 同时扫描 OpenAlex、Semantic Scholar、Crossref、arXiv 和 CORE 中的数千篇学术论文。主张会按强度(强/中/弱/相关性)和证据级别(RCT/观察性研究/病例研究/综述)分类。系统会自动标记不同来源之间相互冲突的主张,取代数周的人工筛查工作。

用于法律和监管因果关系的反事实推理

在评估产品责任或药品伤害案件中的因果关系时,法律团队和监管机构使用 simulate_counterfactuals,通过双胞网络方法计算必要性概率(PN = P(Y_x'=0 | X=x, Y=y))和充分性概率(PS = P(Y_x=1 | X=x', Y=0))。系统会验证 Tian-Pearl 单调性界限,以约束反事实概率。

生物医学 AI 中的知识图谱补全

AI 研究团队使用 embed_causal_knowledge_graph 生成 RotatE 复值实体嵌入,其中关系是在复数空间中的模为 1 的旋转(t = h · r,|r_i| = 1)。MRR 和 Hits@10 链接预测指标可识别缺失的药物-疾病或基因-通路边。即使在图谱稀疏区域,自对抗负采样与间隔 gamma 也能确保嵌入质量。

数据获取优先级

预算有限的研究运营团队使用 attribute_source_contribution 计算各数据域(学术、生物医学、监管、经济、安全)的 Shapley 值。Shapley 分配 phi_i 量化每个数据源在所有子集中的因果图质量边际贡献。在订阅数据之前,通过核仁计算和核心非空性检查确认分配的稳定性。

如何连接此 MCP 服务

Claude Desktop

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "knowledge-graph-causal-discovery": {
      "url": "https://knowledge-graph-causal-discovery-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}
Cursor / Windsurf / Cline

在编辑器的 MCP 设置面板中添加 MCP 端点:

  • 端点 URL:https://knowledge-graph-causal-discovery-mcp.apify.actor/mcp
  • 身份验证:使用 Apify API 令牌的 Bearer 令牌
Python(MCP 客户端)
import anthropic

client = anthropic.Anthropic()

# The MCP server exposes 8 tools — ask Claude to use them
response = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=4096,
    tools=[{
        "type": "custom",
        "name": "discover_causal_structure",
        # Claude resolves this via the connected MCP server
    }],
    messages=[{
        "role": "user",
        "content": "Discover the causal structure linking smoking exposure to lung cancer outcomes using academic and biomedical sources."
    }],
    mcp_servers=[{
        "url": "https://knowledge-graph-causal-discovery-mcp.apify.actor/mcp",
        "authorization_token": "YOUR_APIFY_TOKEN"
    }]
)
print(response.content)
直接使用 cURL
# Discover causal structure
curl -X POST "https://knowledge-graph-causal-discovery-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "discover_causal_structure",
      "arguments": {
        "query": "smoking lung cancer mortality",
        "sources": ["academic", "biomedical"]
      }
    },
    "id": 1
  }'

# Estimate treatment effect via TMLE
curl -X POST "https://knowledge-graph-causal-discovery-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "estimate_causal_effect_tmle",
      "arguments": {
        "query": "statin therapy cardiovascular mortality reduction",
        "sources": ["academic", "biomedical", "regulatory"]
      }
    },
    "id": 2
  }'

工具参考

discover_causal_structure

使用三种组合算法从观测数据中发现因果图结构:

  1. FCI(快速因果推断) — 通过核条件独立性(KCI)检验进行基于约束的骨架发现,可容忍潜在混杂因素。构建 CPDAG(完备部分有向无环图),其中包括表示隐藏共同原因的双向边。
  2. GES(贪心等价搜索) — 使用 BIC(贝叶斯信息准则)在马尔可夫等价类中搜索,进行基于评分的细化。BIC = log(似然)− (k/2) · log(N),其中 k 是自由参数的数量。
  3. 加性噪声模型 — 通过残差与原因之间的 HSIC(Hilbert-Schmidt 独立性准则)确定边的方向。如果 HSIC(e, X) < HSIC(e, Y),模型会将边定向为 X → Y。

返回:有向边和双向边、马尔可夫等价类大小、BIC 分数、各边的 p 值。

价格:每次调用 $0.045。调用最多 10 个用于 academic + biomedical 数据源的 actor。


compute_interventional_effects

通过 Pearl 的 do-calculus 计算 P(Y | do(X)) — 对 X 进行干预时 Y 的分布:

  • 规则 1 — 插入/删除观测
  • 规则 2 — 行动/观测交换
  • 规则 3 — 插入/删除行动
  • ID 算法 — 对半马尔可夫模型中的干预查询进行系统性的可识别性检验
  • 后门准则 — 对观测到的混杂因素进行调整
  • 前门准则 — 在混杂因素不可观测时,通过中介变量进行调整
  • Balke-Pearl 线性规划界限 — 对 do-calculus 无法识别的效应给出线性规划界限,并通过可观测分布加以约束

返回:带调整集的 do 效应、可识别性标记、线性规划界限区间。

价格:每次调用 $0.050。


simulate_counterfactuals

通过结构化双网络方法模拟反事实结果:

  • 构建一个事实世界(观测到 X=x、Y=y)和一个反事实世界(干预 X=x')
  • 两个世界共享相同的外生变量 U(这是双网络的关键属性)
  • 计算必要性概率(PN):P(Y_{x'}=0 | X=x, Y=y)
  • 计算充分性概率(PS):P(Y_x=1 | X=x', Y=0)
  • 验证Tian-Pearl 单调性界限:PN ≤ P(Y=y|X=x),PS ≤ P(Y=0|X=x')

返回:各结果对对应的 PN 和 PS、双网络大小、单调性检查结果。

价格:每次调用 $0.045。


extract_causal_claims_literature

通过 NLP 模式匹配从学术文献中提取因果主张并进行分类:

  • 主张强度分类:根据动词和限定语模式,分为强/中等/弱/相关性
  • 证据等级分类:根据标题和摘要中的研究设计信号,分为 RCT/观察性研究/案例研究/综述
  • 冲突检测:标记针对同一因果关系提出相反主张的来源对

根据所选来源,数据来自 OpenAlex、Semantic Scholar、Crossref、arXiv、CORE(学术),以及 PubMed、ClinicalTrials.gov、NIH Grants、OpenFDA(生物医学)。

返回:包含引用的分类主张列表、按强度和证据等级统计的数量、相互冲突的主张对。

价格:每次调用 $0.035。


embed_causal_knowledge_graph

使用 RotatE(一种复值知识图谱嵌入模型)对因果知识图谱进行嵌入:

  • 关系表示为复数空间中的旋转:t = h · r,其中每个分量都满足 |r_i| = 1(单位模约束)
  • 评分函数:f(h, r, t) = −||h · r − t||(复数残差的 L1 范数)
  • 自对抗负采样——按负三元组当前得分的比例抽取样本,并使用 softmax 温度加权
  • 基于间隔的损失函数,使用间隔 gamma 分隔正、负三元组的得分
  • 通过对实体嵌入范数进行 k-means 聚类来分配簇

返回:实体嵌入及其范数和最近邻、MRR(平均倒数排名)、Hits@10、簇标签、相位范围。

价格:每次调用 $0.040。


estimate_causal_effect_tmle

按照半参数效率流程,通过 TMLE(目标最大似然估计)估算平均处理效应:

  1. 初始估计 Q⁰(A, W):通过 Super Learner 集成模型(加权交叉验证学习器组合)获得
  2. 倾向评分 g(A | W):截断在 [0.01, 0.99],以防止处理分配近乎确定
  3. 巧妙协变量 H(A, W) = A/g(1|W) − (1−A)/g(0|W)
  4. 目标化步骤——拟合 epsilon:通过以 H 为索引的逻辑模型 MLE 更新 Q⁰
  5. 更新后的估计 Q*(A, W) = expit(logit(Q⁰) + epsilon · H)
  6. ATE = E[Q*(1, W)] − E[Q*(0, W)](目标化拟合得到的代入估计量)
  7. 影响函数 IC(O):用于计算 95% Wald 置信区间:ATE ± 1.96 · SE(IC)

返回:每个处理-结果对的 ATE、标准误、95% CI、影响函数范数、交叉验证风险、Super Learner 权重。

价格:每次调用 $0.050。


check_graph_consistency

使用图结构上的层上同调检查因果图的一致性:

  • 图 G 上的层 F:为顶点分配向量空间 F(v),为边分配线性映射 F(e)
  • 余边界算子:(δ₀s)(e) = F(e)(s(v)) − s(w),用于衡量局部截面之间的不一致
  • H¹(G, F) = ker(δ₁) / im(δ₀)——第一上同调群的维数衡量全局一致性所受的阻碍
  • 分项检查:无环性(无有向环)、忠实性(无伪独立性)、因果充分性(无隐藏的共同原因)、工具变量有效性(排除限制)、正值性(处理组有重叠)、马尔可夫兼容性(观测到的独立性与图相符)

返回:每项检查的通过/失败状态及违规计数、H¹ 上同调维数、全局截面存在标记。

价格:每次调用 $0.035。


attribute_source_contribution

通过合作博弈论衡量每个数据源对因果图质量的贡献:

  • 每个数据领域(学术、生物医学、监管、经济、安全)都是联盟博弈中的一个参与者
  • 特征函数 v(S) = 因果图质量(节点数 · 边密度 · 平均边权重),仅使用联盟 S 中的来源
  • Shapley 值 phi_i = Σ_S [|S|!(n−|S|−1)!/n!] · [v(S ∪ {i}) − v(S)] — 公平的边际贡献
  • 核仁 — 按字典序最小化最大超额,找到最稳定的收益分配
  • 核心非空性检查 — 测试 Shapley 分配是否能抵御所有联盟的偏离

建议使用全部五类来源,以便在完整的联盟空间中进行有意义的归因。

返回:每个来源的 Shapley 值、边际贡献、核仁分配、核心稳定性标志。

价格:每次调用 $0.040。

输出示例

discover_causal_structure — 吸烟与肺癌
{
  "nodeCount": 94,
  "edgeCount": 187,
  "relations": [
    {
      "cause": "Cigarette smoking and lung adenocarcinoma risk: a pooled analysis",
      "effect": "Lung cancer incidence in never-smokers vs. ever-smokers cohort",
      "edgeType": "causes",
      "strength": 0.74,
      "pValue": 0.003,
      "method": "FCI-KCI"
    },
    {
      "cause": "KRAS mutation frequency in tobacco-exposed lung tissue",
      "effect": "Non-small-cell lung carcinoma progression",
      "edgeType": "causes",
      "strength": 0.61,
      "pValue": 0.011,
      "method": "GES-BIC"
    },
    {
      "cause": "Secondhand smoke exposure biomarker cotinine",
      "effect": "Lung cancer incidence in never-smokers vs. ever-smokers cohort",
      "edgeType": "bidirectional",
      "strength": 0.43,
      "pValue": 0.048,
      "method": "additive-noise-HSIC"
    }
  ],
  "totalEdges": 187,
  "directedEdges": 141,
  "bidirectionalEdges": 46,
  "markovEquivalenceSize": 12,
  "bicScore": -4823.7
}
estimate_causal_effect_tmle — 他汀类药物治疗与心血管死亡率
{
  "nodeCount": 112,
  "estimates": [
    {
      "treatment": "High-intensity statin therapy (atorvastatin 40-80mg)",
      "outcome": "Major adverse cardiovascular events at 5 years",
      "ate": -0.082,
      "standardError": 0.019,
      "confidenceInterval": [-0.119, -0.045],
      "influenceFunctionNorm": 0.041
    },
    {
      "treatment": "High-intensity statin therapy (atorvastatin 40-80mg)",
      "outcome": "All-cause mortality",
      "ate": -0.031,
      "standardError": 0.014,
      "confidenceInterval": [-0.058, -0.004],
      "influenceFunctionNorm": 0.028
    }
  ],
  "significantCount": 2,
  "averageATE": -0.056,
  "crossValidatedRisk": 0.113,
  "superLearnerWeights": {
    "logistic": 0.34,
    "randomForest": 0.41,
    "xgboost": 0.25
  }
}
simulate_counterfactuals — 治疗的必要性与充分性
{
  "nodeCount": 87,
  "outcomes": [
    {
      "factual": "Patient received antihypertensive therapy (X=1), experienced stroke (Y=1)",
      "counterfactual": "Patient did not receive antihypertensive therapy (X=0)",
      "factualValue": 1.0,
      "counterfactualValue": 0.0,
      "probabilityOfNecessity": 0.71,
      "probabilityOfSufficiency": 0.38
    }
  ],
  "twinNetworkSize": 174,
  "averagePN": 0.71,
  "averagePS": 0.38,
  "monotonicityHolds": true
}
check_graph_consistency — 因果假设验证
{
  "nodeCount": 94,
  "edgeCount": 187,
  "checks": [
    { "check": "acyclicity", "passed": true, "violationCount": 0, "details": "No directed cycles detected" },
    { "check": "faithfulness", "passed": true, "violationCount": 2, "details": "2 near-cancelling paths detected" },
    { "check": "causal_sufficiency", "passed": false, "violationCount": 7, "details": "7 bidirectional edges suggest latent confounders" },
    { "check": "instrument_validity", "passed": true, "violationCount": 0, "details": "NIH grant instruments satisfy exclusion restriction" },
    { "check": "positivity", "passed": true, "violationCount": 0, "details": "Propensity scores in [0.04, 0.96]" },
    { "check": "markov_compatibility", "passed": true, "violationCount": 1, "details": "1 d-separation violation" }
  ],
  "totalChecks": 6,
  "passedChecks": 5,
  "sheafCohomologyDim": 3,
  "globalSectionExists": false
}

使用 Knowledge Graph Causal Discovery MCP 的费用是多少?

此 MCP 采用按事件付费定价——仅在调用工具时收费。平台计算费用已包含在内。

工具每次调用价格10 次调用50 次调用
discover_causal_structure$0.045$0.45$2.25
compute_interventional_effects$0.050$0.50$2.50
simulate_counterfactuals$0.045$0.45$2.25
extract_causal_claims_literature$0.035$0.35$1.75
embed_causal_knowledge_graph$0.040$0.40$2.00
estimate_causal_effect_tmle$0.050$0.50$2.50
check_graph_consistency$0.035$0.35$1.75
attribute_source_contribution$0.040$0.40$2.00

每次查询运行完整的 8 工具工作流:$0.34。每天运行完整的因果发现工作流,一个月的费用约为 $10。

Apify 免费套餐每月包含 $5 的平台额度,足以免费运行约 14 次完整工作流。

你可以在 Apify 账户中为每个会话设置最高支出限额,以避免意外扣费。如果达到事件限额,MCP 服务将停止收费并返回错误消息。

Knowledge Graph Causal Discovery MCP 的工作原理

阶段 1 — 并行数据摄取

调用工具时,服务会识别请求中包含哪些来源类别(academic、biomedical、regulatory、economic、safety),并构建一个最多包含 17 次 Actor 调用的列表:

  • 学术(6 个 Actor):OpenAlex(30 条结果)、Semantic Scholar(30)、Crossref(20)、arXiv(20)、CORE(20)、Wikipedia(15)
  • 生物医学(4 个 Actor):PubMed(30)、ClinicalTrials.gov(20)、NIH Grants(15)、OpenFDA(20)
  • 监管(3 个 Actor):Federal Register(20)、Congress Bills(15)、Data.gov(15)
  • 经济(2 个 Actor):FRED(20)、World Bank(15)
  • 安全(2 个 Actor):CPSC Recalls(15)、CFPB Complaints(15)

所有 Actor 都通过 Promise.all 运行——并行而非顺序执行。每个 Actor 的超时时间为 180 秒。如果某个 Actor 失败,它会返回一个空数组,而不是导致整个请求失败,从而确保始终返回部分结果。

阶段 2 — 因果图构建

所有参与方的结果都会合并到一个类型化因果图(CausalGraph)中。节点根据领域信号进行分类:

  • 包含 “trial”、“treatment”、“therapy” 或 “drug” 的生物医学结果 → intervention 节点
  • 其他生物医学结果 → outcome 节点
  • Wikipedia 文章 → confounder 节点(背景知识)
  • NIH 资助项目 → instrument 节点(将资金作为工具变量)
  • 临床试验记录 → intervention 节点
  • 监管和经济类结果分别对应 confounder 和 variable 节点

边根据领域启发式规则构建:干预通过因果权重连接到结果;混杂因素同时连接到干预和结果;工具变量连接到其干预目标。变量之间的边则根据加性噪声模型确定方向:通过比较 HSIC(residual, X) 与 HSIC(residual, Y) 来确定方向。

阶段 3 — 算法应用

将请求的算法应用于构建好的图:

  • FCI 通过 KCI 检验构建骨架,然后运行 v 结构定向规则和 Meek 传播规则,生成 CPDAG。GES 通过基于 BIC 评分的前向、后向和转向阶段进行细化。加性噪声模型通过 HSIC 确定剩余无向边的方向。
  • Do-calculus 迭代应用规则 1–3,根据图的拓扑结构检验后门和前门准则。ID 算法用于确定可识别性。对于不可识别的效应,计算 Balke-Pearl 线性规划界限。
  • Twin network 复制该图,连接共享的外生节点,然后通过两个副本传播结构方程,以计算 PN 和 PS。
  • TMLE 使用 Super Learner 初始化 Q⁰,估计并截断倾向评分,构造巧妙协变量 H,通过逻辑回归拟合 epsilon,并根据目标化后的 Q* 计算 ATE。
  • RotatE 初始化实体嵌入,通过自对抗负采样执行模长为 1 的旋转更新,并报告 MRR 和 Hits@10。
  • Sheaf cohomology 根据图的关联结构构造余边界矩阵 δ₀ 和 δ₁,计算 ker(δ₁)/im(δ₀),并将违背情况映射到具体的因果假设失效。
  • Shapley 枚举源联盟的所有 2^n 个子集,分别计算图质量,并应用 Shapley 公式。通过字典序极小极大超额优化求得 Nucleolus。
阶段 4 — 结构化响应

结果会序列化为 JSON,并通过 MCP 协议返回。每个响应都包含所构建图中的 nodeCount 和 edgeCount,以及特定于算法的指标。

获得最佳结果的提示

  1. 先使用 discover_causal_structure,再使用干预工具。 FCI/GES 结构输出会告诉你哪些调整集适用于 do-calculus。不了解图结构就运行 compute_interventional_effects,可能会导致混杂因素调整错误。

  2. 将 academic + biomedical 作为基线来源。 这两个类别会触发 10 个参与方,并覆盖证据最密集的领域。政策问题可添加 regulatory,宏观经济分析可添加 economic,产品伤害或金融不当行为查询可添加 safety。

  3. 开展反事实和法律因果关系分析时,先使用 check_graph_consistency。 Sheaf 上同调检查可确认图是否满足因果充分性和工具变量有效性这两个假设;simulate_counterfactuals 依赖这两个假设来获得有效的 PN/PS 估计值。

  4. 使用全部五个来源运行 attribute_source_contribution,以获得有意义的 Shapley 值。 来源少于三个时,联盟博弈的子集过少,无法产生稳定的边际贡献。核仁计算至少需要三个活跃参与方。

  5. 对于系统综述,使用 academic + biomedical 运行 extract_causal_claims_literature 是最具成本效益的入门方式,每次调用费用为 $0.035。利用返回的相互冲突的主张对,找出需要进一步发现结构或进行 TMLE 估计的关系。

  6. 将查询写成领域-变量对,以获得最佳图构建效果:使用“吸烟 肺癌”,而不是“吸烟会导致癌症吗?”。图构建器会根据结果标题识别因果节点,具体的实体名称有助于更准确地对节点分类。

  7. 对于罕见或小众主题,添加 academic 并选择所有学术来源以纳入 arXiv/CORE;对于快速发展的研究领域,预印本服务通常比已编入索引的期刊更早发布因果证据。

  8. 通过流水线组合工具,完成全面的因果分析:discover_causal_structure → check_graph_consistency → compute_interventional_effects → estimate_causal_effect_tmle。流水线总成本:每次完整分析 $0.18。

与其他 Apify MCP 服务组合使用

MCP 服务组合方式
ryanclinton/market-microstructure-manipulation-mcp将因果结构输出用于市场微观结构分析;该 MCP 中的 Granger 因果分析可补充此处基于 Pearl 风格 do-calculus 的分析
ryanclinton/litigation-intelligence-mcp将反事实 PN/PS 分数用作诉前风险评分的输入;必要因果关系概率是重要的法律标准
ryanclinton/open-source-supply-chain-risk-mcp使用因果结构发现,识别哪些 OSS 依赖项会因果性地传播漏洞,哪些只是与漏洞相关
ryanclinton/esg-risk-assessment-mcp将监管因果图与 ESG 风险评分结合起来,区分因果性的监管风险敞口与相关的行业影响
ryanclinton/drug-pipeline-intelligence-mcp将 TMLE 治疗效应估计值输入药物管线分析,用观察性因果证据补充试验数据

限制

  • 无法访问原始数据。 此服务会分析已发表的文献、试验注册信息和政府数据库。它无法访问原始患者级数据、专有生物样本库记录或付费期刊内容。
  • 图的构建使用启发式节点分类,而非基于真实标注的本体映射。节点类型(干预、结果、混杂因素)是根据标题文本模式推断的,因此可能会错误分类含义模糊的实体。
  • 因果算法基于构建的代理图运行,而非原始数值数据。FCI、GES、TMLE 等算法会根据图结构校准并生成相对估计值,而不是基于原始观测得出的估计值。
  • TMLE 需要足够的节点密度,才能生成有意义的 Super Learner 估计值。返回少于 20 个节点的查询可能会产生较宽的置信区间。
  • RotatE 嵌入每次调用时都会重新初始化 — 没有可通过重复查询不断改进的持久化知识图谱。嵌入质量随节点数量增加;稀疏图会产生较低的 MRR。
  • 层论上同调结果对双向边的占比较为敏感。 含有大量隐藏混杂因素边的图(在观察性文献中很常见),即使对应的领域已得到充分研究,也会显示正的 H¹ 维数。
  • 不保证来源始终可用。 全部 17 个上游 Actor 都会调用实时公共 API。如果任何来源发生故障、受到速率限制或临时更改 API,就会返回空数组而非错误。这会降低图的密度,但不会导致请求失败。
  • 监管和经济来源以美国为中心。 Federal Register、Congress Bills、FRED 和 CPSC 覆盖的是美国机构。进行国际监管因果分析时,请使用覆盖全球的 academic 和 biomedical 来源。

集成

  • Apify API — 使用 Apify Actor API,通过 Python、JavaScript 或任何 HTTP 客户端以编程方式调用 MCP 服务
  • Webhooks — 因果分析完成时触发下游工作流(Slack 提醒、数据库写入、报告生成)
  • Zapier — 无需编写代码,即可将因果发现结果连接到 Google Sheets、HubSpot、Notion 或 Zapier 的 6,000 多款应用
  • Make — 构建多步骤自动化场景,将因果发现与数据丰富、通知和 CRM 更新串联起来
  • LangChain / LlamaIndex — 在 RAG 流水线和自主 Agent 框架中,将 MCP 服务用作因果推理工具

❓ 常见问题

单次因果发现查询会访问多少个数据源? 根据所选来源类别,最多会并行运行 17 个 Actor。academic 类别会触发 6 个 Actor(OpenAlex、Semantic Scholar、Crossref、arXiv、CORE、Wikipedia)。biomedical 会触发 4 个(PubMed、ClinicalTrials.gov、NIH Grants、OpenFDA)。regulatory 会触发 3 个,economic 会触发 2 个,safety 会触发 2 个。选择全部五个类别会同时运行全部 17 个 Actor。

这与标准文献综述工具或 RAG 流水线有何不同? 标准文献综述工具会返回排序后的文档。此服务会从这些文档中构建带类型的因果图,并应用正式的因果推断算法 — FCI、do-calculus、孪生网络、TMLE — 来提取有方向的因果关系,而不仅仅是关联。输出的是数学形式的因果结构,而非检索到的文本。

返回的数据有多新? 所有数据都会在查询时从各来源 API 实时获取,不存在缓存索引。结果反映调用时 OpenAlex、PubMed、FRED 及其他数据库的当前状态。 我可以只使用一个或两个来源类别来降低成本吗? 可以。每个工具都接受 sources 数组,可任意组合使用 academic、biomedical、regulatory、economic 和 safety。对于大多数研究问题,仅使用 academic + biomedical 就足够了;除 attribute_source_contribution 外,所有工具默认都使用这两个类别。

biomedical 来源的 Shapley 值为 0.4 是什么意思? 这表示生物医学数据来源(PubMed、ClinicalTrials.gov、NIH Grants、OpenFDA)对因果图整体质量的贡献为 40%。该值是指在五个来源类别所有可能的子集中,生物医学数据领域的平均边际贡献。

使用这些来源的数据合法吗? 全部 17 个来源都是公开的 API 和开放的政府数据库。PubMed、ClinicalTrials.gov、FDA、FRED、World Bank 等均为免费的公共资源。请参阅 Apify 关于网页抓取合法性的指南。

这能替代随机对照试验吗? 不能。TMLE 和 do-calculus 提供的是观察性因果推断,它依赖一些仅凭数据无法检验的假设(无未测量混杂、正值性、一致性)。这些工具根据观察性证据识别因果假设并估算效应大小,但不会生成实验性证据。check_graph_consistency 工具会明确标记因果充分性及其他关键假设的违反情况。

一次典型的工具调用需要多长时间? 大多数工具调用会在 20–60 秒内完成。耗时取决于所选的来源类别:academic + biomedical(10 个 Actor)通常需要 25–45 秒;全部五个类别(17 个 Actor)可能需要 45–90 秒。每个来源的 Actor 超时时间设为 180 秒。

我可以将它与自定义 MCP 客户端或 Agent 框架搭配使用吗? 可以。该服务在 /mcp 提供标准 MCP 协议。任何支持 MCP 的客户端都可以连接到 https://knowledge-graph-causal-discovery-mcp.apify.actor/mcp,包括 Cursor、Windsurf、Cline、自定义 Python MCP 客户端或 LangChain Agent 框架。

如果某个数据来源暂时不可用,会发生什么? 单个 Actor 发生故障时会返回空数组,而不会传播错误。系统会根据可用来源构建图,并在缩减后的图上运行因果算法。响应始终包含 nodeCount 和 edgeCount,因此你可以检查图的密度,并在需要时改用其他来源重新运行。

我可以针对同一查询运行结构发现和 TMLE 估算,以交叉验证结果吗? 可以;对于高风险分析,建议采用这种工作流。discover_causal_structure 用于识别图的拓扑结构和调整集。estimate_causal_effect_tmle 则利用该拓扑结构,为 Super Learner 和倾向模型选择有效的混杂因素。两者合计费用为 $0.095。

该服务支持长时间运行查询的流式响应吗? 该服务使用 MCP SDK 提供的 Streamable HTTP 传输方式,支持流式传输。实现了流式传输的 MCP 客户端(包括 Claude Desktop)会在长时间运行的 Actor 调用期间收到增量更新。

帮助我们改进

如果遇到意外结果或错误,请启用运行记录共享,以便我们更快地诊断问题:

  1. 前往 Account Settings > Privacy
  2. 启用 与公开 Actor 创建者共享运行记录

这样,如果出现问题,我们就能查看你的运行详情。只有 Actor 开发者能看到你的数据,不会公开显示。

支持

发现 Bug 或需要某项功能?请在此 Actor 页面上的 Issues 标签页中提交问题。如果需要自定义因果推断配置、特定领域的本体集成或企业级部署,请通过 Apify 平台联系我们。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。