Skip to main content
发布于 2026-04-06 · 更新于 2026-04-06
前置阅读:让 LLM 持续维护你的知识库:Karpathy LLM Wiki 模式精读与落地指南 那篇讲的是”一个人 + 个人知识库”。这篇专门讲”一个团队 + 一个代码仓库”下这套模式长什么样。不重复原理,只讲落地差异。

一句话结论(读不下去就只看这一句)

在代码项目里,LLM Wiki 的最高价值不是”自动生成文档”——那是 TypeScript、Prisma、Storybook 这些工具已经干掉的场景——而是沉淀那些目前只存在于 Slack、脑子里、PR 讨论里的”为什么”和”历史脉络”,并让它们不会过期 用一句更直白的话:LLM Wiki 替代的不是 Storybook,而是团队那份三个月没人更新的 Notion

一、场景迁移:从”个人 KB”到”代码项目”,三件事根本改变

Karpathy 原文的默认场景是:一个人读外部文章,LLM 帮他写一份个人 wiki。迁到代码项目,下面三件事会变,而且变得很深: 第三件——触发点从”人主动发起 ingest”变成”git 事件自动触发”——是所有差异里最关键的一个。 它意味着什么?意味着在代码项目里,LLM Wiki 的维护可以挂到 pre-commit hook / PR bot / CI job 上。不再是”我想起来了就跑一下 ingest”,而是”只要代码动了,wiki 就同步动”。 这是代码项目场景相对个人 KB 场景的独特优势:触发器是确定的、事件驱动的、自动化的。人不需要记得去维护。

二、怎么判断一个场景值不值得用 LLM Wiki

在讲具体场景之前,先给一条判断准则,这条准则会贯穿全文:
如果这份文档可以从代码里用工具自动生成,就不要用 LLM Wiki 做——让工具做。 LLM Wiki 适合的是:代码里不存在、只存在于人脑和讨论记录里的那些信息——决策理由、历史脉络、跨模块的叙事、“为什么这么做”、“当初放弃了什么方案”。
这条准则下,可以画出一张很清楚的图:
左半区永远不要交给 LLM wiki——工具生成的结果更准、更新更及时、零维护成本。 右半区才是 LLM Wiki 的主战场。 下面 5 个场景,全部落在右半区。

三、5 个真正值得做的落地场景

每个场景我会给你:
  1. 是什么 —— 一句话
  2. Raw sources —— 原始素材从哪里来
  3. Wiki 长什么样 —— 实际的目录/文件结构
  4. 触发时机 —— 什么事件让 LLM 去更新
  5. LLM 的独特价值 —— 为什么人做不好这件事
  6. ROI —— 收益评估

场景 1:ADR 决策档案(杀手级场景)

是什么:把”为什么我们选了 A 而不是 B”这种决策,从 Slack / PR 讨论 / 会议纪要里打捞出来,变成一份会随时间演化的持久文档。 Raw sources
  • PR 讨论串(特别是 review 里的设计争论)
  • Slack 里的架构讨论串
  • 会议纪要、白板截图
  • RFC 草稿
Wiki 长什么样
每份 ADR 的 schema 可以像这样:
触发时机
  • PR description 或 commit message 里出现 ADR: 前缀 → agent 自动起一份新 ADR
  • 出现”我们为什么不用 X”这类问题时 → agent 查是否已有 ADR,没有就起一份
LLM 的独特价值 做 ADR 这件事本身人是会的,但保持 ADR 最新人是做不到的。 举个例子:你 2026-01 写了”为什么选 Zustand”,2026-03 团队讨论到是不是要加 Redux DevTools 的能力——这个讨论在 Slack 里发生了,没人会想起来回头去更新那份 ADR。半年后,新同事来问同样的问题,前半年那段重要的讨论就丢了 LLM Wiki 模式的 agent 会做这件事:每次发生架构讨论,它主动打开相关 ADR,判断是不是要追加一条:
这是人永远不会主动做的事,但它极其重要——它让决策变成一条有时间线的叙事,而不是一份静态文档。 ROI:⭐️⭐️⭐️⭐️⭐️ 这是我认为所有场景里 ROI 最高的一个。它的替代品(Notion 里的 ADR 模板、Confluence 的 decision log)从来没人维护,而这个是 LLM 自动维护。

场景 2:Feature 总图(“一个 feature 一张页”)

是什么:项目里每个 user-facing feature 都有一张 wiki 页,一页浓缩该 feature 的所有信息——用户流程、涉及的代码路径、相关 API、DB 表、known bugs、owner、metrics dashboard 链接。 Raw sources
  • PRD 文档、Figma 链接
  • app/(features)/<feature>/ 目录下的所有代码
  • 相关 API routes(app/api/...
  • 相关的 Prisma schema 片段
  • Sentry / PostHog 相关 events 的 dashboard
  • 曾经的 bug 修复记录
Wiki 长什么样
一份 checkout.md 可能长这样:
触发时机
  • PR merge 到 app/checkout/**components/checkout/** → agent 更新 checkout.md
  • 新的 Sentry error 频繁出现在这个 feature 的文件里 → agent 主动追加到”历史 Bug”
  • PR description 里明确提到”影响 checkout” → 也触发更新
LLM 的独特价值 你接手一个 feature 想改一个 bug,要花 2 小时从 app/ 翻路由、从 prisma/schema.prisma 找表、从 Sentry 找错误、从 Figma 找设计…… 这些信息本来应该在一个地方,而不是散落在 6 个工具里。 Feature Page 的价值是提供一个入口页,让你不用记得每个工具在哪。更强的是:PR bot 可以在 review 里自动贴一句:
⚠️ 你这次改动触及了 checkout feature。根据 checkout.md 的 Feature Page,相关的技术债包括 “Payment webhook 重试逻辑重复”,你要不要一起处理?
这就让 wiki 从”被动文档”变成了主动的 review 助手 ROI:⭐️⭐️⭐️⭐️ 尤其适合所有权频繁交接的团队(每次新人接手一个 feature 都要花一两天理解现状)。

场景 3:依赖情报页(Dependency Intel)

是什么:每个非平凡的依赖(react-hook-form、zustand、better-auth 这种)都有一页,包含:我们用了哪些子能力、踩过哪些坑、为什么当初选它、升级注意事项。 Raw sources
  • package.json
  • 各库的 CHANGELOG(upstream)
  • 你项目里实际的 import 调用点
  • 历史上的 workaround PR
Wiki 长什么样
一份 react-hook-form.md 的样子:
触发时机
  • package.json 的 dependencies 改动 → agent 重读对应页的”当前版本”和”升级注意事项”
  • 新加一个依赖 → agent 起一份新页(但只对”非平凡”依赖起,lodash 不用)
  • 每周 lint 时,agent 抓一次 upstream CHANGELOG,主动更新”升级注意事项”
LLM 的独特价值 npm outdated 告诉你有 30 个包可以升,但不告诉你每个升级对你代码的实际影响 LLM 的独特价值在于:它能读 upstream CHANGELOG + grep 你的项目,得出一个针对性的影响评估
📦 react-hook-form 7.52 → 7.53 升级建议 upstream CHANGELOG 说 useController 的返回类型收窄了 field.refRefCallback 而不是 MutableRefObject 在你的项目里,我 grep 到以下文件用了 field.ref.current
  • components/ui/select.tsx:52
  • components/forms/PhoneInput.tsx:33
这两处升级后会编译报错,建议升级前先改成 useImperativeHandleuseEffect + callbackRef 的写法。
这是人做不了的——人读 CHANGELOG 能读懂变化,但不会去 grep 整个项目找受影响的调用点。LLM 会。 ROI:⭐️⭐️⭐️⭐️⭐️ 你会发现自己突然敢升级以前不敢碰的依赖了。

场景 4:Bug 档案(Incident Wiki)

是什么:每个线上 bug 一页,包含:表象、根因、修复、涉及文件、关联的 incident。重点是让 LLM 主动做归纳——把表象不同但根因相同的 bug 连起来。 Raw sources
  • Sentry / PostHog 事件详情
  • git commit(特别是 fix: 前缀的)
  • Post-mortem 文档
  • 客诉工单
Wiki 长什么样
一份 bug 页样子:
LLM 的独特价值 人类看 bug 列表,每个都是独立事件。LLM 读完所有 bug 页之后可以主动归纳
🔍 Wiki Lint 发现 bug-2026-03-12bug-2026-04-01bug-2026-04-05 这三个表象完全不同的 bug, 根因可以归纳为同一个概念:“server/client component 边界识别不准”。 建议新建一个概念页 docs/wiki/bugs/concepts/server-vs-client-boundary.md, 把三个 bug 作为该概念的实例连接起来, 并在里面沉淀”怎么预防这类 bug”的通用做法。
这是 LLM Wiki 相对传统 bug tracker 的质变:它不只是记录,它主动做归纳,把”一次性 fix”变成”沉淀为团队规范”。 ROI:⭐️⭐️⭐️⭐️ 中型及以上团队特别有价值。小团队 bug 少时意义有限。

场景 5:Onboarding Wiki(自维护的”代码库导览”)

是什么:给新人的”从零到能改第一个 PR”的导览,但它是自维护的——每次 PR 合并会自动检查 onboarding 里引用的路径、命令、环境变量还在不在,过期了自动打 stale 标记。 Raw sources
  • 整个 repo
  • package.json scripts
  • .env.example
  • 当前的 CI 配置
Wiki 长什么样
触发时机
  • 每次 PR merge → agent 跑一次 onboarding lint:
    • onboarding 里引用的所有文件路径还存在吗?
    • 提到的 pnpm xxx 命令在 package.json 里还有吗?
    • 说的环境变量在 .env.example 里还在吗?
  • 失败的项自动加 > ⚠️ STALE: 这行引用的 xxx 已经不存在,需要更新
LLM 的独特价值 传统 onboarding 文档写完就开始腐烂。代码改了文档没跟上,新人读到过时的东西,第二天得找老同事救命。 LLM Wiki 的区别不是”写得更好”,而是**“每次 PR 合并时它会自动检查自己是不是还准确”。检查不过就打 stale 标记。这让 onboarding 文档有了被动更新**机制——哪怕没人主动去改,它也不会默默腐烂。 ROI:⭐️⭐️⭐️ 高度取决于团队新人频率。每个月来一个新人的团队 ROI 高;一年不招一个人的团队意义有限。

四、反面清单:哪些事不要用 LLM Wiki 做

下面这些场景每一个都能套 LLM Wiki,但都不该套,因为有更好的工具: 判断准则(重复一遍,因为太重要):
如果一份文档可以从代码里用工具自动生成,就不要用 LLM Wiki 做——让工具做。 LLM Wiki 只做”代码里不存在、只存在于人脑和讨论里”的信息。

五、最小起步方案:今天就能在项目里试一下

别一开始就上 5 个场景。按下面的顺序来:

Step 1:起最小骨架(10 分钟)

Step 2:在 CLAUDE.md 加三条规则

Step 3:只做场景 1(ADR),跑两周

别急着上 Feature Page、Dependency Intel 那些。先只跑 ADR,两周之后看感觉对不对:
  • 有没有 ADR 真的被写出来?
  • 写出来的 ADR 自己回头读起来有没有价值?
  • 挑战记录有没有真的发生?
跑对了再加第二个场景。跑不对先问”为什么不对”,大概率是 schema 里的规则写得太抽象 / 太死板,需要修。

Step 4:什么时候加更多场景

以下信号出现时,再加对应场景:
  • 你发现 PR review 里反复问”为什么这样写” → 加 ADR 持续维护(场景 1 的进阶)
  • 你接手一个不熟悉的 feature 花了 2 小时摸索 → 加 Feature 总图(场景 2)
  • 你升级一个依赖时心里发虚 → 加 依赖情报页(场景 3)
  • 连续两三个 bug 看起来根因相似 → 加 Bug 档案(场景 4)
  • 团队来了新人且没人愿意带 → 加 Onboarding Wiki(场景 5)

六、一些常见的合理化,和为什么要挑战它们


七、行动清单

读完这篇你可以立刻做的事:
  • 打开你现在在做的 NextJS(或任何)项目
  • 在根目录的 CLAUDE.md 里加一节「Wiki 维护约定」,只写场景 1(ADR)的三条规则
  • 新建 docs/wiki/decisions/ 目录
  • 选一个你最近在 PR 里讨论过的架构决策,让 agent 起一份 ADR
  • 读一遍生成的 ADR,改掉你不满意的地方,反推修正 schema
  • 两周之后回头看,判断要不要加场景 2
  • 永远不要一上来就做 5 个场景

写在最后

前一篇 til 我们聊了 LLM Wiki 模式的原理,结尾说它最大的优势是”LLM 不会无聊”。 这一篇我们聊了搬到代码项目里能干什么——答案是:它能替你做团队里所有”没人愿意做但又必须做”的那些维护工作
  • ADR 写完就没人回头更新?LLM 会。
  • Feature Page 写完就腐烂?LLM 会自动检查过期。
  • 依赖升级没人敢碰?LLM 会读 CHANGELOG + grep 你的代码,给你针对性的影响评估。
  • Bug 一个一个修、从不归纳?LLM 会主动做跨 bug 的根因归纳。
  • Onboarding 文档写完就烂?LLM 会每次 PR 合并时 lint 一次自己。
你的团队里那份没人更新的 Notion,换成一份 agent 维护的 wiki,会成为团队真正的”制度记忆”。 这是 LLM Wiki 模式在代码项目里最朴素、也最有价值的一件事。

延伸阅读