我造了个知识编译器,让 AI 自动帮我写 Wiki
每天刷的文章、论文、技术博客不少。读的时候觉得这个洞察太好了,三天后只记得个大概,一个月后连大概都忘了。我之前的工作流是读完就收藏,结果收藏夹里躺了 500 篇,一篇都没再打开过。
Karpathy 说过一段让我很触动的话:维护一个个人 Wiki,把读到的所有东西都喂进去,让条目互相引用、不断累积。这样的 Wiki 越喂越聪明,价值是攒出来的,跟一次性的工具完全是两回事。关键在复利:每新加一篇文章,不只是多一个条目,还会顺手更新五个已有页面、创建两个新的交叉链接,让之前没注意到的模式浮出水面。
麻烦在于,手动维护累死人。读完文章要总结,要找相关的 Wiki 页面,手动加引用,再更新索引,比读原文还花时间。所以我造了 Cortex。我脑子里的模型是这样的:Obsidian 当 IDE,负责浏览和阅读;LLM 当编译器,读源材料、写 Wiki;Wiki 本身是代码库,不断增长、重构、累积复利。
最反直觉的一点:Cortex 里面没有任何 LLM 代码。没有 API key,也没有 prompt chain 和 embedding,它就是一个 MCP 服务器,提供 5 个文件读写工具,Claude Code 通过这 5 个工具读源材料、写 Wiki。真正的编译逻辑在哪?在一个 markdown 文件里。这个文件教 AI 怎么思考知识组织:什么时候该新建条目,什么时候更新旧条目,怎么引用来源,什么样的概念值得单独开一页。想改编译方式,改这个 markdown 文件就行,不用改代码,也不用重新部署。
不是用 AI 编程,是在编程 AI。
用起来是这样的:往 Obsidian vault 的 inbox/ 丢链接或文件,下次打开 Claude Code,hook 会自动提醒:"[Cortex] inbox/ 里有 3 个文件等着处理。"接下来 Claude Code 自动执行三步:
- Ingest:读源文件(URL 通过 Jina Reader 转成 markdown),生成元数据,存入
sources/ - Compile:读源文件,决定创建还是更新哪些 Wiki 文章,加上
[[wikilinks]]和来源引用 - Index:更新总索引,记录操作日志
这一切在 Obsidian 里实时可见。新文章冒出来,交叉引用跟着刷新,整个知识图谱肉眼可见地在生长。
整个项目刻意做得很小:15 个源文件,5 个依赖,零数据库,每个决定都是有意为之。没用数据库:manifest 是一个 JSON 文件,索引是 markdown,日志是只追加的 markdown,整个状态人类可读,直接放进 git,版本控制、备份、迁移全是白送的。
搜索也不归 Cortex 管,交给了 qmd,Shopify 创始人 Tobi Lutke 写的、专做 markdown 搜索的 MCP 服务器。Cortex 负责写,qmd 负责读,两个 MCP 服务器各做一件事。编译流水线同样省掉了:没有 DAG,也没有任务队列和 build system,LLM 读 schema、调那 5 个工具,所谓"流水线"就是 agent 的推理过程。模型升级,文章质量跟着升级,代码一行不用动。
服务器本身只暴露五个工具,全部是文件操作。智能在 schema 里,不在服务器里:
| 工具 | 做什么 |
|---|---|
cortex_ingest | 读 URL 或文件,提取内容,存为 source |
cortex_write | 创建或更新 Wiki 文章,自动更新索引 |
cortex_diff | 显示 inbox 里有什么、哪些还没编译 |
cortex_log | 往操作日志里追加记录 |
cortex_status | 返回 vault 统计(source 数、文章数、最后活跃时间) |
架构上我最满意的一个决定:source 不可变,Wiki 可变。source 一旦写入就永不修改,我读过什么,永远有一份原始记录;Wiki 文章则不断更新,加新的交叉引用,总结随着相关源材料增多而完善,过时的结论会被修正。这等于把证据和推理分开了:Wiki 里每句话都能追溯到 source;source 有问题,就更新引用它的 Wiki 文章,source 本身不动。
用了一段时间,最惊喜的事发生在喂了 50 篇 source 之后:一些我没要求生成的文章开始自己出现。AI 发现了跨 source 的主题,自动写出 synthesis 文章,把分散在不同来源里的相关洞察连到一起,这已经超出了"一篇 source 对应一篇 Wiki"的机械映射。复利就体现在这里:每篇新 source 都能和已有的全部知识产生连接,知识越多,每条新知识就越值钱,价值是按指数往上走的。
想试的话,一行命令初始化:
npx cortex-kb init ~/my-wiki
再把 MCP 服务器注册到 Claude Code,往 inbox 丢链接就行。代码在 github.com/xingfanxia/cortex,现在是 Phase 1,核心循环已经跑通,我自己每天在用。Cortex 没有 UI,没有设置页,也没有仪表盘,整个产品就是 5 个 MCP 工具,加一个教 AI 怎么思考的 markdown 文件,剩下的都交给 Obsidian。