Transcription
前OpenAI联合创始人、AI大神卡帕西最近提出了他的个人AI知识库理念——LLM Wiki。他摒弃了传统的RAG,转向了一套极简的LLM Wiki系统。那今天我们就用Claude Code和Obsidian来实现卡帕西的这套系统。我们会亲手创建三个skill,配置Claude.md文件,然后让AI智能体为我们构建一整套Wiki架构。我会把所有用到的skill配置文件以及整个知识库都打包上传到我的GitHub上,供大家下载。
那我们就正式开始。首先,卡帕西的理念到底是什么?简单来说,就是把要学习的资料和文章,通过AI智能体(比如Claude Code)转换成Wiki形式的Markdown笔记库。那最好的实现就是Obsidian。然后在这个编译后的笔记库中,利用AI进行持续的学习与探索,把每次学习和总结的重要内容,再次积累到知识库,实现知识的复利。同时对笔记库进行定期的维护和体检,保持系统健康。
那传统的RAG系统,每次问答都是重新搜索知识库,没有任何记忆和积累。而LLM Wiki则是持久化的维护一个知识库,这也是智能体时代个人AI知识库的必然形式。
卡帕西的理念简单来说就是三层架构外加三个核心操作。那三层架构:首先,原始资料层。那这个很好理解,就是我们平时收集或策划的文档集合。那包括剪藏的网络文章、要学习的论文文献、转录的YouTube视频等等。那卡帕西列举的主要工具就是Obsidian Web Clipper,那这个我在之前的视频中也讲过很多次了。
那第二层则是Wiki层,也就是AI智能体对原始资料进行深入分析后生成的Markdown文件目录,包含摘要、实体、概念、对比分析等。那同时还包含索引与日志文件。
第三层就是schema架构规范。那实际上就是智能体工具的配置文件。比如你使用Claude Code,那么就是CLAUDE.md;使用OpenCode,就是AGENTS.md。作用是告诉智能体工具具体的工作流程和规范。
那整个架构的实现,实际上就是智能体工具加Obsidian。那我们今天用的是Claude Code加Obsidian,在Obsidian中使用Claudian插件集成Claude Code。那这些工具我在之前的视频中已经讲过很多次了,大家可以回看我之前的视频。
三个核心操作分别是:ingest摄取、query查询、lint巡检。ingest摄取就是让智能体把原始资料充分消化,并编译成Markdown格式的Wiki笔记库。那query查询就是由你对AI进行提问,从而对知识库进行深入的学习,并将学习整理的内容积累到知识库中。而lint巡检则是对知识库架构的维护,包括双向链接的关联、数据空白的填补、孤立页面的发现等等。那这三个操作,我们会做成3个agent skill。
那接下来,我们就正式上手实现这个知识库。那整个知识库的架构,我已经展示在屏幕上了。我们在电脑端创建一个空白的文件夹作为项目文件夹,然后分别创建raw、Wiki和assets这三个子文件夹。raw就是原始资料的收集层,那这个其实和我们以前使用Obsidian是非常类似的,我一般都取名叫inbox。那在raw文件夹里面,我们创建了几个子文件夹用于分类,分别存放网页剪藏的文章、专业的论文文献和研报、视频和播客的转录文章等等。那另外我们要创建一个archive文件夹,那这些资料被分析完毕后,会归档到archive文件夹。
那Wiki文件夹内,要创建索引文件index.md和日志文件log.md。然后创建几个子文件夹,分别是concepts存放的是方法论、entities存放的是实体概念、sources存放的是针对原始文件一对一提炼出来的摘要、syntheses存放的是你用AI进行深度学习与探索后保存下来的知识积累。
那assets就不用说了,那熟悉Obsidian的同学应该都知道,存放的是媒体资源,也就是图片和附件之类的内容。那在Obsidian的设置中,要把附件文件夹路径设置为这个assets文件夹。
那么到此,我们就完成了文件夹结构的创建。我们用Obsidian打开这个文件夹,然后打开Claudian插件,或者直接用Claude Code打开这个文件夹都是一样的。那直接输入/init,也就是初始化命令,Claude Code就会创建一个CLAUDE.md配置文件以及.claude文件夹。那这里如果你使用的是OpenCode,那么创建的就是AGENTS.md文件,原理都是一样的。大家也可以回看我之前的OpenCode的视频。
那么到此,整个文件夹结构就创建完毕了。我们打开CLAUDE.md,把它自动生成的英文内容都删掉,然后按照我们的需求写入一些中文的约束。那CLAUDE.md就是一个普通的Markdown文件,包含了整个项目的核心规范。你可以直接把你的要求列出来,然后让AI帮你写。那在CLAUDE.md,我们主要约束以下几个内容:首先就是目录结构的权限边界,告诉智能体我们创建的三个文件夹都是做什么用的,并且规定智能体的编辑权限。其次,我们要详细地告诉智能体,在Wiki文件夹中生成内容的时候,要遵守什么样的规范,以及在写入index索引文件和log日志文件的时候,要遵循什么样的格式。再就是生成Markdown笔记的时候,要遵循什么样的规则。那么到这就基本足够了。那这个CLAUDE.md文件对应的就是卡帕西里面中的Schema架构规范这一层。
那么我们的知识库已经搭建完毕,现在我们就开始做深入的学习。我们在浏览器端安装Obsidian Web Clipper这个插件,然后设置插件的保存路径为我们的Obsidian知识库的raw文件夹的articles子文件夹中。然后你就可以在你浏览网页文章的时候进行剪藏了。你也可以手动把你下载的学习资料放置到raw文件夹中。
那我们以AI提示词工程这个知识领域为例子,我这里收藏了一些有关提示词工程的网页文章和论文,包括Gemini的提示词策略、谷歌的提示词工程白皮书,还有一个经典的5C架构的提示词框架论文。
在准备好学习资料之后,我们就可以执行第一步知识的摄取了。我们在.claude文件夹中的skills文件夹里创建一个叫Ingest的文件夹,在这里面新建一个skill.md文件,然后打开这个文件,我们来手动撰写一些skill内容。在开头的yaml元数据部分,添加name和description字段,然后开始撰写skill正文。这个技能主要就是告诉AI如何对raw文件夹下的原始资料进行分析和编译,并生成Wiki内容。那主要包含的就是skill的触发逻辑、执行的步骤以及约束和注意事项。那大家看到这个skill可能会很头疼,但实际上这个skill的编写是我使用skill Creator这个技能来帮我完成的。那skill Creator是Anthropic发布在他们官方GitHub仓库中的skill,那这个skill是专门帮你撰写skill的。你只需要把你的需求告诉智能体,智能体就会调用这个skill Creator来帮你创建相应的skill。那如果大家还是嫌麻烦,那可以直接来GitHub下载我的整个知识库,里面就有写好的skill和Claude.md配置文件。
那整个流程就是让智能体深入分析原始文件,整理并撰写相应的Markdown文件,并建立双向链接,同时更新index索引文件和log日志文件。最后在所有文件处理完毕后,把原始文件移动到archive文件夹中。
那么我们就来看一下执行效果。在智能体窗口中直接输入/ingest就可以触发skill流程。那这里我们在Claude Code里转接的是Kimi K2.5模型。有关Claude Code的转接方法,我在以前的视频中有讲。那卡帕西也说过,你使用Codex或者OpenCode这些智能体都是可以的,原理都是一样的。
智能体处理这些文件需要一定的时间,我们来对视频进行一个加速。那另外我也要提醒大家,大规模的文件读写是非常消耗token的,大家要注意自己的token使用量。
我们可以看到智能体对原始文件进行分析后,撰写了对应的Markdown文件,然后更新了index索引文件和log日志文件。那最后把原始文件归档到了archive文件夹中。那智能体列出了执行完成的任务列表,包括创建的文件、核心知识发现以及重要标注。我们点开知识图谱,看到整个提示词工程相关的概念都被创建在了知识库中,并建立了非常好的双向链接。那点开对应的笔记,就能够查看到具体的内容了。
那我们再来看一下索引文件。那索引文件中按照分类列出了知识库中的详细索引结构。而log日志文件中,清晰地记录了本次操作所处理的内容和创建的文件清单。那这两个文件在后续都有着重要的作用。
那么到此,第一个步骤,也就是知识的摄取就完成了。那接下来我们就可以针对这些知识进行深入的学习了。我们可以向AI进行提问,来深入地探索并学习有关提示词工程的相关内容。
那这里我们来创建第二个skill,也就是query。那这个skill相对比较简单,主要就是要求AI在回答问题之前,永远都要先读取index.md这个索引文件,定位到问题的相关内容,然后深度阅读目标文件,并对问题进行回答。如果生成了有价值的内容,要询问用户是否把内容保存到知识库。那这一点也是LLM Wiki的核心理念,那让知识不断的积累,不断地进化,实现知识的复利。
那这里我也规定了智能体在把这些高质量内容保存回知识库的时候,所要遵循的规范以及内容模板。
那么我们回到智能体的窗口,向智能体提问。那结合5C这个提示词框架,为我设计一个提示词,主要功能是用于撰写Markdown格式的知识笔记。我们可以看到智能体的回复非常的详尽,不但根据5C框架生成了提示词,还生成了使用案例,并询问我是否把这个提示词保存回知识库。啊,我们这里输入确定,保存回知识库。然后智能体就把刚才的这篇内容保存到了Wiki文件夹下的syntheses文件夹内,同时还创建了双向链接,并更新了index索引和log日志文件。
你还可以要求智能体对知识库中相关的知识点的矛盾进行挖掘,或者探索特定的知识盲区,结合你的实际工作来为你进行战略规划。那这一步,你还可以充分利用Obsidian的功能来生成各种各样的产出结果。比如卡帕西就建议可以让AI来生成marp格式的幻灯片。那当然,我们也可以生成Canvas结构图,或者是Excalidraw图表。那这些类型的内容在我上一期视频中有详细的讲解,大家可以回看我上一期的视频。
那么到此,第二个步骤query也就完成了。
那随着知识库越来越庞大,你的知识库也需要定期的进行维护和体检。那这里就是卡帕西理念的第三个步骤,巡检lint。那lint这个单词啊,对于程序员来说非常熟悉,也就是对代码进行健康检查,是否符合代码规范。那针对个人知识库也是一样的,检查页面之间的矛盾、已经被新资料取代的老旧信息、检查没有加入双向链接的孤岛笔记,或者笔记中的死链,以及缺乏独立页面的重要概念。定期生成知识库的体检报告。
我们在skills文件夹内创建一个新的skill,取名叫lint。在skill.md中写入相关的要求,告诉智能体该如何分析我们的知识库。那这里当然要优先读取index索引文件和log日志文件,然后再扫描完整个知识库后,生成一份检查报告,并给出下一步的修复计划。那在这里我们加入了一些约束,让智能体只生成报告,然后在用户确认后才进行修复和修改,而不是自己自行对笔记进行修改。
那我们回到智能体的窗口,直接输入/lint。那智能体就开始扫描整个知识库,并进行健康检查了。那最后生成了完整的报告。我们在报告中可以看到未同步的索引以及多个死链,同时还有一个知识冲突。那智能体还列出了下一步的行动计划,如何对这些问题进行修复。那通过这样的方式,就可以让我们的知识库保持长期的健康。
那么到此,整个流程就已经介绍完毕了。那上述实现方法可以说是,一个最简单的入门级的实现。那实际上我们还可以做很多功能上的扩充,比如集成Obsidian CLI工具。那这一点在卡帕西的文章中也有讲。那卡帕西就建议使用一些CLI工具来辅助AI更高效地操作Wiki。有关Obsidian CLI这个官方命令行工具以及skill,在我之前的视频中也有详细的讲解,大家可以回看我的往期视频。
那我接下来也会在这3个skill中加入技能链,约束智能体在检索知识库的时候使用Obsidian CLI skill。那这样可以大大降低token的消耗,并提升任务的准确性。卡帕西表示自己在40万字左右的知识库中,这套理念运行得非常良好。那持续的进化和积累,特别适合中小团队和个人做深度的学习和研究。那除非你是企业级一样非常庞大的知识库,否则RAG永远都只是现用现搜的冷冰冰的机器。
那总体说来,卡帕西的核心理念描绘的是在智能体时代,个人知识管理的必然形态。人类只做高价值的信息筛选与战略提问,而AI接管所有繁琐的节点编织。
我个人还是想要强调两个注意事项。那第一个就是注意token的消耗。那智能体对token的消耗是有目共睹的,非常的高,大家一定要注意这一点。那另外一点就是要注意AI幻觉的问题。那如果大模型在某次处理中产生了幻觉,那么这个错误同样会被保存到知识库中,未来的学习和推理都会以此为基础,导致错误被无限放大。
那么以上就是今天视频的全部内容。那视频中的笔记,大家可以来我的个人网站下载。你可以在我的频道信息中找到我的个人网站。整个知识库我都打包上传到了GitHub上,那包括视频中所使用的提示词工程的原始资料,大家可以直接下载下来进行尝试。你可以在我的视频描述中找到我的GitHub仓库地址。那如果有任何的问题,欢迎给我留言。那记得点赞关注,谢谢大家。