ClawVault实体图谱与多跳推理:让“Alice在Google工作“的链条推断自动发生

📅 发布时间:2026/8/24 17:02:40
ClawVault实体图谱与多跳推理:让“Alice在Google工作“的链条推断自动发生
ClawVault实体图谱与多跳推理让Alice在Google工作的链条推断自动发生【免费下载链接】clawvault An elephant never forgets. Structured memory system for AI agents.项目地址: https://gitcode.com/gh_mirrors/cl/clawvaultClawVault 是一款面向 AI Agent 的结构化记忆系统它用实体图谱Entity Graph和多跳推理Multi-hop Reasoning解决 AI记不住事的痛点系统在你写入记忆的瞬间自动抽取结构化事实如 Alice works_at Google并在查询时沿关系边自动完成 Alice在Google工作 → Google在加州 → 所以Alice在加州 这样的链条推断。本文用通俗的方式带你完整看懂这套机制以及如何在 3 步内上手使用。一、为什么 AI Agent 需要实体图谱你有没有经历过这样的场景上周你告诉 AI 助手我们决定用 PostgreSQL这周它又推荐了你 MySQL你对它说过 Alice 负责前端换了一个会话它就忘了甚至把任务派给了错的人你问 Alice 大概在哪个时区AI 只能回答我不知道——尽管它明明记得 Alice 在 Google 工作 和 Google 总部在加州。这就是所谓的上下文死亡Context Death会话一结束所有记忆随之蒸发。ClawVault 的答案是把记忆沉淀为Markdown 文件 实体图谱让 AI 的每一次写入都变成一次结构化沉淀让每一次查询都能自动推理。 核心思想事实不是存成一堆文字而是存成实体—关系—值的三元组它们自然连成一张可遍历的图。二、实体图谱是怎么建起来的三层结构ClawVault v3 的记忆管线可以拆成三层从一句话到一张图1️⃣ 第一层写入时的事实抽取Fact Extraction当一条记忆被写入时fact-extractor.ts 会立刻把自然语言拆解成结构化事实(实体, 关系, 值, 时间, 置信度)。它提供两种模式模式原理特点规则抽取内置正则模式如 X works at Y →works_at零依赖、速度快LLM 抽取调用大模型解析语义失败时自动回退规则模式准确率高需配置 LLM举个直观的例子当你写入这两句My colleague John works at Google.Alice lives in New York.系统自动得到两条事实John —works_at→ GoogleAlice —lives_in→ New York规则模式覆盖偏好I prefer…、事实works at / lives in / is N years old、决策we decided…等常见句式源码里可以看到完整的模式表PREFERENCE_PATTERNS、FACT_PATTERNS、DECISION_PATTERNS全部定义在src/lib/fact-extractor.ts中。2️⃣ 第二层事实仓库与冲突消解Fact Store抽出来的事实不会直接覆盖旧记忆而是进入一个只追加append-only的事实仓库落地在.clawvault/facts.jsonl文件中由 fact-store.ts 管理。它最关键的能力是冲突消解Conflict Resolution每条事实都有validFrom/validUntil两个时间戳当新事实与旧事实的实体关系相同时旧事实被标记validUntil即被取代新事实生效对works_at、lives_in、age这类互斥关系一个人不可能同时住两个城市不同值直接触发取代。例如三月写入Alice —lives_in→ New York八月写入Alice —lives_in→ London系统不会留下两条矛盾的记忆而是让旧事实过期。你甚至可以用getFactsAt(timestamp)查询某个时间点 Alice 住在哪里——记忆拥有了时间维度 ️3️⃣ 第三层实体归一化与图谱索引散落在各处的 Alice、alice、A. Smith 怎么知道是同一个人ClawVault 用两套索引配合实体别名索引entity-index.ts 扫描people/、projects/、decisions/等目录下的 Markdown 文件把文件名、frontmatter 的title字段、aliases数组全部注册为别名并按别名长度降序匹配——保证 Justin Dukes 优先于 Justin 被识别避免误匹配记忆图索引memory-graph.ts 从Wiki 链接、标签、frontmatter 关系字段owner、project、related、blocked_by等构建带类型的知识图谱节点按person、project、decision、lesson等分类边按wiki_link、tag、frontmatter_relation分类最终持久化到.clawvault/graph-index.json。这样图谱里有两类边一类来自结构化事实works_at、lives_in另一类来自笔记之间的链接关系谁和谁在哪些笔记中共同出现。两者叠加才让多跳推理成为可能。三、多跳推理是怎么自动发生的这是全文最精彩的部分。来看 README 中提到的经典例子Alice works at Google Google is in CA → Alice is in CA你只写入过两条互不相干的事实却可以直接问出第三条未写入的结论。原理其实不复杂第一步构建有向图。每条图谱级事实实体断言、决策、偏好都会变成图上一条有方向的边Alice →(works_at)→ Google、Google →(located_in)→ California。这个有向图的实现可以参考eval/run_v35_full.py中的EntityGraph类它维护一张实体 → 出边列表的邻接表。第二步别名解析。查询时输入 alice系统先做实体归一化首字母大写、去空格、第一人称统一为user确保你查的人和图里的人是同一个节点。第三步沿边遍历。核心方法是follow_relation(entity, relation?, at_time?)——从起点出发沿着匹配的关系边逐跳前进并支持时间过滤只在查询时刻仍然有效的事实才会被纳入推理被取代的旧事实如Google 在旧地址自动失效。第四步上下文注入。推理结果最终服务于真实场景当你执行clawvault context ...或clawvault inject ...时系统把与任务相关的决策、偏好、关系链一起注入 AI 的上下文。AI 拿到的不再是一堆文字而是一张带证据的图——每条关系都附带evidence出处笔记和strength强度由共现次数累积推断可追溯、可验证 ✅实体档案的合成逻辑在src/entities/synthesis.ts中它统计每个实体在所有笔记中的提及、推断类型person / project / org / place、生成摘要并基于共同提及co-mention计算实体间关系强度——两个人在多少篇笔记里一起出现关系边就多粗。四、3步快速上手让链条推断在你的 Vault 中跑起来以下命令适合新手按顺序体验环境要求 Node.js 18第 1 步安装并初始化npm install -g clawvault clawvault init ~/memory --name my-brain第 2 步写入会触发抽取的记忆# 这两句话会自动抽出 works_at / lives_in 事实 clawvault remember decision Team sync --content Alice works at Google. Google HQ is in CA.第 3 步查看图谱与实体clawvault graph --refresh # 刷新知识图谱索引 clawvault entities # 列出所有可链接实体与别名 clawvault context Where is Alice based? # 触发带推理的上下文检索如果想手动维护实体档案可以直接编辑people/下的 Markdown每人一个文件模板见templates/person.md包含relationship、timezone等字段再用clawvault entities --refresh重新合成。Linux 下若遇到 PATH 问题可参考官方安装文档docs/getting-started/installation.md。五、关键模块路径速查表想深入源码时按下面的地图找功能路径说明事实抽取src/lib/fact-extractor.ts规则模式表 LLM 抽取提示词事实仓库src/lib/fact-store.ts冲突消解、时间线查询、facts.jsonl读写记忆图src/lib/memory-graph.ts节点/边建模、graph-index.json生成实体索引src/lib/entity-index.ts别名注册、长名优先匹配实体档案src/entities/synthesis.ts类型推断、关系强度、证据累积实体命令src/commands/entities.tsclawvault entities/entity的实现多跳图参考eval/run_v35_full.pyEntityGraph有向图与follow_relation笔记模板templates/person.md人物档案的 frontmatter 规范Python SDKpython/src/clawvault/clawvault-pyBM25 检索 生命周期封装安装指南docs/getting-started/installation.mdLinux 安装与 PATH 配置六、写在最后图谱记忆 可追溯的记忆推理ClawVault 用 Markdown 存储 实体图谱 多跳推理 证明了AI Agent 的记忆不必是黑盒向量库也可以是人类可读、git 可追踪、Obsidian 可浏览的结构化图谱。Alice 在加州这类结论不是模型猜出来的而是沿着一条条带证据、带时间、可过期的关系边推出来的。 写入即结构化每条记忆自动变成(实体, 关系, 值)三元组⚖️ 冲突自动消解新事实取代旧事实旧事实留在时间线上可回溯 查询即推理别名归一 有向图遍历多跳结论自动浮现如果你正在为 AI Agent 设计长期记忆这套事实—图谱—推理的分层思路值得完整借鉴。【免费下载链接】clawvault An elephant never forgets. Structured memory system for AI agents.项目地址: https://gitcode.com/gh_mirrors/cl/clawvault创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考