← Back to essays
Essay · AI Governance · Open Source

AI 决策需要黑匣子:
为什么 Semantica 是开源的 Palantir

2026-08-20 · 18 min read · 对企业 AI 审计、监管合规、决策追溯感兴趣的人
AI 决策可追溯架构 — Semantica 黑匣子示意图
给 AI 决策装上飞行记录仪。 当 LLM 开始替企业做决策 —— 审批贷款、拒绝申请、推荐用药 —— 没有人能解释"为什么"的那一刻,监管、用户和公司本身就已经输了一半。Semantica 是 9,500 颗星的开源项目,它把每一个 AI 决策记录成可追溯、可审计、符合 W3C PROV-O 标准的图节点,让事后 3 个月还能完整回放。

0.30 秒结论

如果只看一句话:Semantica 是 AI 决策的"黑匣子 + 法官"。它不替你做决策,那是 LLM 的活;它给每一次决策装上飞行记录仪、给每一次推理装上逻辑链条,让企业能在监管问"为什么"的时候,能用 W3C PROV-O 标准的图证据回答。

如果你正在做下面任何一件事,这篇文章值得读到最后:

核心论断

"AI 能做决策"在 2024 年已经解决;"AI 决策可被审计"在 2026 年才是真问题。Semantica 是这个问题的开源答案。

1.商业痛点:为什么"决策审计"突然重要了

1.1 三个真实场景的恐惧

想象三个场景:

场景 A —— 消费金融。你的 AI 风控模型每天拒掉 1,000 笔贷款。其中 100 个用户申诉"凭什么拒我?"监管问"你的拒贷标准一致吗?有没有歧视?"—— 你翻出模型权重,发现里面是 1.2 亿个参数,谁也解释不清楚为什么这个人被拒、那个人通过。

场景 B —— 辅助医疗诊断。AI 给出"建议复查肺结节"的结论。患者家属问"为什么是结节不是炎症?"医生说"AI 说的"。3 个月后误诊了,谁负责?

场景 C —— 内容平台。AI 自动删了 10 万条 / 天的违规内容。商家申诉"我内容没违规凭什么删?"客服翻不出当时 AI 的 reasoning,因为 LLM 调用完上下文就丢了。

三个场景的共同点:决策是不可解释的、不可回放的、不可审计的。当 AI 决策直接影响人的金钱、健康、言论,事后无法回答"为什么"是不可接受的。

1.2 监管驱动 —— EU AI Act 已经生效

2024 年 8 月,EU AI Act 正式生效,对"高风险 AI 系统"(信贷、保险、医疗、招聘、教育、执法等)提出了强制性的"算法可解释、决策可追溯、人工可监督"要求。

中国紧随其后,《生成式人工智能服务管理暂行办法》(2023)虽然没有直接写"决策审计",但要求"提供者应当对生成式人工智能服务的使用情况及相关日志数据进行记录和保存"。

翻译成工程语言:你需要在每次 LLM 决策时记录"谁(agent)、何时(timestamp)、基于什么(输入数据 + 检索 + 工具调用)、得到什么(输出)、后果(用户反馈)—— 并且这条记录要在 3 个月后还能完整还原。

1.3 现有方案的真空

WrenAI、Text-to-SQL 工具(Vanna、Snowflake Cortex Analyst、Databricks Genie)解决的是"自然语言查数据",不是"AI 决策可审计"。LangChain、LangGraph 是"搭 agent 工作流"的框架,不解决决策持久化与审计。Palantir 商业版做决策治理但年费数十万美元。

这就是 Semantica 在 2025 年开始火起来的原因 —— 它精准切入"开源 AI 决策治理"这一空白。

为什么"日志"不够用

普通日志(log line)只能记录"AI 在 t 时刻调用了 LLM,得到字符串 Y"。它无法回答:(a) 这个决策依赖了哪些历史决策?(b) 推理链条是否成立?(c) 三个月后能不能用同一份证据回放当时的推理?Semantica 把日志升级为"决策图节点 + W3C PROV-O + 哈希链",本质是给日志加了"DNA 双螺旋"结构。

2.技术解法:Semantica 怎么做到决策可追溯

2.1 一句话架构

Semantica 的核心架构可以浓缩成一句话:

"决策是一等图节点,不是日志行。"

传统做法把 AI 决策写进日志(text file、log database)。Semantica 把决策写成图(graph node),节点之间通过"因果关系"(causal relationship)链接,整个图能用 SPARQL / Cypher 查询、能导出 W3C PROV-O 标准格式、能做反向追溯。

2.2 三个核心技术机制

机制 1:决策是图节点(Decision-as-Node)

每次 AI 决策通过 ContextGraph.record_decision() 写入图,节点包含:

decision_id = graph.record_decision(
    category="loan_denial",           # 决策类别
    scenario="DTI=31%, income=$85k",  # 当时场景
    reasoning="income meets threshold...", # LLM 输出
    outcome="proceed_to_underwriting",
    confidence=0.88,                   # 置信度
    metadata={"applicant_id": "A-7291"}
)

关键设计:这些字段不是 schema-on-read 的自由文本,而是 ProvenanceEntry dataclass,17 个强类型字段,覆盖 W3C PROV-O 标准里 Entity / / Agent / Activity / Bundle / Invalidation 全部概念。

机制 2:三类封闭因果边(★ 强制语义学)

节点之间通过 add_causal_relationship() 链接,只接受三种标签

标签 语义 适用场景
CAUSED 直接导致("earnings beat" → "买入 NVDA") 硬因果链
INFLUENCED 间接影响("宏观数据" → "买入 NVDA") 软因果链
PRECEDENT_FOR 作为先例("2024 类似交易" → "这次决策") 可借鉴的过去
为什么是封闭的?

开放标签会让图查询退化成字符串匹配,效率低且无法推理。Semantica 在源码 context_graph.py:2734 硬编码 whitelist,强制开发者"必须想清楚这是 CAUSED 还是 INFLUENCED"—— 这种"语义学约束"是给图治理带来秩序的关键。

机制 3:哈希链防篡改

这是 Semantica 最精彩的设计。ProvenanceEntry.checksum 字段是 SHA-256 哈希,包含了上一条的 checksum

checksum_n = sha256(
    content_n
    + previous_checksum_(n-1)    # ← 关键
)

效果:

  • 删除任何一条:链断了,后续所有 checksum 不匹配
  • 修改任何一条:checksum 变了不匹配
  • 在中间插入sequence_id 不连续(必须 +1),被检测

verify_chain() 给出三层独立信号:

def verify_chain():
    for entry in entries:
        if not verify_checksum(entry):
            # 信号 1:本行内容被改
        if entry.sequence_id != expected + 1:
            # 信号 2:有 entry 被删除
        if entry.previous_checksum != expected_previous:
            # 信号 3:链断

对比传统 audit log:传统 log 假设"数据库本身不会被攻破",Semantica 即使数据库被攻破,也能检测出篡改。

2.3 Polyglot 持久层:7 个图存储 + 6 个向量库

Semantica 不绑定单一存储:

类别 支持的后端 何时选
RDF 三元组 Oxigraph / Blazegraph / Apache Jena / Eclipse RDF4J / Anzo 需要 W3C 语义网标准
LPG 属性图 Neo4j / FalkorDB / Apache AGE / AWS Neptune 已有图数据库栈
向量库 FAISS / Qdrant / Weaviate / Milvus / Pinecone / PgVector 需要 RAG / 相似度搜索

这是 Semantica 的"Data locality"承诺 —— "你的数据可以留在你现有的图数据库里,不必迁移到 Semantica 自带的存储"。

2.4 完整能力栈(10 大模块)

下面是 Semantica 在 README 里列出的全栈能力:

能力 一句话说明
Context Graphs 智能体知道/决策/推理的结构化图
Decision Intelligence 每个决策 = 一等图节点,可溯源、可查、可因果链
AI Governance SHACL 约束 / 冲突检测 / 合规规则 / OWL / SKOS 词表
Full Auditability W3C PROV-O + 哈希链,可导出 RDF/CSV/JSON
Deterministic Reasoning Forward chain / Rete / Datalog / SPARQL(不依赖 LLM)
Knowledge Pipeline 多源 ingestion + NER + 关系抽取 + KG 构造
Enterprise Data Databricks (Unity Catalog + Delta Lake) / Snowflake 原生
Graph Analytics 中心性 / 社区检测 / 链接预测 / 最短路径
Polyglot Storage RDF + LPG + 向量库,热插拔
Visualization 浏览器交互式图探索 + 决策时间线

3.它能赋能什么 —— 6 个真实场景

不是"AI 决策可审计"听起来高大上,我们来看看谁真的在用、解决什么问题:

场景 1:金融监管审计

信贷 AI 每天拒 1,000 笔。监管问"为什么"—— 用 Semantica 直接 SPARQL 查询决策图:

SELECT ?decision ?reason
WHERE {
    ?decision a :LoanDenial ;
              :reasoning ?reason .
}
LIMIT 100

答案直接给监管,3 分钟搞定。

场景 2:医疗诊断决策溯源

AI 给医生"建议复查"的依据是什么?用 Semantica 把 NER 提取的实体(症状 + 检验值 + 历史类似病例)+ 推理链 + 关联决策全部展示给医生。医生能信任,责任划分清晰

场景 3:多 Agent 系统的共享 Context 层

5 个 LLM agent 协作(你公司可能跑过类似多 agent 系统)。它们各自的 in-memory state 难共享,调试时一问"为什么这个 agent 这么决定"就卡住。

Semantica 作为 shared context layer —— Agent A 写入决策图,Agent B 立刻看到 + trace。Agno / CrewAI 已原生支持,零代码改动

场景 4:内容审核 / 风控申诉处理

内容平台 AI 自动删违规内容。用户申诉"凭什么删我"—— 客服翻不出 reasoning,因为 LLM 调用完上下文丢了。

用 Semantica:每次删除 = 一次决策入图,申诉处理人 1 键回放"当时 AI 用的规则版本 + 引用的法规条款 + LLM 的 reasoning + 类似内容历史决定"。

场景 5:研发知识管理(Context Graph 当企业大脑)

公司 100 个工程师 + 5 个 LLM agent —— Semantica 把所有代码决策、架构讨论、Bug 修复都建成图。新员工加入,"为什么用了 PostgreSQL?"graph_rag 一查就找到历史决策 + 因果链。替代 Confluence / Notion(更工程化)。

场景 6:跟 TradingAgents / WrenAI 叠加(AI 决策审计 + 自动化)

如果你已经在跑多 agent 决策系统(TradingAgents 那类),Semantica 是完美审计后端

# TradingAgents 生成决策
trade_decision = trading_agents.propagate("NVDA", "2026-05-10")

# Semantica 立刻记录
graph.record_decision(
    category="trade",
    scenario=trade_decision.scenario,
    reasoning=trade_decision.reasoning,
    outcome=trade_decision.action,
    confidence=trade_decision.confidence
)

# 3 个月后审计问"为什么买 NVDA"
chain = graph.trace_decision_chain(decision_id)    # 完整回放
rules_ok = graph.check_decision_rules(...)     # 当时合规吗
graph.export_prov(...)                        # 出 W3C PROV-O 给监管

三层组合是黄金栈:WrenAI 查数据 → TradingAgents 决策 → Semantica 审计。

4.优劣势:诚实评估

优势(7 个)

  1. W3C PROV-O 标准:不是私有格式,监管 / 法务 / 审计师都能用现成工具(Protege、SPARQL endpoint)
  2. 哈希链防篡改:sequence_id + previous_checksum 双保险,监管级可信
  3. Polyglot 持久化:7 个图存储后端,"数据不放出去"承诺
  4. 决策是一等图节点:不是 log line,是真能 SPARQL/Cypher 查询的图节点
  5. LLM 可选的推理:Rete / Datalog / SPARQL 引擎不依赖 LLM,保证推理一致性
  6. MCP server 完整:Agno / CrewAI 原生支持,开箱即用
  7. MIT 商用:vs Palantir 商业版 $10万+/年,Semantica 是真开源

劣势(6 个)

  1. 不是 query engine:想要"自然语言查数据"得自己接 WrenAI,Semantica 不擅长 NL2SQL
  2. 没有交易信号:它只记录 + 审计决策,不帮你"该不该买"
  3. GitHub 9.5k stars:比 TradingAgents 98k 小一个数量级,生态小
  4. 学习曲线陡:W3C PROV-O + Rete + Datalog + SHACL 都是学术概念,上手 1-2 周
  5. 文档偏学术:README 像论文,不像 product docs,新人 onboarding 难
  6. 性能瓶颈:每次决策 30-50ms 哈希链开销,高频场景不友好
该不该用 Semantica?

用:金融/医疗/法律/政府强监管行业、多 agent 系统需要审计层、AI 决策需事后追溯。

不用:纯查询场景(用 WrenAI)、决策量 < 100/月(过度设计)、不在强监管行业。

5.实战路径 —— 读者怎么动手

如果你看完想试试,分 4 步:

Step 1:验证基础(10 分钟)

# 安装
pip install semantica

# 验证(看 Python 版本 + faiss + config 都 ok)
semantica doctor
# Python 3.11.9         pass
# semantica 0.6.5       pass
# faiss vector store    pass
# Config file           pass    ~/.semantica/config.yaml

Step 2:跑最小 demo(30 分钟)

from semantica.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# 记录一个决策
decision_id = graph.record_decision(
    category="vendor_selection",
    scenario="Choose cloud provider for HIPAA workload",
    reasoning="AWS offers BAA, mature HIPAA tooling, and existing team expertise",
    outcome="selected_aws",
    confidence=0.93,
)

# 问"为什么"
chain     = graph.trace_decision_chain(decision_id)    # 因果链
similar   = graph.find_similar_decisions("cloud vendor", max_results=5)  # 相似先例
impact    = graph.analyze_decision_impact(decision_id)    # 下游影响
compliant = graph.check_decision_rules({"category": "vendor_selection"})  # 合规检查

Step 3:接到你的多 agent 系统(半天)

如果你已经在跑 LangGraph / Agno / CrewAI:

  1. 在 agent 决策点调 graph.record_decision()
  2. graph.add_causal_relationship() 链接相邻决策
  3. 接 MCP server:wren serve mcp 暴露决策图给其他 agent

Step 4:生产化(1 周)

  1. 替换 InMemoryStorage 为 Neo4j / Oxigraph
  2. ~/.semantica/config.yaml 选 ontology 词表
  3. 接公司 SSO + 审计 dashboard
  4. 每周跑 verify_chain() 检测篡改

读者清单:Semantica 适合谁

  • ✅ 你在金融/医疗/法律/政府行业部署 LLM agent
  • ✅ 你跑多 agent 系统(TradingAgents / Agno / CrewAI 类)需要审计层
  • ✅ 你的客户 / 用户会申诉 AI 决策
  • ✅ 你的系统每月 >1000 个 AI 决策需要审计
  • ❌ 你只是想要"自然语言查数据"(用 WrenAI)
  • ❌ 你的 AI 决策 < 100 个/月
  • ❌ 你需要的是实时交易信号,不是审计

6.写在最后

AI 能做决策在 2024 年已经解决(GPT-4、Claude 3.5、Gemini 2.0 都够用)。AI 决策可被审计、可被解释、可被监管在 2026 年才是真问题。

Palantir 商业版用数十万美元帮企业解决了这个问题,但绝大多数团队根本付不起这个钱。Semantica 用 MIT 协议 + 9,500 颗星 + W3C PROV-O 标准 + 哈希链,把 AI 决策审计的门槛从 10 万美元降到 0 美元

这是开源世界对闭源巨头的又一次胜利。但更重要的,它给了 AI 治理一个"不要等技术完美了再上"的现实选择 —— 现在你就可以开始记录、开始审计、开始给每一次 AI 决策装上飞行记录仪。

当你下一次部署 LLM agent 做重要决策之前,先问自己:3 个月后,监管 / 用户 / 你自己,能不能回答"为什么"

如果答案是"不能",那 Semantica 可能是你下一个该装的东西。