最近我把 Obsidian 个人知识库和 Codex 串起来用,最大的感受是:以前用 AI 写代码,总觉得自己在“带实习生”,所有背景都得重新讲一遍,讲完它还经常忘。现在等于给 AI 配了一个只属于我的“项目档案室”,它动手之前先翻你的笔记,动手之后避开的坑,全是你亲手摔过的。这篇文章就把完整流程写下来:从最朴素的直接读文件夹,到进阶的 MCP 搜索接入,再到四个真实干活场景和排坑记录。每一步都能直接照着抄。
适合谁看?两拨人。第一拨是已经在用 Codex 或其他 AI 编程工具、但总觉得 AI“不懂我”、每次都要废话半天解释背景的人;第二拨是 Obsidian 里囤了大量笔记、却只把它当“高级搜索框”用的人。如果你第一次听说 Codex 或者 Obsidian,也没关系,我会从安装讲起,尽量保证每个命令都能直接复制到终端里跑。
1. 为什么是Codex+Obsidian:核心思路拆解
1.1 你缺的不是AI,而是“让AI懂你”的部分
先反着问一个问题:你身边最会写代码的人,和你差距最大的地方是什么?不是手速,是他脑子里存的“历史包袱”——他知道这个项目为什么当初选了 A 方案而不是 B,知道上一次因为某个坑熬到凌晨三点,知道客户嘴里说的“改一下”实际指哪个模块。这些信息,AI 一概没有。ChatGPT 固然知道世界上几乎所有公开代码,但它不知道你的代码为什么长成现在这样。
所以很多程序员用 AI 干活,最大的痛点是“上下文反复喂、喂完还丢”。今天问它帮我写个 React hook,它写得挺好;明天问它把 hook 改成支持并发请求,它又忘了昨天你告诉它的“这个组件在低端安卓机上内存受限”这个前提。你用对话窗口跟它聊十轮,还不如它自己翻一条你三个月前写的笔记来得快。
个人知识库解决的就是这件事。Obsidian 里的笔记是你亲手筛过的、消化过的、带个人判断的经验。网上搜到的教程是通用的,你的笔记是私有的。把这块“私有上下文”交给 AI,效果完全不一样——它不是从零开始认识你的项目,而是在你积累的地基上继续盖楼。
1.2 Obsidian知识库为什么适合当AI的外部记忆
其实一开始我也想过,要不要直接用 Notion、印象笔记,或者干脆弄个 txt 文件夹丢给 AI 读。试了一圈,Obsidian 确实是目前最适合给 AI 当“外部记忆”的容器,理由有三点。
第一,全本地 Markdown 文件。Obsidian 的 Vault 就是一个普通文件夹,里面全是 .md 文本文件。AI 对文本的理解力是最强的,不存在 PDF 解析、富文本格式错乱、图片里文字看不清这类问题。Codex 有现成的 bash 能力,cat 一个 md 文件是它的看家本领。
第二,结构化信息天然丰富。Obsidian 的双链、标签、文件名、文件夹层级,这些都是现成的“检索线索”。比如我所有踩坑笔记都会打上 #坑 标签,文件名统一是“YYYY-MM-DD 标题”。AI 拿到这个结构,搜索效率非常高,比在纯文本堆里捞针快得多。
第三,有标准本地 API 和 MCP 生态。Obsidian 社区插件可以暴露一个本地 REST API,而 Codex 从 2025 年某个版本开始原生支持 MCP(Model Context Protocol)。也就是说,AI 不只能读文件,还能像调用工具一样对知识库做“搜索”“取最近笔记”“追加内容”。这就把知识库从“死资料”变成了“活接口”。
我整理了一个简单的对比,帮你理解为什么我会选 Obsidian:
| 方案 | 可检索性 | AI接入成本 | 数据主权 | 适合作AI记忆 |
|---|---|---|---|---|
| Obsidian | 标签/链接/全文 | 低(本地API+MCP) | 完全本地 | 强 |
| Notion | 较好 | 中(云端API有频率限制) | 云端 | 一般 |
| 纯txt文件夹 | 差 | 低(只能直接读) | 完全本地 | 弱,没有检索 |
| 博客/在线文档 | 差 | 高(多为阅读场景) | 第三方 | 弱 |
这里多说一句:我强调的不是“哪个笔记软件更好”,而是“哪个笔记软件更容易接进 AI 工作流”。Obsidian 赢在“本地”和“开放接口”这两个点上。
2. 环境准备与工具选型
2.1 Codex CLI 的安装与登录
Codex 有网页版,但我们要的是命令行工具 Codex CLI,因为它能跑命令、读写本地文件、和我们后面的知识库打通。安装方式有三种,选一种就行。
如果你是 Node.js 用户,最省事的是 npm 安装:
npm install -g @openai/codexmacOS 用户可以用 Homebrew:
brew install codex不想折腾包管理器,也可以直接去 OpenAI 官方开发者平台下载对应操作系统的安装包。装完先验证版本:
codex --version能输出版本号就说明装好了。接下来登录:
codex login终端会弹出一个浏览器窗口,用你的 ChatGPT 账号授权即可。登录后,Codex 会在本地生成认证文件(通常在~/.codex/auth.json)。注意,Codex 本身要求你有一个有效的 ChatGPT 登录账号和对应的订阅权限,这一点和 ChatGPT 网页版的要求是一致的,如果你的账号没有 Codex 权限,登录时就会报错。
登录完成后,你可以先在任意目录下跑一句体验一下:
codex "写一个Python函数,输入目录路径,统计里面所有markdown文件的行数"如果它能正常回答并操作文件,环境就通了。
2.2 Obsidian端:启用本地REST API插件
Obsidian 官方并没有内置对外接口,但社区有一个成熟的插件叫 obsidian-rest-api,作用是在本地起一个 HTTP 服务,让外部程序可以搜索、读取、写入你的笔记。这是整个串联方案里最关键的一环。
操作步骤:
- 打开 Obsidian 的“设置 -> 第三方插件 -> 关闭安全模式”,进入社区插件市场,搜索“obsidian-rest-api”。
- 安装并启用插件。
- 进入插件设置页,会看到 API 端口(默认 27123)和一串 APP Key。把这个 Key 复制保存,别泄露。
- 勾选“Enable API”或类似开关,确保服务是运行状态。
验证服务是否启动,可以在终端跑:
curl http://127.0.0.1:27123 -H "Authorization: Bearer 你的APPKey"正常响应会返回类似{"status":"ok"}的信息。端口只监听本机,不需要担心局域网里其他人访问。
有的 Obsidian 版本在社区插件市场搜到这个插件可能有点困难(网络原因),你也可以去插件作者的 GitHub Release 页面手动下载安装包,放进.obsidian/plugins目录后重启 Obsidian。
2.3 目录规划与AGENTS.md的作用
很多教程上来就让你写代码,但我想先把目录规划说清楚,因为这一步直接影响后面 AI 的“找东西效率”。
先说一个概念:AGENTS.md。Codex 在启动时会自动读取当前项目目录下的 AGENTS.md 文件,把它当作“系统提示词”的一部分。这个文件是 OpenAI 近一年在主推的约定,作用类似于给 AI 写一份“团队入职手册”。你可以在里面写清楚:
- 项目背景和技术栈;
- 文件的组织方式;
- 有哪些固定约束(比如“不要修改 tests 目录”“注释必须用中文”);
- 可以访问的外部资源路径(这就是我们接知识库的入口)。
我的建议目录结构长这样:
/你的工作目录/ ├── AGENTS.md └── scripts/而 Obsidian 的 Vault 路径尽量保持稳定,比如:
- macOS:
/Users/你的用户名/Documents/MyVault - Windows:
C:\Users\你的用户名\Documents\MyVault
后续在 AGENTS.md 里写死这个路径,AI 每次都能准确找到。别今天换一个位置,明天换个名字,AI 也是会懵的。
3. 让知识库真正接进Codex:两种接入方式
3.1 入门方案:把知识库目录直接写进AGENTS.md
如果你看不上“插件 + 接口”的折腾劲,或者想先跑通最小闭环,最简单的方式是直接告诉 Codex:你的笔记放在哪里,哪些文件夹优先看。
在项目目录下创建 AGENTS.md,内容可以这样写:
# 项目背景 本人是前端开发者,项目技术栈为 React + TypeScript。 # 外部知识库 你可以通过 bash 命令访问我的 Obsidian 笔记库,路径为: /Users/me/Documents/MyVault 开始任务之前,如果任务涉及以下主题,先到笔记库检索相关资料: - React/Hooks - 性能优化 - 部署与运维 - 踩坑记录 检索方法示例: 1. 用 `find /Users/me/Documents/MyVault/技术笔记 -name "*.md"` 列出文件。 2. 用 `cat` 读取具体文件内容。 3. 如果文件太多,先用 `grep -i "关键词" /Users/me/Documents/MyVault -r` 搜索。这样配置完之后,进入项目目录,启动 Codex:
cd /你的工作目录 codex在交互界面里输入类似“帮我写一个防抖 hook,注意看下笔记里我踩过的坑”,Codex 就会尝试去 Vault 目录里翻查。你不用手动贴上下文,它会自己找。
这套方案的好处是零额外依赖,Codex 原生支持 bash 读取本地文件,任何版本都适用。缺点也比较明显:AI 不知道“该读哪篇笔记”,它得先搜索、再筛选,遇到文件多的时候会浪费时间,而且它可能会读取一些不相关的内容。
3.2 进阶方案:通过MCP把Obsidian变成可搜索工具
MCP 是 Anthropic 提出、后成为 AI 工具事实标准的“模型上下文协议”,你可以把它理解为“AI 世界的 USB 接口”——只要服务方提供符合 MCP 协议的接口,AI 就能直接调用。Codex 从某次更新后原生支持 MCP,这就是我们做进阶接入的基础。
我做进阶接入用的是社区开源项目 obsidian-mcp,它站在 obsidian-rest-api 插件肩膀上,把“搜索笔记”“读取笔记”“获取最近编辑”这些能力封装成 MCP 工具。安装配置流程如下。
第一步,全局安装:
npm install -g obsidian-mcp第二步,把 MCP server 注册进 Codex。新版 Codex 提供了 mcp 子命令,直接执行:
codex mcp add obsidian -- npx -y obsidian-mcp如果你用的 Codex 版本较老,没有codex mcp子命令,也可以手动编辑配置文件~/.codex/config.toml,在里面追加:
[mcp_servers.obsidian] command = "npx" args = ["-y", "obsidian-mcp"]第三步,重启 Codex 或开启一个新会话。你可以先用一个简单指令验证:
请读取我笔记库里最近三条关于“性能优化”的笔记,总结一下共性如果配置成功,Codex 会自动调用 obsidian 工具查询,而不是自己去翻文件。这种方式的体验完全不同,它有“搜索意识”了,像一个真正知道“这些资料在哪里”的同事。
两种方式对比,我的建议是:前期直接用 AGENTS.md 方式,顺手、不折腾;等用熟了、确实需要频繁检索知识库,再上 MCP,检索效率会有一个肉眼可见的提升。
3.3 配置模型与提示词模板
Codex 底层支持多种模型,默认是gpt-5-codex(专为代理式编程优化),也支持gpt-5、gpt-5-mini等。在交互会话里输入/model可以随时切换。
这里有个使用技巧:知识检索和代码生成,用不同模型有奇效。比如我经常先切到gpt-5让它阅读笔记、总结思路,再切回gpt-5-codex让它写代码。原因是通用推理模型在“理解资料”这种开放任务上表现更稳,而代码执行模型在“改文件、跑命令”这类代理任务上更激进。你甚至可以把这个理解为“多 AI 协作”——同一个会话内,AI 之间共享上下文,但各干一段。
再放几个我调试好的提示词模板,可以直接抄:
【检索型】 先在我的 Obsidian 笔记库中搜索所有带 #坑 标签的笔记, 列出与“React 状态更新”相关的踩坑记录,再回答我的问题。 【复现型】 阅读笔记《2025-03-15 线上事故复盘》,结合里面的根因分析, 帮我在当前代码库中找到同样的隐患,并给出修复方案。 【规范型】 我的代码规范笔记在 Vault 的 CodeStyle 目录下, 请先读一遍,然后审查当前项目 src 目录下所有 TypeScript 文件, 列出不符合规范的地方。模板的核心逻辑只有一个:先明确“知识在哪里”,再要求“按知识办事”。如果你不指定知识来源,AI 很容易只凭自己的训练数据发挥,那样就谈不上“接着你的积累干活”了。
4. 实战场景:AI接着你的积累干活
4.1 场景一:踩坑笔记变成代码防空能力
我最常用的场景是这个。我的 Vault 里有一个“技术笔记/踩坑”文件夹,里面的笔记标题往往是这种画风:“React 18 StrictMode 导致 useEffect 执行两次”“iOS Safari 下 fixed 定位失效原因”“useCallback 依赖数组漏了 ref 的坑”。
以前写代码遇到这些问题,全靠脑记忆,记不住就上网搜;现在我把 Folder 路径写在 AGENTS.md 里,让 Codex 先读“踩坑”文件夹,再写新代码。
举个例子,有一次我让 Codex“写一个图片懒加载组件,要求兼容低版本安卓 WebView”,它启动后先读了我笔记里“低端机 WebView 不支持 IntersectionObserver”那条,然后自动改用scroll 监听 + 节流的降级方案。这个细节我自己都没来得及提醒它,它从笔记里读到的。
这类场景的价值不在于“AI 多聪明”,而在于“AI 不重复踩你的坑”。你写笔记时花的五分钟,后面会被 AI 反复折算成工时还给你,复利效应非常明显。
4.2 场景二:半年没碰的项目,靠笔记三分钟恢复
程序员最常见的焦虑之一,是接手自己半年没碰的项目。代码还能跑,但“为什么要这么写”已经忘得差不多了。去年我做一个内部数据可视化项目,中间停了半年,恢复那天打开代码直接愣住。好在我当时在 Obsidian 里记录了 20 多篇项目笔记:数据库表结构怎么设计的、权限模型为什么分成三层、消息队列为什么会偶发乱序。
这次我有经验了,直接让 Codex 做“项目恢复”:
请读取 Vault 里“项目笔记/数据可视化后台”目录下的所有笔记, 然后帮我回答:这个项目的权限模型是怎么分层设计的?Codex 花了两分钟把 20 篇笔记全部读完,输出了一份带引用来源的结构化摘要,还补了一句“根据笔记里的架构图文字版,前端路由守卫应该校验第二层权限”。我当时的感受是,这不是在跟 AI 对话,这是在跟半年前的自己隔空协作。
这个场景对任何“笔记记得勤、复盘做得少”的开发者都有参考价值。你不需要做额外的事情,只需要保证笔记里记录的决策有上下文,Codex 就能把它们串起来。
4.3 场景三:让AI按你的“个人规范”审查代码
很多团队有代码规范文档,但存哪儿的都有,Confluence、GitHub Wiki、本地 Word。我自己比较极端,会把“个人编码规范”直接写成 Obsidian 笔记,比如“禁止用 any”“组件 props 必须用 interface 而不是 type”“提交信息必须遵循 Conventional Commits”“每个函数不得超过 50 行”等。
有一天我对一个刚写好的几百行文件不放心,就打开 Codex,输入:
阅读 Vault 里“规范/我的TypeScript规范”这篇笔记, 然后帮我审查 src/utils/date.ts,逐条列出违反规范的地方。Codex 读完规范后,很快给出 7 条违规项,其中有一条是“函数超过 50 行”,还有一条是“隐式 any 类型的回调参数”。它能发现这些,完全是因为我先让它把规范读了一遍,它有了“判断标准”。否则,AI 的代码审查只会停留在“代码有没有 bug”层面,根本到不了“代码服不服你的规矩”这层。
这个用法对个人开发者尤其友好:你不需要“团队统一规范文档”,你的 Obsidian 笔记就是你的规范库,AI 永远以最新版为准。
4.4 场景四:多AI协作,让不同模型各干各的活
最后这个场景有点进阶,但值得说一下。Codex 会话内的/model切换指令,让我发现了“多 AI 协作”的甜头。
我处理一个重构任务时是这样分配的:先用gpt-5读取 Vault 里所有和“状态管理”相关的笔记,提炼出关键词和设计原则;再切到gpt-5-codex,让它按照提炼出的原则去重构一个 Zustand store。第一个模型侧重理解,第二个模型侧重执行。因为上下文是连续的,gpt-5-codex 相当于带着 gpt-5 的读书笔记去干活,省了我中间整理提示词的时间。
更具体一点:gpt-5 在总结时可能输出“优先使用原子化 update,避免整体覆盖”,gpt-5-codex 拿到这条“指令”后,就会在代码里刻意避免set({...largeState})这种写法,而改成细粒度的set(partial)。这种“一个模型读书思考、一个模型动手编码”的协作模式,实测中比单模型一路做到底的稳定性高不少。
如果你手里的 Codex 账号支持多个模型,强烈建议试试这个分工。它不是什么复杂配置,就是在会话里敲两下/model而已,但效果完全是两个档次。
5. 常见问题与排查技巧实录
5.1 Codex 登录不上、无法加载组织设置
我在刚开始用 Codex 时踩过这个坑:明明浏览器里 ChatGPT 用得好好的,codex login也提示授权成功,但进入交互界面后却报“无法加载组织设置”。
排查思路和解决步骤按顺序来:
- 检查账号权限。Codex 不是所有 ChatGPT 账号都能用的,需要账号对应的订阅或 API 权限中带有 Codex 能力。确认方法就是打开 ChatGPT 网页版的设置,看有没有 Codex 相关入口。
- 清理本地认证信息。执行
codex logout,然后删除~/.codex/auth.json,再重新codex login。本地 token 偶尔会损坏或过期,重新走一遍授权流程基本能解决。 - 检查配置文件
~/.codex/config.toml。如果之前手动改过模型提供商或 MCP 设置,存在语法错误也可能导致加载失败,可以临时把配置文件改名备份,再启动 Codex 测试。
这个问题的核心不是“配置不对”,而是“缓存和权限没同步”。我自己就是靠第二步“删 auth 文件重新登录”解决的。
5.2 报错“cc switch local proxy failed while handling codex endpoint /responses”
这个报错我一度以为是配置问题,后来才发现是个“纸老虎”。报错全文类似:
cc switch local proxy failed while handling codex endpoint /responses. provi...拆开看,它想表达的意思是:Codex 客户端在本地起了一个临时转发服务,但这条请求没成功回到主服务。最常见的原因是网络临时波动、登录凭证过期,或者服务端正在调整模型路由。遇到它不用慌,按顺序尝试:
- 退出当前会话,重新执行
codex,直接重试,多数情况能过; - 重新登录一次,旧凭证的时效问题会被刷掉;
- 升级 Codex CLI 到最新版本,
npm update -g @openai/codex或brew upgrade codex,持续半年以上的老版本最容易出现这类兼容问题。
这里要提醒一句:看到“proxy”这个词不要联想到任何第三方网络工具,它纯粹是 Codex 自身内部的一个本地服务组件,跟你的网络环境没有直接关系。如果重试多次仍报错,建议去官方 GitHub Issues 里搜一下这个错误串,通常能在当天就找到官方的修复说明。
5.3 笔记太多,AI搜索不到/读不过来
知识库里存了上千篇笔记后,会遇到一个新问题:AI 每次都要搜索,但搜索质量不稳定。比如我让它搜“React 性能优化”,它可能翻出十几篇相关笔记,读到最后上下文窗口快满了还没动手。
我的解决思路是“给知识库划分优先级”,实践下来很有用:
- 核心笔记放独立文件夹,在 AGENTS.md 里明确“优先读这些目录”;
- 文件名加日期前缀,让 AI 能按时间线排序;
- 每篇笔记开头写一段“适用场景”说明(类似 API 文档的摘要),告诉 AI“这篇笔记什么时候该参考”;
- 标签保持克制,一个原则:标签是索引,不是分类。标签数量控制在 20 个以内,检索命中率反而更高。
另外还有一个技巧:在提示词里限定时间范围,比如“只读取 2025 年之后的笔记”。这能让 AI 减少噪音,聚焦最新经验。
5.4 隐私和权限的三个红线
把本地笔记库开放给 AI,很多人的第一反应是“安全吗?”我的实践经验是,只要守住三个红线,问题不大。
第一,REST API 只监听本机。Obsidian 的 REST API 默认绑定127.0.0.1,不对外网开放,你不去改监听地址,别人就访问不到。
第二,认证 Key 是敏感信息。obsidian-rest-api 插件生成的 APP Key,相当于你笔记库的钥匙。不要把它提交进任何 Git 仓库,不要在聊天工具里转发,也不要在共享配置里直接明文写。可以把它放在环境变量里,或者用 Codex 的认证管理机制来加载。
第三,AGENTS.md 本身就是暴露面。如果仓库会被别人 clone 或 review,不要在 AGENTS.md 里写完整的本地绝对路径和隐私目录名。你可以只写相对路径或笼统的说明,避免把个人文件夹结构暴露给协作者。
最后再分享一个小细节:我建议每隔一段时间把 Vault 里那些“不再适用”的笔记归档到一个Archive目录,而不是直接删除。因为我发现 AI 读笔记时,过时的经验会正确识别为“历史背景”,而删除会让知识库缺少演变脉络。保留旧版本反而让它在解释“为什么现在这么写”时更有底气。
我个人在实际操作中的体会是,这套方案的瓶颈从来不在工具,而在笔记质量。Obsidian 里那些只有文件名、没有结论、没有场景说明的碎片笔记,AI 读了也是半懂不懂。如果你打算抄这份教程,我建议先花一个周末把 Vault 里最重要的 20 篇笔记补上“适用场景”和“结论”两段话。做完这件事,你再回来用 Codex,会明显感觉它变聪明了——不是模型变聪明了,是你终于把话说清楚了。