
1. 为什么扁平 Markdown 文件夹才是 AI Agent 的舒适区先说结论如果你打算让 Claude Code 这类能直接读磁盘的 Agent 帮你管理知识最省事的做法不是把笔记塞进某个带图谱、带双向链接的 App而是准备一堆普通.md文件再在根目录放一份CLAUDE.md当导航地图。这套组合我实测下来比任何插件生态都稳。核心检索词先摆出来扁平 Markdown 知识库 CLAUDE.md 行为规范 Claude Code 读取本地笔记这三件事拼起来就是一套能跑通读写闭环的 AI 原生第二大脑。它适合谁适合已经有一堆零散笔记、想让 AI 帮忙检索和整理、又不想被某个软件格式绑架的人。你不需要会写脚本只要会建文件夹、会写 Markdown 就行。为什么笔记 App 反而成了中间层因为它们的本能是把信息锁进自己的格式里。专有链接、嵌套数据库、插件依赖这些东西对人来说可能是可视化便利但对 Agent 来说就是一层毛玻璃——它得先猜包装规则才能读到内容。而纯文本文件就像把食材从密封盒里倒出来摆在台面上Agent 直接打开就能用你也能随时用任意编辑器改。我踩过的坑是一开始总想着把旧笔记全量迁移进来结果格式转换耗掉大半天Agent 读起来还是各种断链。后来改成先建骨架、内容随用随补反而顺畅了。扁平结构的关键原则只有一条——一个主题对应一个文件。notes/放事实与专题people/放联系人卡片projects/放项目进度根目录再放MEMORY.md、LEARNINGS.md、decisions.md这类长期记忆文件。没有嵌套数据库没有专有链接只有标准 Markdown 标题和列表。这套结构为什么对 Agent 友好因为目录本身就是语义导航。Agent 启动时先读CLAUDE.md知道每个文件夹是干什么的、命名规则是什么、找不到信息时该怎么回答。然后它根据你的问题定位到具体文件解析内容合成答案并附上引用。整个过程不需要你额外提示也不需要中间层做格式转换。你只负责保持结构干净检索交给 Agent。再补一个对比方便你判断要不要动手维度复杂笔记 App 方案扁平 Markdown CLAUDE.md数据可读性专有格式需插件或导出纯文本任意编辑器与 Agent 直接读取维护成本插件更新、同步冲突、界面学习只需遵守命名与一主题一文件Agent 检索准确度中间层干扰易幻觉地图明确路径失败时诚实报告迁移与备份依赖软件生态整个文件夹复制即可跨机器零成本上手时间小时级配置与学习五分钟建好骨架边用边填所以这一节想说的是别把第二大脑想得太重。扁平 Markdown 文件夹加一份地图文件就是让 Agent 像本地同事一样工作的最低成本方案。下一节我们解决另一个卡点——怎么用一条 API 通道把 Claude Code 接进来让这套本地知识库真正被 AI 读写。2. TaoToken 统一 Key 接入 Claude Code 的前置准备本地骨架建好之后下一步是让 Claude Code 能稳定调用模型。这里我用的是 TaoToken 的统一 Key 方案一条 API 通道同时覆盖对话、编码和 Agent 场景省得在多个平台之间来回切换 Key。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置时别写错。前置准备其实就三件事拿到 Key、确认 Base URL、想清楚用哪个 Model ID。这三件套在 Claude Code、Cline、Codex 的auth.json里都是必须的缺一个都跑不起来。我建议你先把它们记在一个临时文本里后面配置直接复制。第一步打开控制台创建 API Key。入口在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 登录后进 API Keys 页面新建一个 Key 并复制保存。这个 Key 只显示一次丢了就得重建所以别偷懒。如果你还没决定用哪个模型可以先到模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 试几句确认响应正常再往下走。第二步确认 Base URL。Claude Code 走的是 Anthropic 兼容协议Base URL 填https://taotoken.net/api即可。注意不要在后面多加/v1之类的路径除非文档明确要求。我见过有人把 Base URL 写成带斜杠结尾的结果请求 404排查半天才发现是路径拼接问题。第三步选 Model ID。这一步最容易出错因为不同客户端的模型名写法不一样。Claude Code 里通常用claude-sonnet-4-5这类标识具体以你控制台里看到的为准。如果你用的是 Coding Plan 长期编码方案入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 里面会给出推荐的模型组合适合长时间跑 Agent 任务。这里插一句为什么强调统一 Key因为第二大脑这套东西你既要用 Claude Code 读本地笔记又可能用 Cline 做 MCP 工具调用还可能用 Codex 跑批量任务。如果每个客户端配一套 Key管理成本很高还容易在环境变量里搞混。统一 Key 加统一 Base URL换客户端时只改 Model ID 就行心智负担小很多。前置准备做完你应该手上有三样东西一个 API Key、Base URLhttps://taotoken.net/api、一个确认可用的 Model ID。接下来就是把这些写进配置文件让 Claude Code 真正连上。如果你对某个客户端的配置路径不熟可以查接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 里面有各端的详细说明。注意Key 属于敏感信息不要提交到 Git 仓库也不要写进会被同步到公共空间的笔记里。建议放在本地环境变量或客户端自己的配置文件中。3. 可复制配置settings.json 与 CLAUDE.md 模板这一节直接给可复制的片段你照着改就行。先解决 Claude Code 的接入配置再给 CLAUDE.md 模板最后把两者串起来。Claude Code 的配置通常放在用户目录下的.claude/settings.json路径是~/.claude/settings.json。如果你用的是项目级配置也可以放在项目根目录的.claude/settings.json。内容结构如下把YOUR_API_KEY换成你刚才复制的 KeyModel ID 换成你确认可用的那个{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_API_KEY, ANTHROPIC_MODEL: claude-sonnet-4-5 } }如果你用的是 Cline 或 Codex配置位置不同但三件套一致。Cline 在 VS Code 设置里填 Base URL、API Key、Model IDCodex 的auth.json通常放在~/.codex/auth.json结构类似{ base_url: https://taotoken.net/api, api_key: YOUR_API_KEY, model: claude-sonnet-4-5 }注意auth.json里的字段名可能随版本变化以你本地客户端实际读取的为准。如果启动时报OAuth相关错误多半是认证方式选错了检查是不是把 API Key 模式误设成了 OAuth 模式。接下来是 CLAUDE.md 模板。这个文件放在你的知识库根目录Claude Code 每次会话启动时会自动载入。模板如下你可以直接复制后按需精简# 项目知识地图CLAUDE.md ## 目录结构 - notes/主题事实一文件一主题 - people/联系人与会议纪要 - projects/项目状态与下一步 ## 命名规则 - 全部小写 连字符 - 文件名即主题tax-policy.mdivan-petrov.md - 禁止把无关内容塞进同一文件 ## 读取协议 1. 先查本文件确定路径 2. 打开对应 .md引用原文作答 3. 找不到就明确说知识库中无此信息禁止幻觉 ## 常驻上下文 MEMORY.md decisions.md这里解释几个关键点。MEMORY.md和decisions.md是进阶用法用路径把核心文件提前挂进 Agent 的工作记忆。但只对真正需要持续关注的内容使用否则上下文会膨胀反而拖慢响应。我一般只挂两个文件多了就删。命名规则那部分别小看。一文件一主题是成败关键。把税收政策和公司组织架构塞进同一个notes.md就像把盐和糖混在一个罐子里Agent 检索时必然出错。文件名直接用主题统一小写连字符消除歧义。读取协议里的第 3 条也很重要——明确告诉 Agent 找不到就说找不到禁止幻觉。这一条能大幅降低它编造答案的概率。实测下来加上这句之后Agent 在知识库没有相关内容时会老实报告而不是硬凑一个看起来合理的回答。配置写完建议先别急着跑复杂任务。下一节我们用一次端到端验证确认读写闭环真的通了。4. 端到端验证让 Claude Code 读一篇本地笔记配置写好了现在做一次最小验证。目标很简单让 Claude Code 读取你知识库里的一篇笔记并基于原文回答问题。这一步能同时验证 API 通道、CLAUDE.md 载入、文件检索三个环节。先建骨架。在任意目录下建三个文件夹和几个根文件mkdir -p second-brain/notes second-brain/people second-brain/projects cd second-brain touch MEMORY.md LEARNINGS.md decisions.md CLAUDE.md然后把上一节的 CLAUDE.md 模板写进去。接着在notes/里建一篇测试笔记比如notes/api-gateway.md内容随便写几句# API 网关 API 网关是客户端和后端服务之间的统一入口。 它负责鉴权、限流、路由转发。 我们当前用的是 TaoToken 统一 Key 方案Base URL 是 https://taotoken.net/api 。现在打开 Claude Code在second-brain目录下启动。它会自动读取根目录的 CLAUDE.md。你输入请读取 notes/api-gateway.md告诉我 API 网关负责哪三件事并引用原文。如果一切正常Claude Code 会先根据 CLAUDE.md 定位到notes/目录打开api-gateway.md然后回答鉴权、限流、路由转发并附上引用。这就说明读写闭环通了。再测一个反向场景验证它不会幻觉。输入知识库里有没有关于 Kubernetes 集群升级的记录因为你的知识库里根本没有这个主题正确行为是回答知识库中无此信息。如果它编了一段升级步骤出来说明 CLAUDE.md 里的读取协议没生效检查是不是文件没放对位置或者 Agent 没读到。验证通过后你可以试着让它做一次写入。比如请在 projects/ 下新建一个 second-brain.md记录当前项目状态骨架已建好API 通道已验证下一步填充 notes/。Claude Code 会创建文件并写入内容。你回到编辑器里刷新应该能看到新文件。这一步验证的是写能力也是第二大脑从只读检索升级到读写闭环的关键。整个验证过程不需要装脚本不需要额外软件。任意文本编辑器加一个 Claude Code五分钟建骨架一次对话验证。如果你在验证时遇到报错下一节列了几个常见错和排查方法。5. 常见报错排查401、local proxy failed 与 reading choices这一节按真实报错来。你在接入和验证过程中大概率会碰到下面几个我按出现频率排一下。401 Unauthorized。这是最常见的基本是 Key 问题。先检查settings.json或auth.json里的 API Key 有没有复制完整有没有多余空格。再确认 Base URL 是不是https://taotoken.net/api别写成带/v1的路径。如果 Key 确认没问题还是 401去控制台看看这个 Key 是不是被禁用或额度用完了。还有一种情况是环境变量覆盖了配置文件比如你系统里之前设过ANTHROPIC_API_KEY那客户端可能优先读环境变量导致配置文件里的新 Key 没生效。排查方法是在终端里echo $ANTHROPIC_API_KEY看一眼。local proxy failed。这个报错通常出现在客户端尝试走本地代理但连不上时。先确认你没有配置任何本地代理端口比如127.0.0.1:7890这类。如果有把它清掉让请求直连 Base URL。另外检查防火墙或安全软件有没有拦截 Claude Code 的出站请求。这个错和网络环境有关不是 Key 的问题所以别在 Key 上浪费时间。reading choices 相关报错。这个一般出现在模型返回格式不符合预期时比如客户端解析响应体失败。常见原因是 Model ID 写错了或者 Base URL 指向了不兼容的端点。先确认 Model ID 和控制台里看到的一致再确认 Base URL 没有多余路径。如果用的是 Coding Plan检查是不是把对话模型名用在了编码场景两者有时不通用。OAuth 相关报错。如果你看到认证方式相关的错误多半是客户端把认证模式设成了 OAuth而你应该用 API Key 模式。去客户端设置里找认证方式选项切换成 API Key然后重新填三件套Base URL、Key、Model ID。这三个在任何客户端里都是必须的缺一个都会报认证失败。再补一个非报错但很常见的坑CLAUDE.md 没被载入。表现是 Agent 不按你定义的目录结构去找文件而是瞎猜路径。排查方法是确认 CLAUDE.md 在启动目录的根下文件名大小写正确。有些客户端对文件名敏感claude.md和CLAUDE.md可能不一样。另外确认文件内容没有语法错误Markdown 标题和列表正常。如果排查完还是不通建议直接查接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 里面有各客户端的配置示例和最新字段说明。文档更新比博客快以文档为准。6. 把这条通道用起来从验证到日常验证通过之后这套东西怎么日常用我的做法是把它当成一个随时能问的本地知识助手。写新笔记时直接让 Claude Code 读旧笔记做关联做项目复盘时让它扫projects/下的状态文件汇总卡点和下一步整理联系人时让它从people/里提取会议纪要的关键决策。如果你打算长期跑编码和 Agent 任务Coding Plan 入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 适合需要稳定通道的场景。如果只是偶尔验证模型效果模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 就够了。Key 管理在控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite API Keys 页面可以随时新建和吊销。最后给一个实用技巧CLAUDE.md 不要一次写太长。我最初把目录结构、命名规则、读取协议、常驻上下文全塞进去结果上下文占用太高Agent 响应变慢。后来精简到只留必要信息把详细说明拆到单独的docs/文件里需要时再让 Agent 去读。地图要短路径要准这才是 CLAUDE.md 的正确用法。现在你的骨架、配置、验证都跑通了接下来最想优先填充的是notes/、people/还是projects/直接建文件开始填就行边用边补比一次性迁移高效得多。