【Agent Harness实战】我给我的 AI Agent 装了个“世界模型”,然后它开挂了
AI Agent知识图谱系统设计给智能体装上世界模型 | 流马架构解析前几篇文章聊了记忆系统怎么记、技能图谱怎么干活、工具系统手脚怎么用。今天聊一个更底层的东西——知识图谱。你可能会问“技能图谱不是已经能干活了吗还要知识图谱干嘛”打个比方技能图谱是“怎么开车”踩油门、打方向盘、看后视镜知识图谱是“你车开在哪个城市、哪条路上、目的地是哪”。没有后者你就是一个车技很好但瞎开的老司机。流马的知识图谱系统就是给 AI Agent 装上了一个“世界模型”——让它知道自己身在何处周围有什么要往哪走。一、知识图谱存什么不只是“东西”还有“关系”传统 Agent 框架里“知识”大多存成向量靠相似度检索。这能解决“模糊搜索”但解决不了“精确关系”。比如“帮我查一下张三的经理是谁”——向量搜索能给你一堆关于“张三”、“经理”的文档片段但没法直接告诉你“张三 → 汇报给 → 李四”这个确定的关系。流马的知识图谱用 Oxigraph 做底层存储数据全是RDF 三元组主语-谓语-宾语。比如张三 任职于 研发部 张三 汇报给 李四 李四 管理 研发部 研发部 属于 ABC公司这玩意儿最牛逼的地方是你可以在里面做逻辑推理。问“研发部有哪些人”→ 沿着任职于 研发部反查。问“张三的老板是谁”→ 沿着张三 汇报给 ?直接出结果。这在向量数据库里得绕半天。更关键的是知识的来源不止一种。流马能自动从三种渠道填充这张图非结构化文本用户需求文档、聊天记录、设计文档 → LLM 自动抽取实体和关系knowledge_extract工具代码文件用 tree-sitter 解析 AST9 种语言Rust/Python/Go/Java…→ 自动提取函数调用关系、类继承关系knowledge_extract_code工具结构化 JSONAPI 返回数据、配置文件 → 直接映射为 RDF 节点而且代码解析做了增量更新。文件 SHA256 哈希不变直接跳过不解析零开销。改动的文件才重新提取。二、不是一张图是五张图流马的知识图谱不是一锅乱炖。它用 Oxigraph 的命名图机制分了五个区命名图存什么谁来写graph:world通用知识需求、设计、对话中提取的实体LLM 抽取graph:code代码结构函数、类、模块、调用关系tree-sitter AST 提取graph:skill技能图谱怎么干活5W2H 元数据SkillGraphStoregraph:ontology本体定义实体类型、关系类型系统预置 用户扩展graph:bridge知识-技能桥接什么实体适用什么技能系统自动或手动创建分开存有什么好处隔离改代码不会污染需求文档的知识Agent 各自读写自己的区不打架。高效查技能时只查graph:skill不用在代码结构里翻垃圾。可追溯任何一条数据都知道“它是从哪来的”——因为命名图本身就是来源标签。三、知识桥接让“知识”和“技能”手拉手这是流马知识图谱里最让我兴奋的设计——知识-技能桥接。简单说知识图谱存的是“什么是什么”概念、实体、关系技能图谱存的是“怎么干活”步骤、依赖、工具。桥接层把这两张图连起来实体: 研发部 └── [ontology:bridge/hasSkill] → 技能: 代码审查 └── [ontology:bridge/applicableIn] → 场景: 需求评审 实体: Python 数据分析 └── [ontology:bridge/hasSkill] → 技能: Pandas 数据清洗 └── [ontology:bridge/hasSkill] → 技能: Matplotlib 可视化这意味着Agent 在处理任务时不只是“调用一个技能”而是能顺着知识图谱自动发现“这个实体相关的技能有哪些”、“这个技能适用的场景是什么”。比如用户说“帮我分析一下研发部的代码质量。”Agent 沿着知识图谱找到实体:研发部→ 沿着桥接找到技能:代码审查技能:静态分析→ 自动编排执行。这就是“理解领域”和“执行指令”的本质区别。前者是 Agent 自己在知识图谱里导航后者是被动地接受一段上下文。四、与记忆系统的结合让知识“长记性”知识图谱不是独立的——它和流马的四层记忆系统深度绑定L0 持久化所有知识节点存进 Oxigraph 持久化图命名图归档。任务完成后知识不丢。L2 黑板当前任务相关的知识子图被投影到内存黑板Agent 通过 SPARQL 实时查询。L3 投影当 Agent 引用的实体不在 L2 时L3 自动从 L0 加载相关子图包括该实体的所有邻居、桥接的技能、历史关联记忆。L1 上下文只放知识实体的摘要和 IRI 引用细节在图里按需加载。举个例子用户说“上次我们讨论的那个 JWT 认证项目后来怎么设计的”Agent 在 L1 上下文里看到project:auth-project这个 IRI。查 L2 黑板没有这个 IRI 的详情 → 触发 L3 投影。L3 从 L0 拉出project:auth-project的知识子图关联的实体研发部、张三、桥接的技能JWT 认证、安全审计、相关的记忆块那几次讨论 JWT 的对话摘要。把子图摘要注入 L1 上下文Agent 秒回“我们当时决定用 256 位密钥有效期 24 小时……”整个过程LLM 上下文窗口只增加了几个 IRI 和摘要Token 消耗几乎不变。五、架构收益总结维度只有技能图谱技能图谱 知识图谱 记忆系统技能发现靠 5W2H 匹配5W2H 知识实体关联 历史经验推荐上下文理解只看当前任务理解任务相关的实体、人员、历史决策经验复用无知识实体关联历史记忆自动注入跨领域关联无桥接层连接知识实体和技能自动发现适用场景代码理解无tree-sitter AST 提取代码结构可查询增量更新无SHA256 哈希跳过零开销Token 效率全量加载IRI 索引 按需投影Token 消耗减少 70%六、最后说句人话技能图谱教 AI “怎么干活”知识图谱告诉 AI “这是什么、这跟什么有关、以前碰到过类似情况该怎么处理”。两者一结合AI 就不再是“照着菜谱炒菜的厨师”而是“进了你家厨房、知道冰箱里有什么、记得你上次说太咸了这次少放盐的管家”。我这套系统叫Gliding Horse流马所有代码都在 GitHub 上https://github.com/doiito/gliding_horse之前还写过 JSON-LD、CPU 缓存记忆、Oxigraph、丰田安灯绳、技能图谱、工具系统…… 这个系列快写完了下一篇可能是总结篇聊聊把所有这些拼在一起到底能做什么。