☰
Codex + Obsidian:搭建你的 AI 知识库(保姆级教程)
2026/9/28 18:37:37 网站建设 项目流程

1. 为什么要把 Codex 和 Obsidian 拼在一起

Codex 是能直接读写本地文件的 AI 助手,Obsidian 是基于 Markdown 的本地笔记软件,两者共用的其实是同一套文件夹。把 Codex 的工作区指向 Obsidian 的仓库目录,AI 就能像管理员一样整理你的笔记,而你依然用 Obsidian 浏览、双链、看关系图谱。这套组合适合三类人:资料散落在浏览器收藏夹和下载目录里找不到的、想用 AI 自动归档但不想把笔记上传到云端的、以及已经在用 Markdown 记笔记想加一层智能检索的。

我试过把几百篇剪藏文章直接丢给 AI 整理,结果它把同一主题拆成七八个重复页面,双链乱成一团。问题不在模型,在于没有提前约定工作规范。所以这篇教程的重点不是"装好两个软件",而是把 AGENTS.md 约定、目录结构、统一 API 通道这三件事一次配到位,让 Codex 每次进入工作区都按同一套规矩干活。

整篇会交付可复制的config.toml与settings.json配置骨架、目录结构示例,以及验证 Codex 读写笔记和知识检索是否生效的具体动作。技术部分占大头,跟着做就能跑通。

2. 前置准备:TaoToken 统一 Key 与 API 通道

Codex 这类工具要调用模型,绕不开 API Key 和接入地址。如果你同时用多个模型,每个平台一套 Key、一套计费、一套限流,管理成本很快就上来了。TaoToken 的作用是把这些收敛成一个统一入口:一个 Key 走通对话、编码、Agent 等场景,接入地址统一为https://taotoken.net/api,省去在多个控制台之间来回切换。

对本地知识库这个场景来说,统一通道还有个实际好处:Codex 在整理笔记时会频繁发起请求(读文件、搜索 wiki、写页面、更新索引),请求量比单次对话大得多。用统一 Key 便于集中看用量,也方便在配置里只维护一处地址。

你需要先拿到 Key。打开控制台创建 API Key,建议按用途命名,比如obsidian-kb,方便日后区分。创建后立刻复制保存,页面刷新后就看不到完整值了。

  • 控制台创建 Key:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Keys 管理页:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
  • 接入文档(含各工具配置示例):https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

注意:Key 只存在本地配置文件或环境变量里,不要写进会同步到公开仓库的笔记。Obsidian 仓库如果开了 Git 同步,记得把配置文件加进.gitignore。

如果你打算长期用 Codex 做编码和 Agent 任务,可以顺带了解 Coding Plan,它更适合高频、长周期的自动化场景:

  • Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

3. 可复制配置:config.toml 与 settings.json

这一节是全文的核心,配置对了后面才顺。Codex 的配置分两层:一层是模型接入(config.toml),一层是工作区行为(settings.json或等价的工作区设置)。不同版本的 Codex 客户端字段名可能略有差异,下面给的是通用骨架,按你实际版本的字段名微调即可。

3.1 config.toml 接入骨架

把下面内容保存到 Codex 的配置目录(常见位置是用户目录下的.codex/config.toml,以你客户端提示的路径为准):

# Codex 模型接入配置 # 统一走 TaoToken 通道,一个 Key 覆盖多场景 [model] # 模型名按你实际开通的填写 name = "your-model-name" # 统一接入地址,不要带末尾斜杠 base_url = "https://taotoken.net/api" # 从环境变量读取,避免明文写死在文件里 api_key_env = "TAOTOKEN_API_KEY" [workspace] # 指向 Obsidian 仓库根目录,Windows 用双反斜杠或正斜杠 root = "D:/AI知识库" # 进入工作区自动读取的规范文件 agents_file = "AGENTS.md" [behavior] # 整理类任务建议降低随机性,保证归档稳定 temperature = 0.2 # 单次任务允许的最大轮次,防止在大量文件上无限循环 max_turns = 40

然后在系统环境变量里设置 Key(Windows 用 PowerShell,macOS/Linux 用 export):

# macOS / Linux export TAOTOKEN_API_KEY="你的Key" # Windows PowerShell(当前会话) $env:TAOTOKEN_API_KEY="你的Key"

提示:把base_url统一写成https://taotoken.net/api,后续换模型只改name,地址和 Key 都不用动,这是统一通道最省事的地方。

3.2 settings.json 工作区行为骨架

部分 Codex 客户端用settings.json管理工作区权限和文件规则。放在仓库根目录或客户端指定的配置位置:

{ "workspace": { "root": "D:/AI知识库", "readOnlyPaths": ["raw"], "writablePaths": ["wiki", "index.md", "log.md"], "ignorePatterns": [".obsidian/workspace.json", ".trash/", "*.tmp"] }, "agents": { "autoLoad": true, "file": "AGENTS.md" }, "indexing": { "include": ["wiki/**/*.md", "index.md"], "exclude": ["raw/**", ".obsidian/**"] } }

这里有两个关键设计。readOnlyPaths把raw设为只读,原始资料不会被 AI 改写或删除,出问题还能回溯。writablePaths只放开wiki、index.md、log.md,AI 的改动范围被框死,不会误伤你手写的其他笔记。

3.3 目录结构示例

在 Obsidian 里新建仓库(比如D:\AI知识库),然后让 Codex 或手动建出这套结构:

AI知识库/ ├── raw/ # 原始资料,只读 │ ├── 2024-06-article.md │ └── pdf-notes.md ├── wiki/ │ ├── concepts/ # 概念、方法、观点 │ ├── entities/ # 人物、公司、工具、平台 │ └── sources/ # 原始资料摘要 ├── AGENTS.md # AI 工作规范 ├── index.md # 知识库目录 └── log.md # 整理与修改日志

raw和wiki的分离是整套方案的骨架:原始资料区只读,整理后的知识页区可写。你往raw里扔东西,AI 负责把它拆解、归类、建双链,写进wiki。

3.4 AGENTS.md 工作规范

AGENTS.md 相当于提前给 AI 写好的员工手册,Codex 每次进入工作区都会先读它。内容要精简,规则太多反而增加探索范围、消耗 token。下面是一份可直接用的版本:

# AI 知识库工作规范 ## 身份 你是本知识库的 AI 管理员,负责把 raw/ 的原始资料整理进 wiki/。默认中文。 ## 文件规则 - raw/:原始资料,只读,不修改、不删除。 - wiki/concepts/:概念、方法、观点。 - wiki/entities/:人物、公司、工具、平台。 - wiki/sources/:原始资料摘要。 - index.md:知识库目录。log.md:整理日志。 ## 整理规则 - 只处理新增或变化的资料。 - 新建页面前先搜索 wiki/,已有相关页面就更新,避免重复。 - 提取有长期价值的观点、方法、案例、数据,不机械复制原文。 - 相关页面用 [[双链]] 连接,重要内容注明来源。 ## 冲突与不确定 - 资料冲突时不擅自覆盖,保留不同观点并注明来源。 - 资料没有的信息不自行补充,无法确认的标记「待确认」。 ## 回答 - 先查 index.md,找到相关页再读取;不足时查 raw/ 原始资料。 - 知识库没有答案就直说,不编造。 ## 修改边界 - 可直接新增、更新知识页和双链。 - 删除文件、大量改名、调整目录结构前先询问我。 - 每次整理后同步更新 index.md 和 log.md。

4. 验证请求:确认 Codex 真的读写了笔记

配置写完不代表生效,得用具体动作验证。下面三步从"能读"到"能写"再到"能检索",逐层确认。

4.1 验证读取:让 Codex 复述目录

在 Codex 工作区(已指向D:\AI知识库)里发送:

读取当前工作区根目录,列出所有文件夹和 Markdown 文件, 并说明 AGENTS.md 里规定的 raw/ 和 wiki/ 各自用途。

预期结果:Codex 能准确列出raw、wiki及其子目录,并复述出 raw 只读、wiki 可写。如果它列不出文件,说明工作区根目录没指对,回到config.toml检查root字段。

4.2 验证写入:投一篇资料让它归档

先在 Obsidian 里往raw/放一篇 Markdown(手动新建或用手动剪藏都行),内容随便写一段带明确主题的文字,比如一段关于"向量检索"的说明。然后在 Codex 发送:

按 AGENTS.md 规则处理 raw/ 里新增的资料,整理进 wiki/: 已有相关页面就更新,没有就新建,避免重复。 完成后更新 index.md 和 log.md,并告诉我新建了哪些页面。

预期结果:wiki/concepts/下出现一个新页面,index.md多了一条目录项,log.md记录了本次处理。回到 Obsidian 左侧文件树刷新,能看到这些变化。如果raw里的文件被改动了,说明只读规则没生效,检查settings.json的readOnlyPaths。

4.3 验证检索:向知识库提问

在同一个工作区里直接提问,比如:

根据知识库内容,向量检索的基本流程分几步?请给出你参考的页面路径。

预期结果:Codex 先查index.md,定位到相关 wiki 页面,再基于页面内容回答,并给出参考路径。如果它答得含糊或说"知识库没有相关内容",说明前面的归档没写进wiki,或者indexing.include没覆盖到。

注意:验证阶段建议一次只放一篇资料,确认链路通了再批量投喂。一次扔几十篇,出问题很难定位是哪一步断的。

5. 本篇常见错排查

配置和验证过程中,下面几个坑出现频率最高。

工作区根目录指错。最常见的是把 Codex 工作区指向了 Obsidian 仓库的某个子目录,而不是仓库根。表现是 Codex 找不到AGENTS.md,或者只能看到部分文件。解决:确认root指向的是包含raw、wiki、AGENTS.md的那一层。

AGENTS.md 没被自动加载。有些客户端需要显式开启autoLoad,或者 AGENTS.md 不在根目录。表现是 Codex 不按规范分类,把概念写进了 entities。解决:检查settings.json的agents.autoLoad和agents.file,确认文件名大小写一致。

raw 被意外改写。只读规则没配好,AI 整理时顺手改了原始资料。表现是剪藏的文章内容变了。解决:readOnlyPaths加上raw,并在 AGENTS.md 里明确写"raw 只读"。已经改坏的从备份或剪藏源恢复。

双链指向不存在的页面。AI 建了[[某概念]]但没建对应页面,Obsidian 里显示为未创建链接。表现是关系图谱里一堆灰色节点。解决:在 AGENTS.md 里要求"建立双链前确认目标页面存在,不存在则先创建",或定期跑一次检查任务清理无效双链。

请求报 401 或鉴权失败。Key 没读到或写错。表现是 Codex 一发请求就报错。解决:确认环境变量名和api_key_env一致,重启客户端让环境变量生效;Key 值前后不要带空格。

请求报 404 或地址错误。base_url写成了带路径的完整接口地址。解决:统一写成https://taotoken.net/api,不要自己拼/v1/chat/completions之类的后缀,具体路径由客户端处理。

整理任务跑不完或循环。一次投喂的资料太多,或max_turns设得太小。表现是任务中途停住。解决:分批投喂,把max_turns调到 40 以上,或拆成"先归档 concepts,再归档 entities"两步。

冲突内容被 AI 擅自覆盖。两篇资料说法不同,AI 直接选了其中一个。表现是 wiki 页面只剩一种观点。解决:AGENTS.md 里明确"冲突不覆盖,保留双方并注明来源",重要冲突让 AI 先列出来给你确认。

排障时如果怀疑是 Key 或通道问题,可以先用模型对话页做一次最小验证,确认 Key 本身可用:

  • 模型对话:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite

6. 长期维护与自动化

知识库跑起来后,维护才是长期成本。时间一长会出现无效双链、孤立页面、前后说法冲突,越堆越乱。这些可以交给 Codex 的定时任务处理。

每周检查任务,在 Codex 里发送:

创建一个每周执行一次的知识库检查任务: 检查无效双链、没有关联的独立页面、以及知识页之间的明显冲突。 发现问题先整理出来给我确认,不要直接修改; 确认后再处理,并把变化记录到 log.md。

每日整理任务:

每天检查一次 raw/ 有没有新增资料: 有就按 AGENTS.md 规则整理进 wiki/,同步更新 index.md 和 log.md; 没有新增就不执行其他操作。

重要原则:涉及观点冲突的内容,不要让 AI 自己拍板。两篇资料说法不同,不代表其中一篇一定错。让 AI 负责发现问题,保留哪个由你决定。

如果你已经在用 PARA 之类的结构,不必新建独立仓库,把raw和wiki映射进现有体系即可,核心原则不变:原始资料区只读,整理后的知识页区可写,规则写进 AGENTS.md。

长期高频跑编码和 Agent 任务的话,Coding Plan 在用量和场景覆盖上更合适,接入方式与上面一致:

  • Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

最后说个实测下来的小经验:AGENTS.md 别一次写满,先放最核心的五六条规则跑一周,看 AI 哪里不听话再补。规则是长出来的,不是一次设计出来的。等这套跑顺了,你往raw里扔文章、PDF、随手笔记,剩下的归档、建链、更新索引全交给 Codex,想找什么直接问就行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询