ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

claude-code-memory-setup记忆层实战:用Obsidian Zettelkasten给Claude Code打造第二大脑

claude-code-memory-setup记忆层实战:用Obsidian Zettelkasten给Claude Code打造第二大脑

【免费下载链接】claude-code-memory-setup

Up to 71.5x fewer tokens per session on Claude Code with Obsidian + Graphify. Persistent memory, codebase knowledge graphs, and chat import pipeline. 🇧🇷 PT-BR included.

项目地址:https://gitcode.com/gh_mirrors/cl/claude-code-memory-setup
点击查看免费下载

如果你常用 Claude Code,多半被"会话失忆"折磨过:每次新开会话,都要重新解释技术栈、历史决策和待办事项,token 就这么白白烧掉了。claude-code-memory-setup 是一套开源的记忆层搭建指南:用 Obsidian Zettelkasten 笔记库 + Graphify 代码知识图谱,为 Claude Code 打造可持久化的第二大脑,让上下文只查一次、永久复用,把 token 花在刀刃上。

为什么需要记忆层:Claude Code 的两大 token 黑洞

在使用这套方案前,先搞清楚问题出在哪:

  • 🧠会话间失忆:Claude Code 不记得上一个会话,你被迫反复粘贴项目背景。
  • 🔁代码库反复重读:每次问"这个函数在哪被调用",它可能都要重新翻几十个源文件。

项目用四层互补机制解决这些问题(详见 README.md):

记忆层工具解决的问题
项目记忆Obsidian Zettelkasten会话间失忆
代码地图Graphify 知识图谱源码反复重读
对话历史Chat Import 管道聊天洞察随历史流失
会话连续性/resume与/save命令断点续接困难

一句话区分:Obsidian 负责"决定了什么"(陈述性记忆),Graphify 负责"代码怎么组织的"(结构性地图)。

架构总览:一个 Obsidian 库承载所有记忆

整套方案的"中枢"是一个统一的 Obsidian 库(单库原则:多项目共用,跨项目知识才能互相链接),目录结构推荐如下(摘自 README.md):

~/vault/ ├── CLAUDE.md # Claude Code 自动读取的全局指令 ├── permanent/ # 沉淀后的原子笔记 ├── inbox/ fleeting/ logs/ references/ ├── my-project/ # 项目 X:架构决策、功能进度、会话日志 ├── chats/ # 导入的 Claude 对话(code / web) └── graphify/ # 各项目的代码知识图谱

⚠️ 注意:代码仓库不要放进库里,否则 Obsidian 会去索引node_modules/和构建产物。

第一步:搭好 Zettelkasten 记忆库,配好 /resume 与 /save

安装好 Claude Code 和免费的 Obsidian 后,只需三件事:

  1. 建库建目录:mkdir -p permanent inbox fleeting templates logs references,再为每个项目建architecture/、logs/等子目录;
  2. 写根目录的CLAUDE.md:这是 Claude Code 每次自动读取的"全局说明书",写清项目技术栈、Zettelkasten 规则(原子化笔记、[[wikilinks]]互链、YAML frontmatter 元数据);
  3. 定义两条会话命令:
    • /resume:读取最近的会话日志和架构决策,汇总"现在做到哪了";
    • /save:把本次做了什么、决策了什么、遗留什么写入带 wikilinks 的会话日志。

Zettelkasten 方法论的核心是一条笔记只讲一个概念、每条笔记至少两条 wikilinks,笔记越多,知识网越密,Obsidian 的 Graph 视图里能直接看到跨项目的隐藏关联。

第二步:Chat Import 管道,让历史对话变成可检索笔记

和 Claude 聊出来的决策与灵感,散落在聊天记录里等于丢了。这个管道把对话"洗"进库:

claude-extract 导出 .md → claude_to_obsidian.py 加工 → chats/ 目录

处理脚本 scripts/claude_to_obsidian.py 会为每篇对话自动识别来源(Code / Web)、按关键词生成标签、补上标准化 frontmatter,并智能插入[[wikilinks]]——对话里提到"Supabase 认证",就会自动链到你已有的同名笔记。

自动化包装脚本 scripts/sync_claude_obsidian.sh 配合 cron 每晚定时跑一次,全程无人值守(配置方法见 scripts/README.md)。导入后在 Obsidian 图视图用tag:chat-import过滤,聊天笔记一目了然,也可用-path:chats一键隐藏。

第三步:Graphify 知识图谱,让 Claude Code 少读源码

Graphify 把代码库转成可查询的知识图谱,替代"翻源码找答案":

  • 🔒100% 本地处理:基于 tree-sitter AST,代码内容不出本机;
  • ⚡SHA256 缓存:重复构建只处理改动的文件;
  • 💰AST 模式 0 token 成本,支持 Python、TypeScript、Go、Rust、Java 等 20+ 语言。

安装与生成(在 Claude Code 内执行):

pip install graphifyy graphify install --platform claude
/graphify . --obsidian --obsidian-dir ~/vault/graphify/project-name

生成的每个函数/模块都会变成库里的笔记,并产出graph.json和交互式graph.html。之后在项目的CLAUDE.md里写死三层查询规则(README.md):

① 先查graph.json图谱 → ② 再查 Obsidian 库的决策与进度 → ③ 只有真要改代码时才读源文件。

配合graphify hook install,每次 commit 自动增量重建图谱,图谱永远是新鲜的。

第四步:SessionEnd 自动存档 Hook,忘了 /save 也有日志

/save写得再好,忘了执行也白搭。scripts/session_autosave.py 是一个SessionEnd钩子脚本:会话关闭(退出、/clear、登出)时自动触发,纯解析 JSONL 转录文件,零 LLM 调用、毫秒级完成,在库里留下一条最小化日志(首个 prompt、改动的文件、执行过的命令)。

设计得很克制:🛡️ 它是安全网而非替代品;静默失败绝不干扰会话;少于 2 条用户消息的琐碎会话直接跳过。在~/.claude/settings.json注册一下钩子即可(README.md),自动日志带tag:auto-log,方便过滤。

完整工作流:一次会话的 token 优化闭环

打开 Claude Code ├── /resume ← 从库里恢复上下文,不再重新解释 ├── 工作 ← 查 graph.json 图谱,而非重读源码 ├── /save ← 富日志:决策、待办、wikilinks └── 退出 ← SessionEnd 钩子兜底写入自动日志

对比一下每层带来的变化:

环节没有记忆层有了记忆层
/resume每会话重新解释项目上下文自动恢复
Graphify反复读取几十个源文件查一次图谱输出
Chat 管道洞察埋在聊天记录里全量入库、可搜索
/save+ Hook做完就忘完整历史 + 自动兜底

Token 节省效果:数据与证据边界

项目给出的历史参考数据:在 126 个 TypeScript 文件的 React + Supabase 项目中,图谱 332 节点、生成 456 条库内笔记、AST 模式图谱构建 0 token、每次查询从约 20,000 token 的源码读取降到约 280 token 的图查询输出(约 71 倍的检索上下文缩减)。

但项目官方态度非常诚实:这些是作者报告值,未发布完整测量数据。仓库内置了证据审计与可复现基准协议 benchmarks/README.md,以及离线统计脚本 benchmarks/summarize.py(配套 示例数据),教你怎么科学地量化自己的真实节省——这一点在同类教程里相当难得。✅

常见问题排查清单

症状解法
Graphify 笔记没出现在 Obsidian确认笔记真的在库目录内(Obsidian 路径常和你想的不一样)
图视图打开是空的关掉 "Orphans" 和 "Existing files only" 过滤后重启 Obsidian
Claude Code 不查图谱检查项目CLAUDE.md有 Context Navigation 段、graph.json存在
终端报unknown command '.'无头 CLI 需要子命令:graphify extract .;带/的 skill 形式只在 Claude Code 内用
macOS cron 不执行给终端/ cron 授予完全磁盘访问权限

更多细节见 README.md 的 Troubleshooting 章节。

快速上手与文件导航

仓库本身是一份文档型指南,克隆下来照做即可:

git clone https://gitcode.com/gh_mirrors/cl/claude-code-memory-setup
文件用途
README.md主指南:Obsidian 库、Chat 管道、Graphify、工作流全在这
scripts/claude_to_obsidian.py对话导入处理器(标签 + wikilinks)
scripts/sync_claude_obsidian.shcron 自动化同步脚本
scripts/session_autosave.pySessionEnd 自动存档钩子
benchmarks/summarize.py离线 token 用量统计器
CHANGELOG.md版本记录(v1.0.0 起含自动存档钩子)
README.pt-BR.md葡萄牙语版指南 🇧🇷

从/resume开始你的第一个"有记忆"的会话吧——配置一次,之后每次开口的第一个 token 都更值钱。

【免费下载链接】claude-code-memory-setup

Up to 71.5x fewer tokens per session on Claude Code with Obsidian + Graphify. Persistent memory, codebase knowledge graphs, and chat import pipeline. 🇧🇷 PT-BR included.

项目地址:https://gitcode.com/gh_mirrors/cl/claude-code-memory-setup
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进