「我让Claude Code重构一个模块,它把不相关的文件也改了,还删了一个正在用的工具函数。我问它为什么,它说"根据我的理解这个函数没有被调用"——它根本没看到另一个文件里的引用。」
——一个被AI"盲改"坑过无数次的程序员
这个场景你一定不陌生。AI编码工具写新代码很强,但改已有代码时经常"盲人摸象"——它不了解你的项目结构,不知道模块之间的依赖关系,看不懂你的架构设计意图。结果就是:改了A崩了B,修了bug引入了两个新bug。
7月5日,LangChain官方开源了一个叫OpenWiki的CLI工具,专门解决这个问题。5天冲到10000 Stars,4个版本迭代,LangChain创始人Harrison Chase亲自参与开发。
它做的事很简单:自动为你的代码库生成一份AI能读懂的文档,让AI在动手改代码之前先"看懂"你的项目。
一、核心问题:AI为什么总是改错代码
先说清楚问题出在哪。当你用Claude Code或Cursor打开一个项目时,AI能看到的只有文件内容和目录结构。但它看不到的东西太多了:
看不见架构意图
为什么这个模块单独抽出来?为什么这里用了工厂模式而不是直接实例化?为什么这个接口要设计成异步的?这些设计决策藏在开发者的脑子里,AI完全看不到。
看不见模块依赖
A模块调用了B模块的接口,B模块又依赖C模块的数据格式。AI只看到A的代码就动手改,根本不知道改了A会影响B和C。
看不见数据流
用户请求从入口到出口经过了哪些处理步骤?数据在哪一层做了转换?AI不看全局数据流,改一个中间环节就可能导致数据格式不匹配。
你可能会说:"我可以在CLAUDE.md里写项目说明啊。"没错,但问题是:手动写CLAUDE.md太痛苦了。项目一变大就写不动,代码改了文档忘改,最后CLAUDE.md变成过时的废话。这就是OpenWiki要解决的根本问题。
二、OpenWiki做了什么
OpenWiki是一个自动为代码库生成和维护AI文档的CLI工具。跑一遍命令,它会在你的项目根目录生成一个openwiki/文件夹,里面包含:
| 文档内容 | 具体说明 |
|---|---|
| 架构概览 | 项目的整体架构设计,模块划分逻辑,技术选型理由 |
| 目录说明 | 每个目录的职责,文件命名规范,核心文件的作用 |
| 关键模块 | 核心模块的详细说明,包括接口设计、依赖关系、调用链路 |
| 数据流 | 数据在系统中的流转路径,从输入到输出的完整链路 |
但最聪明的设计不是生成文档本身,而是它如何让AI去读这些文档。
OpenWiki在每次运行时,会自动在你的项目根目录维护两个文件:AGENTS.md和CLAUDE.md。在这两个文件里,它会插入一段提示指令,告诉AI编码工具:"在修改代码之前,先读openwiki/目录下的文档。"
这意味着什么?以后你用Claude Code打开项目时,它会自动先读OpenWiki生成的文档,真正理解你的项目结构后再动手。不再是"盲改",而是"看懂了再改"。
三、安装和使用:真的只要一行命令
安装:
npm install -g openwiki
初始化(在你的项目根目录运行):
openwiki code --init
这会启动一个交互式配置向导,让你选择LLM提供商(支持OpenAI、Anthropic、OpenRouter等7+种)和模型。配置完成后,凭据保存在~/.openwiki/.env里。
生成文档:
openwiki "请生成文档"
等它跑完,你的项目里就多了一个openwiki/目录,同时AGENTS.md和CLAUDE.md也自动创建好了。
代码变了?增量更新:
openwiki code --update
只刷新变动的部分,不会全量重新生成。已存在的AGENTS.md和CLAUDE.md中你自己写的内容也不会被覆盖——OpenWiki只更新<!-- OPENWIKI:START -->和<!-- OPENWIKI:END -->标记之间的内容。
四、和手动写CLAUDE.md的对比
你可能觉得"我自己写CLAUDE.md不就行了?"。可以,但对比一下:
❌ 手动写CLAUDE.md
写一次2小时,项目变大后写不动。代码改了文档忘改,3个月后文档和代码完全脱节。AI读了过时文档反而更危险。不同工具需要分别写CLAUDE.md和AGENTS.md。
✅ OpenWiki自动生成
一行命令5分钟生成。代码变了跑一次update增量刷新。同时维护CLAUDE.md和AGENTS.md,Claude Code和Cursor都能用。CI/CD自动定时更新,文档永远和代码同步。
更关键的是:OpenWiki生成的文档是AI视角的。它不是写给人类看的README,而是专门组织成AI最容易理解和引用的结构——架构决策、依赖关系、数据流路径,这些正是AI改代码时最需要的信息。
五、CI/CD自动更新:文档永远不过时
OpenWiki最实用的功能之一是CI/CD集成。你可以配置GitHub Actions每天自动跑一次OpenWiki,生成的文档通过PR提交审核:
# .github/workflows/openwiki-update.yml
on:
schedule:
- cron: "0 8 * * *" # 每天早上8点
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: "22" }
- run: npm install --global openwiki
- run: openwiki code --update --print
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
- uses: peter-evans/create-pull-request@v7
with:
add-paths: openwiki
branch: openwiki/update
title: "docs: update OpenWiki"
这样你的项目文档会自动跟随代码变化更新,永远不会过时。AI每次打开项目读到的都是最新的架构说明。GitLab CI的模板也在官方examples/目录里。
六、和同类工具的对比
市面上不只有OpenWiki在做AI文档生成,但它有独特的优势:
| 项目 | Stars | 定位 | 给谁看 | 核心差异 |
|---|---|---|---|---|
| OpenWiki | ~10K | AI Agent文档生成 | AI Agent | LangChain背书、轻量、增量更新、CI集成 |
| DeepWiki-Open | 17K | Wiki页面生成 | 人类 | 页面美观可交互,但不是给AI读的 |
| GitNexus | 43K | 知识图谱索引 | AI Agent | MCP协议动态探索,和OpenWiki可互补 |
OpenWiki和GitNexus可以互补——前者让AI先读静态文档了解全貌,后者让AI动态探索代码细节。两个一起用效果更好。
七、支持的AI编码工具和模型
OpenWiki通过生成AGENTS.md和CLAUDE.md两个文件来适配不同的AI编码工具:
CLAUDE.md → Claude Code
Anthropic的Claude Code会自动读取项目根目录的CLAUDE.md文件。OpenWiki在里面插入的提示指令会引导Claude先读openwiki/文档。
AGENTS.md → Cursor / Codex / Windsurf 等
AGENTS.md是通用的AI Agent协议文件,Cursor、Codex CLI、Windsurf等支持该规范的工具都会自动读取。一份文档,多工具通用。
支持的LLM提供商包括:OpenAI、Anthropic、OpenRouter、Fireworks、Baseten、NVIDIA NIM,以及任何OpenAI兼容的端点(比如LiteLLM网关)。你甚至可以用ChatGPT登录而不需要单独的API key。
八、一个程序员的视角
我用Claude Code快半年了,最大的痛点不是AI写不好代码,而是AI改不好代码。
写新功能时AI很厉害——给它需求,它从零开始写,代码质量甚至比有些初中级工程师还好。但一旦让它在已有项目里改东西,问题就来了:它不知道这个函数被谁调用,不知道那个配置项为什么这么设,不知道改了这个接口会影响下游哪些模块。
我之前试过手动写CLAUDE.md,写了大概300字就写不动了——项目太大,每个模块都要解释,写完这部分另一部分又变了。最后CLAUDE.md变成了一堆过时的废话,AI读了反而更困惑。
OpenWiki解决的核心问题是:把"让AI理解你的项目"这件事从手动变成自动。你不需要写任何文档,跑一行命令,AI就能获得一份完整的架构地图。代码变了再跑一次update,文档自动跟上。
用了之后的直观感受:AI改代码时的"误伤"明显减少了。以前改一个接口定义,AI不知道下游谁在用,经常改完就崩。现在它先读了OpenWiki的模块依赖文档,知道这个接口被3个模块调用,改的时候就会主动检查这3个模块的兼容性。
这不是一个"让AI更聪明"的工具,而是一个"让AI更了解你的项目"的工具。AI的智力没变,但它获得的信息质量变了——从"只看到代码"升级到"理解了架构"。
九、注意事项
1. 当前版本0.1.1,仍处于早期阶段。有107个open issues,部分功能可能不稳定。建议先在非核心项目上试用。
2. 需要LLM API。OpenWiki本身免费,但生成文档需要调用LLM API,会产生token费用。建议用便宜的模型(如GLM-5.2或GPT-5.6 Luna),生成一次文档的API成本通常不到1美元。
3. Windows用户注意。如果用Bun安装可能需要编译better-sqlite3依赖,建议用npm而非bun安装。
4. 文档质量取决于模型。用Opus或GPT-5.6 Sol生成的文档质量明显高于用小模型。如果你对文档准确性要求高,建议用好一点的模型生成,然后用便宜模型做update。
5. 不替代人类文档。OpenWiki生成的是AI视角的架构文档,不是给团队新人看的onboarding指南。两者互补,不替代。
总结
OpenWiki解决的是一个所有AI编码用户都遇到过但一直没有好解决方案的痛点:AI不懂你的项目。
手动写CLAUDE.md太痛苦且容易过时,不写又让AI"盲改"。OpenWiki把这件事自动化了——一行命令生成,一行命令更新,CI自动维护,同时适配Claude Code和Cursor。LangChain的品牌背书加上5天1万星的速度,说明这个痛点确实是普遍存在的。
如果你每天都在用AI编码工具改已有项目代码,今天就花5分钟装一个试试。生成的openwiki/目录不需要提交到仓库(加入.gitignore即可),但它会让你的AI编码体验有一个质的提升——从"盲改"到"看懂了再改"。
# 安装
npm install -g openwiki
# 在项目根目录运行
openwiki code --init
# 生成文档
openwiki "请生成文档"
# 代码变了后增量更新
openwiki code --update
你被AI"盲改"坑过吗?试试OpenWiki,评论区聊聊效果👇
夜雨聆风