我把Karpathy的知识库从资料堆改成了Wiki,改到想换Notion

0 阅读8分钟

第一篇写完的时候,我以为这事儿先到这儿了。

前天花了两小时把底子搭起来,Obsidian、Syncthing、五个资料文件夹,该有的都有了。收工,睡觉。

结果昨天一刷推特,Karpathy 发了条推,说他之前那条关于知识库的推突然火了,关注远超预期。然后他做了一件事:单独开了一个 gist,把想法完整展开,开源出来。

我点进去看了一眼。

看完之后,那个"收工"的感觉没了。

gist 里写的东西,和我们昨天搭的底子方向是对的,但他往更深处走了一步:知识库不只有资料层,上面还有结构层、规则层、Agent-first 这一层。我们昨天搭出来的,可能只是第一层。

我顺手把 Karpathy 的 gist 连同 Farza 的视频和 Nick Spisak 的长推一起丢给了 Jarvis:这几个人分别怎么搭的,你帮我拆一下,看看我们自己的知识库接下来该怎么改、该往哪边补。

Jarvis 一条一条拆。拆到一半的时候,它把三个人的做法拉到一起做对比,我跟着看,慢慢意识到一件事:昨天搭起来的那个底子,方向没错,但本质上还只是个资料库。没有 index,没有规则层,没有清晰的入口,也没有真正的 wiki 结构。

我本来想的是今天顺着第一篇的内容稍微往前修一点,补几个文件就完事。结果聊着聊着,问题被抬高了:不是小修小补,是要不要顺着这条线把知识库真的往 Wiki 推一层。

然后整个下午就没了。

拆着拆着,方向就变了

Jarvis 拆完 Karpathy 的 gist 之后,跟我说了一个很直接的问题:昨天我们搭的那套,最多只是底座。资料有了,编译流程有了,但整个知识库没有"入口"。

你想找一个东西,得靠你自己记得放在哪。没有 index,没有目录,没有导航。这不叫 Wiki,这叫文件柜。

然后它把 gist 里几个关键结构拉出来:index.md 做总入口,log.md 记变更历史,AGENTS.md 写规则,再加上 ingest、query、lint 这几个动作层,把"资料怎么进来、怎么被查、怎么保持干净"变成可执行的流程。

不是多了几个文件,而是多了一层操作系统。

Karpathy 让我意识到要补结构。但补完结构之后呢?这个知识库到底是给人用的,还是给 Agent 用的?

Farza 的回答是:都得用。

而且他说了一句让我重新想了一遍的话:知识库如果只为人设计,AI 读起来会很痛苦。格式不统一、信息埋在叙述里、没有结构化标记。反过来,先为 Agent 设计结构,人用起来反而更舒服,因为信息已经被整理过了。

这句话直接改变了我对 AGENTS.md 的定位。我本来想把它写成"给 AI 看的使用说明",看完 Farza 之后,我和 Jarvis 把它改成了整个知识库的规则层,人也好 Agent 也好,进来都要遵守同一套约定。不是两份说明书,是一份宪法。

有意思的是,Karpathy 自己也转发了 Farza 这条。不是谁抄谁,是两条线撞到了一起:Karpathy 管结构,Farza 管用户。而"用户"这个词里,Agent 的权重已经不低于人了。

Nick Spisak 那条推文又把视角往前推了一步。结构有了,方向有了,但一个知识库搭完不是结束,是开始。他聊的是长期维护的事:知识库怎么保持健康?入口工具的边界在哪,什么该进,什么不该进?raw、wiki、outputs、AGENTS 这些层各自的职责怎么划分?

这几条内容堆在一起,我和 Jarvis 的讨论就从"怎么搭"自然滑到了"怎么长期跑"。Nick 提到的那种系统感,raw/wiki/outputs/AGENTS 各管各的,这个想法把我拽住了。

Agent Browser 只能停在 Raw 层

顺着 Nick 那条线的启发,我们聊到了工具边界的问题:知识库的入口到底用什么工具来做?

Nick 的推文里提到过用 Agent Browser 来抓取和收集网页内容。我看到这一段的时候顺手转发给了 Jarvis,说这个思路可以试试。 Jarvis 接过去看了一下,说这个定位是对的:Agent Browser 适合做 Raw 和 Inbox 的入口,抓网页、扔进收集箱、粗筛一遍。但不适合直接写 Compiled 层的内容。

它说了一句话我记得很清楚:"现实世界里动态页面太多,Cloudflare 拦截太多,空壳抓取太多。你让它自动编译,它可能编译出一堆没用的东西。"

我听完觉得有道理,但没完全当回事,直到后来真的去测。

我让它去抓几个网页做测试。有的抓成功了,拿回来的内容干干净净。有的返回了一堆空壳 HTML,页面是动态渲染的,Agent 拿到的只是一个骨架。还有的被 Cloudflare 直接拦了,什么都拿不到。

所以最后的结论是:Agent Browser 只进 Raw/Inbox,抓回来的东西必须人工或 Agent 确认之后才能进 Compiled。不能跳过中间这步。

这个结论不是 Jarvis 算出来的,是测出来的。

在昨天的底子上往上加

到这里,方向已经清楚了。我和 Jarvis 开始一起动手。

昨天已有的东西不动:Obsidian、Syncthing、主题卡、五个资料文件夹。今天是在这上面补一层。

Jarvis 建议先补三个文件:index.mdlog.mdAGENTS.md

index.md 做总入口。一开始搭的是列表版,链接都能点,结构也清晰,我自己觉得挺好看。当时一直用的 GLM-5.1,后来额度用完了,只能切到别的模型继续。切完模型之后顺手接着优化索引页,试了个表格版。每行一个入口,用 Markdown 表格来组织,看着整齐多了。

改完之后点了一下链接,傻了。表格里所有的 wiki link 全部失效,点过去不是空白页就是创建新文件。我回头查才发现,wiki link 里面用 | 分隔文件名和显示名,Markdown 表格也用 | 做列分隔,两者撞在一起,渲染直接炸了。

没纠结,直接切回之前的列表版。本来那个就挺好看的,也更适合当前场景,没必要为了一个排版实验冒险。

log.md 一开始我写成了流水账:"今天加了三个文件,改了 index。" Jarvis 建议改成编年史格式,每次变更带时间戳和原因。这么一改,log 就变成了知识库自己的 git log,谁在什么时候改了什么,为什么改。

AGENTS.md 变成了一个规则层:知识库的结构说明、命名规范、链接规则、什么进 Raw 什么进 Compiled、Agent 的权限边界。相当于给所有 Agent 发了一份员工手册。

我们还统一了一个链接规则:`[[真实文件名|显示名]]`。看起来是小事,但如果不统一,后面的导航会全面崩盘。

中间看到 Farza 那种 wiki 页面形态,觉得那种效果不错,就问 Jarvis:我们是不是也要做成那种 wiki 页面?Jarvis 结合当前情况分析了一下,判断现阶段不需要专门去做那种形态。现有的 Obsidian 结构已经够用,先把当前这套跑稳再说。

最终拿出来的,不是什么完美方案,就是在我的约束条件下,当前最能跑的一版。

收工前顺手装了个东西

搭完结构层,index 能点了,log 能查了,AGENTS.md 也写好了。我靠在椅子上伸了个懒腰,准备收工。

然后我自己刷推特,看到一个叫女娲 skill 的东西,能把别人的内容蒸馏成结构化思维模型。我第一反应是"这个回头再看",手指已经划过去了,又划回来。

算了,丢给 Jarvis 看一眼吧。

它接过去过了一遍,说可以装。我说行,那就试试。本来没抱什么期待,就是收工前随手做的事。

Dan Koe 的内容蒸馏完,出来的东西不太对劲。不是"他说了什么",而是"他怎么想问题、怎么定方向、怎么把一件事拆成可执行的步骤"。变成卡片之后,这些思维模型直接进了知识库的 Compiled 层。

我盯着那些蒸馏出来的卡片看了一会儿,慢慢反应过来一件事:这次装进去的已经不只是 Dan Koe 说了什么,而是他怎么想问题、怎么定方向、怎么把一件事拆成可执行的步骤。知识库这次吃的不是内容,是别人的思维方式。

刚才那个"收工"的感觉,已经回不来了。这一层,我之前完全没想过。

回头看

回到开头。Karpathy 那条推把我的"收工"给炸没了,我这才把几条链接丢给 Jarvis,带着一个模糊但真实的诉求:帮我看别人怎么做的,我们自己的知识库该怎么改。

结果它不只帮我看完了,还告诉我差什么、该往哪走。然后我们俩一起搭、一起测、一起踩坑、一起返工,最后还顺手给它装了个吸收别人思维方式的能力。

今天下午之前,我给 Jarvis 喂链接,它回我摘要。今天下午之后,我给它甩个方向,它开始反问我"要不要往那边补"。

说不上来具体是什么变了。但我觉得从今天开始,这个知识库不只有我一个人在建了。