乐于分享
好东西不私藏

代码写完了文档怎么办? – 自动生成代码文档

代码写完了文档怎么办? – 自动生成代码文档

写文档这件事,99% 的开发者都知道重要,但 90% 都选择”等有空再写”。LangChain 开源的 OpenWiki 给出了一个”作弊方案”:让 AI 替你写文档,写完还能放进 CI 自动更新。


什么场景下需要用?

场景 1:项目起步时,快速生成初始文档

新项目搭好了架子,功能也跑了七七八八,但文档还是一张白纸。OpenWiki 跑一遍,自动分析整个代码库,生成涵盖项目架构、模块说明、API 接口的初始 Wiki。而且它会把生成结果写入 openwiki/ 目录,根据你的代码库结构自动生成 AGENTS.mdCLAUDE.md 文件——告诉你的 AI 编程助手”文档在这里,以后查项目先看这里”。

场景 2:代码更新了,文档也需要同步

项目迭代半年后,文档早就和代码”分道扬镳”了。Flask 改成了 FastAPI,模块拆了又重建,但 README 还在说”这是一个 Flask 项目”。OpenWiki 的 --update 模式能对比代码变化,只更新有变动的部分,而不是全量重写。还可以配置 CI 工作流,让文档更新像 CI 测试一样自动化。

场景 3:多人协作时确保文档一致性

团队协作中,文档分散在 Notion、飞书、Confluence 等多个平台,各说各话。OpenWiki 生成的文档直接放在代码仓库里,和代码一起版本控制。每次合并请求都会触发文档更新检查,保证合并后的代码和文档永远同步。

怎么用?

安装

npm install -g openwiki

就这一条命令。OpenWiki 是用 Node.js 写的,全局安装后即可使用。

快速开始

初始化配置:

openwiki --init

首次运行会引导你配置 LLM 提供商(支持 OpenRouter、OpenAI、Anthropic 等)和 API Key。配置信息保存在 ~/.openwiki/.env

生成项目文档:

openwiki

进入交互式 CLI,OpenWiki 会分析整个代码库并开始生成文档。

一行命令生成并退出:

openwiki "请为这个仓库生成完整的代码文档"

只生成不交互:

openwiki -p "Summarize what you can do"

-p--print 模式执行一次操作后打印结果并退出,适合脚本调用。

进阶用法

配置 CI 自动更新文档:

GitHub Actions 用户,复制 OpenWiki 提供的 workflow 文件到项目:

cp node_modules/openwiki/examples/openwiki-update.yml .github/workflows/

这样每次代码合并后,GitHub Actions 会自动运行 OpenWiki 更新文档并提交 PR。

GitLab CI 用户同理,复制:

cp node_modules/openwiki/examples/openwiki-update.gitlab-ci.yml .gitlab-ci.yml

自定义 LLM 提供商:

# 使用 Anthropic 的替代网关
export
 OPENWIKI_PROVIDER=anthropic
export
 ANTHROPIC_API_KEY=your-key
export
 ANTHROPIC_BASE_URL=https://your-gateway.example.com/anthropic

# 或使用 OpenAI 兼容网关

export
 OPENWIKI_PROVIDER=openai-compatible
export
 OPENAI_COMPATIBLE_API_KEY=your-gateway-key
export
 OPENAI_COMPATIBLE_BASE_URL=https://your-gateway.example.com/v1
export
 OPENWIKI_MODEL_ID=your-gateway-model-name

更新已存在的文档:

openwiki --update

OpenWiki 会检测仓库变化,只更新有变动的文档部分,而不是覆盖你手动修改的内容。

注意事项

  • • OpenWiki 生成的是代码文档(架构、API、模块说明),不是 API 参考文档(自动生成函数签名那种)
  • • 配置的 LLM 模型质量直接影响文档质量,推荐使用能力较强的模型
  • • 生成内容后建议人工审阅,AI 生成的文档可能有理解偏差
  • • 文档默认放在 openwiki/ 目录,不要和手写文档混放

总结

OpenWiki 解决了写文档最大的障碍——”懒得开始”。自动化分析、生成、更新,让文档不再成为代码库的”后娘养的孩子”。这个 LangChain 出品的项目在 GitHub 上已有 7,453 Stars,适合所有需要提升文档质量但人手不足的团队。