今天我们发布了 OpenWiki,这是一个开源 Agent 和 CLI,用于自动生成和维护代码库文档。
当 Agent 理解它们所工作的仓库时,它们能写出更好的代码。Agent 需要知道关键逻辑在哪儿、文件之间如何连接、以及代码库遵循哪些模式。好的文档能为 Agent 提供这些上下文,从而带来更明智的代码变更,减少可避免的错误。
问题在于文档很难保持最新。编写初始文档需要时间,而每次代码变更后更新文档则更难。在频繁提交 PR 的大型仓库中,文档很容易迅速过时。
OpenWiki 能自动处理这项工作。它为你的仓库创建一个 wiki,将该 wiki 连接到你的编码 Agent,并在代码变更时保持更新。
为什么为 Agent 建立 wiki
我们受到了现有代码库 wiki 工作的启发,包括 DeepWiki、AutoWiki 以及 Karpathy 的 LLM Wiki 概念。共同的想法很简单:wiki 为人类和 Agent 提供了一种结构化理解代码库的方式,而无需将所有上下文塞进一个巨大的文件里。
这一点很重要,因为大多数编码 Agent 已经通过读取 AGENTS.md 或 CLAUDE.md 这类文件来获取指令。这些文件很有用,但它们不是存放数百页仓库文档的合适位置。它们应该引导 Agent 找到正确的上下文,然后让 Agent 自行检索所需内容。
OpenWiki 遵循这一模式。它生成一个仓库 wiki,然后更新你的 Agent 指令文件,添加对该 wiki 的引用。之后,你的编码 Agent 就能自动发现并使用这些文档。
快速开始
OpenWiki 设计为易于从命令行运行。
通过 NPM 安装:
1npm install -g openwiki
然后运行:
1openwiki --init

--init 命令会要求提供模型提供商和 API 密钥,然后为你的仓库生成文档。
OpenWiki 支持开源和闭源模型提供商,包括 OpenRouter、Fireworks、Baseten、OpenAI 和 Anthropic。默认使用 OpenRouter 和开源模型,但你可以配置最适合你的提供商。
由于 OpenWiki 基于 DeepAgents 构建,它还支持向 LangSmith 进行追踪。如果你提供了 LangSmith API 密钥,OpenWiki 会将运行追踪到 LangSmith 项目,以便你精确检查 Agent 在生成或更新文档时做了什么。
OpenWiki 如何连接到你的编码 Agent
生成 wiki 后,OpenWiki 会更新仓库的 Agent 指令文件。如果你的仓库使用了 AGENTS.md、CLAUDE.md 或两者都用了,OpenWiki 会添加对生成 wiki 的引用,并说明 Agent 何时应该使用它。
我们选择这种方式是因为将整个 wiki 放入指令文件会带来过多的上下文。在大型仓库中,wiki 可能包含数百个文件。每次 Agent 运行时都加载所有这些内容既低效又难以维护。
一个简短的引用效果更好。你的编码 Agent 已经在读取指令文件。一旦 OpenWiki 添加了引用,Agent 在需要仓库上下文时就能找到 wiki,无需你改变工作流程。
保持 wiki 的时效性
一次性地生成文档很有用。而保持文档最新,则是 OpenWiki 更具价值之处。
OpenWiki 包含一个 可以按计划运行的 GitHub Action,例如每天运行一次。该 Action 使用 --update 标志运行 OpenWiki。它会检查自上次运行以来有哪些提交落地,利用 git diff 了解变更内容,然后用相关上下文更新 wiki。
这意味着工作流程可以在后台运行。随着你的代码库变化,OpenWiki 会更新文档。你的编码 Agent 通过已有的指令文件引用,持续获取最新的 wiki。
首先为代码库而生
这次首次发布聚焦于代码库的 wiki。目标是让 Agent 更容易理解它们工作的仓库,而无需开发者手动编写和维护详细的文档。
随着时间的推移,我们认为 OpenWiki 的概念可以更广泛地应用。Agent 在许多工作中都需要持久的上下文,不仅仅是编码。代码库文档是第一个用例,但同样的模式也可以帮助 Agent 在其他工作流中维护有用的上下文。
试试看
OpenWiki 是开源项目,现已可用。
你可以安装它,运行 openwiki --init,几分钟内就能为你的仓库生成一个 wiki。
查看仓库:https://github.com/langchain-ai/openwiki
观看演示视频:https://youtu.be/nIVu3zfYprI





