AI News HubLIVE
站内改写2 分钟阅读

OpenWiki:为编程代理提供开源仓库文档

OpenWiki 是一个开源代理和命令行工具,用于自动生成和维护代码库文档。它创建仓库维基,连接编程代理,并通过 GitHub Action 持续更新文档,帮助代理更好地理解代码库上下文,从而提高编码效率。

今天,我们发布了 OpenWiki——一个用于生成和维护代码库文档的开源代理和命令行工具。

编程代理在理解其工作的仓库时能写出更好的代码。它们需要知道关键逻辑位于何处、文件如何连接以及代码库期望遵循哪些模式。良好的文档能让代理获得这些上下文,从而做出更明智的代码变更并减少可避免的错误。

问题在于文档难以保持最新。编写初始文档需要时间,而每次代码变更时更新文档则更为困难。在频繁提交 PR 的大型仓库中,文档可能迅速过时。

OpenWiki 自动处理了这项工作。它为你的仓库创建一个维基,将该维基连接到你的编程代理,并在代码变更时保持更新。

为何使用维基为代理服务

我们受现有代码库维基项目的启发,包括 DeepWiki、AutoWiki 和 Karpathy 的 LLM 维基概念。共同的想法很简单:维基让人和代理能够以结构化方式理解代码库,而无需将所有上下文强制塞入一个巨大的文件中。

这很重要,因为大多数编程代理已经读取 AGENTS.md 或 CLAUDE.md 等文件获取指令。这些文件很有用,但并非存储数百页仓库文档的合适位置。它们应该将代理指向正确的上下文,然后让代理自行检索所需内容。

OpenWiki 遵循这一模型。它生成仓库维基,然后在代理指令文件中更新对该维基的引用。此后,你的编程代理可以自动发现并使用文档。

快速开始

OpenWiki 旨在易于从命令行运行。

通过 npm 安装:

npm install -g openwiki

然后运行:

openwiki --init

init 命令会询问模型提供商和 API 密钥,然后为你的仓库生成文档。

OpenWiki 支持开放和封闭模型提供商,包括 OpenRouter、Fireworks、Baseten、OpenAI 和 Anthropic。默认情况下,它使用 OpenRouter 的开放模型,但你可以配置最适合你设置的提供商。

由于 OpenWiki 基于 DeepAgents 构建,它还支持向 LangSmith 追踪。如果你提供 LangSmith API 密钥,OpenWiki 会将运行追踪到 LangSmith 项目,以便你检查代理在生成或更新文档时所做的具体操作。

OpenWiki 如何连接到你的编程代理

生成维基后,OpenWiki 会更新仓库的代理指令文件。如果你的仓库使用 AGENTS.md、CLAUDE.md 或两者兼用,OpenWiki 会添加一个对生成维基的引用,并说明代理何时应使用它。

我们选择这种方法是因为将整个维基放在指令文件中会添加太多上下文。在大型仓库中,维基可能包含数百个文件。将所有这些内容加载到每次代理运行中既浪费又难以维护。

简短的引用效果更好。你的编程代理已经读取指令文件。一旦 OpenWiki 添加引用,代理就能在需要仓库上下文时找到维基,无需你改变工作流程。

保持维基最新

一次性生成文档很有用,但保持它们最新才是 OpenWiki 更具价值之处。

OpenWiki 包含一个 GitHub Action,可以按计划运行(例如每天一次)。该 Action 使用更新标志运行 OpenWiki。OpenWiki 检查自上次运行以来有哪些提交落地,利用 git diff 了解变更内容,然后使用相关上下文更新维基。

这意味着工作流程可以在后台运行。随着代码库的变更,OpenWiki 更新文档。你的编程代理通过现有的指令文件引用持续获取最新维基。

首先为代码库构建

此首次发布专注于代码库维基。目标是让代理更容易理解它们工作的仓库,而无需开发者手动编写和维护详细文档。

随着时间的推移,我们认为 OpenWiki 的概念可以更广泛地应用。代理不仅需要编写代码,还需要为多种工作提供持久上下文。代码库文档是第一个用例,但同样的模式可以帮助代理在其他工作流程中维护有用的上下文。

试试看

OpenWiki 现已开源。

你可以安装它,运行 openwiki --init,并在几分钟内为你的仓库生成维基。

在此查看仓库:https://github.com/langchain-ai/openwiki