我选了 Oxigraph 做 AI 的大脑,然后整个系统开挂了
你有没有遇到过这种绝望:

Agent 跑了两小时,聊了几十轮,突然就忘了最初的需求;一个 Skill 的参数名换了,所有调用它的 Agent 全部炸锅;想查“当初为什么选了 JWT 认证”,结果翻了半天聊天记录。
这些问题的根源都是:数据散落在各处,没有统一的大脑。
一个有效的解决方案是——给 Agent 装一个叫 Oxigraph 的图数据库,然后让它和 JSON-LD 组成“统一地址总线”。这一组合,让整个系统的智能水平直接上了一个台阶。
今天就来聊聊这个“图数据库 + 语义总线”的邪门组合。
一、为什么是 Oxigraph 而不是 Neo4j、不是 PostgreSQL?
坦白说,选 Oxigraph,一开始是因为它太“Rust”了。
Gliding Horse 整个系统都是用 Rust 写的。如果选 Neo4j,就得配 Ja va 环境;选 PostgreSQL 加 pgvector,又得多部署一个服务。Oxigraph 是 Rust 原生库,直接编译进二进制文件,一行 cargo build 全搞定。 没有外部依赖,没有网络开销,没有“在我机器上能跑”的破事。
但真正令人惊艳的,是它和 JSON-LD 的化学反应。
二、JSON-LD + Oxigraph = 天然绝配
JSON-LD 是什么?简单说,就是给 JSON 加上语义,每个字段、每个值都对应一个全球唯一的 IRI(类似网址)。
比如一个 Skill 的参数 input_file,在 JSON-LD 里会被映射成 https://agent-os.com/skill#sourceDataURI。这样一来,不管别的 Skill 叫 source_url 还是 data_path,只要它们都指向同一个 IRI,系统就知道它们是同一回事。
而 Oxigraph 是 RDF 图数据库,RDF 的底层就是“主语-谓语-宾语”三元组——和 JSON-LD 展开后的结构一模一样。
举个栗子:
{"@id": "skill:python-analysis","@type": "skill:AtomicSkill","skill:name": "Python 数据分析"}
JSON-LD 引擎把它展开后,会变成三条三元组:
<skill:python-analysis><rdf:type><skill:AtomicSkill><skill:python-analysis><skill:name> "Python 数据分析"
然后 Oxigraph 直接吞下这三条三元组,存进图里。完全不需要任何中间转换层。
这种“零摩擦”的配合,使得整个系统的所有数据——提示词、Skill 定义、对话记忆、任务元数据、审计日志——全部可以用 JSON-LD 建模,然后一股脑倒进 Oxigraph。
三、统一地址总线:给所有数据安个“家”
传统 AI 系统里,数据就像流浪猫:没有固定地址,靠代码里的变量名四处碰运气。
在这个系统里,任何数据生下来就有唯一的 IRI。比如:
- 一个任务:
task:sales-analysis-2026 - 一个 Skill:
skill:python-analysis - 一段对话记忆:
memory:session-042/block-017
这些 IRI 就是“地址总线”。Oxigraph 就是存储这些地址的门牌号数据库。
带来的第一个魔法:按需加载,Token 暴降。
LLM 的上下文窗口里,只需要存摘要和 IRI 引用。比如:
当 LLM 需要某个细节时,直接用内置工具沿 IRI 去 Oxigraph 里查。相当于把 LLM 的“工作记忆”无限扩展了,而 Token 消耗几乎不变。
第二个魔法:多 Agent 共享黑板,绝不冲突。
多个 Agent 同时读写 L2 黑板,这个黑板就是 Oxigraph 的内存模式。Agent A 写入 task:001status "done",Agent B 立刻就能读到。更巧妙的是,还给每个节点加了 MESI 状态标记(对,就是 CPU 缓存一致性协议那套)。这样 Agent A 修改一个节点时,系统会自动通知其他 Agent“这个数据过期了,赶紧重读”。
第三个魔法:图查询比关系型快得多。
想查“某 Skill 的所有前置依赖”?在 SQL 里要 JOIN 好几次,在 Oxigraph 里就一行 SPARQL:
SELECT ?dep WHERE {skill:rust-jwt-auth skill:requiresDirect ?dep .}
更重要的是,可以利用属性路径做递归遍历,比如“这个 Skill 依赖的所有 Skill(不限深度)”:
SELECT ?dep WHERE {skill:rust-jwt-auth skill:requiresDirect* ?dep .}
这种递归查询在关系型数据库里几乎是噩梦,在 Oxigraph 里却轻描淡写。
四、记忆系统 + Oxigraph:让 Agent 拥有“海马体”
神经科学里,海马体负责把短期记忆转化为长期记忆。这套记忆系统里,Oxigraph 就是海马体。
- L1 短期记忆:LLM 上下文窗口里的摘要和 IRI 引用
- L2 工作记忆:Oxigraph 内存模式,存活跃任务的中间结果
- L3 记忆提取:用 SPARQL CONSTRUCT 从 L0 把相关记忆“投影”到 L2
- L0 长期记忆:Oxigraph 持久化模式,存所有历史数据和知识
这套设计的好处是:Agent 永远不会“失忆”。 哪怕上下文窗口只有 2K Token,它也能通过 L3 投影随时调出任何历史细节。
而且 Oxigraph 支持 Named Graphs(命名图),可以把不同 Agent 的记忆、不同任务的产出、不同版本的 Skill 分开存储,互不干扰,又能联合查询。这为后面的多 Agent 联邦架构铺平了道路。
五、架构收益总结:图数据库给 AI 带来的三个质变
- 从“数据孤岛”到“数据联邦”:所有数据都有 IRI,都能通过 SPARQL 互相查询。Skill 能“发现”自己需要什么前置技能,Agent 能“回忆”起历史上类似的任务是怎么做的。
- 从“全量注入”到“按需加载”:LLM 上下文里只放摘要和 IRI,细节在 Oxigraph 里随时可取。Token 消耗从 O(n) 变成 O(1)。
- 从“事后查证”到“实时可审计”:任何决策、任何产出都有 IRI,顺着图就能看到整个推理链。当系统出问题,不再是“不知道哪一步错了”,而是“秒级定位”。
六、最后说句人话
选 Oxigraph,不是因为它最流行,而是因为它和 JSON-LD 天生一对,能用 Rust 一行代码嵌入,能让 Agent 的记忆像人脑一样工作。
如果你也在做 AI Agent,或者对知识图谱感兴趣,记住这句话:“让你的数据有地址,让你的 Agent 有记忆,让你的系统有脑子。”
