本日、コードベースのドキュメントを生成・維持するためのオープンソースエージェントおよびCLIツール、OpenWikiをリリースしました。
コーディングエージェントは、作業中のリポジトリを理解することで、より良いコードを書くことができます。エージェントは、主要なロジックがどこにあるか、ファイルがどのように接続されているか、コードベースが期待するパターンを知る必要があります。適切なドキュメントはエージェントにそのコンテキストを提供し、より情報に基づいたコード変更と回避可能なミスの減少につながります。
問題は、ドキュメントを最新の状態に保つのが難しいことです。最初のドキュメントを作成するには時間がかかり、コードが変更されるたびに更新するのはさらに困難です。頻繁にPRが行われる大規模なリポジトリでは、ドキュメントはすぐに古くなってしまいます。
OpenWikiはその作業を自動的に処理します。リポジトリのWikiを作成し、そのWikiをコーディングエージェントに接続し、コードの変更に応じて更新を維持します。
なぜエージェントのためのWikiなのか
私たちは、DeepWiki、AutoWiki、KarpathyのLLM Wikiコンセプトなど、既存のコードベースWikiに関する作業から着想を得ました。共通のアイデアはシンプルです。Wikiは、すべてのコンテキストを1つの巨大なファイルに強制的に詰め込むことなく、人間とエージェントがコードベースを構造的に理解する方法を提供します。
これは重要です。なぜなら、ほとんどのコーディングエージェントはすでにAGENTS.mdやCLAUDE.mdなどのファイルを指示として読み取っているからです。これらのファイルは便利ですが、数百ページにも及ぶリポジトリドキュメントを保存するための適切な場所ではありません。それらはエージェントを適切なコンテキストへ導き、エージェントが必要なものを取得できるようにするべきです。
OpenWikiはこのモデルに従います。リポジトリWikiを生成し、エージェントの指示ファイルにそのWikiへの参照を追加します。その後、コーディングエージェントはドキュメントを自動的に発見して使用できます。
はじめに
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がコーディングエージェントに接続する方法
Wikiを生成した後、OpenWikiはリポジトリのエージェント指示ファイルを更新します。リポジトリがAGENTS.md、CLAUDE.md、またはその両方を使用している場合、OpenWikiは生成されたWikiへの参照を追加し、エージェントがいつそれを使用すべきかを説明します。
このアプローチを選択したのは、Wiki全体を指示ファイルに含めるとコンテキストが多すぎるからです。大規模なリポジトリでは、Wikiは数百のファイルに及ぶ可能性があります。それらすべてを毎回のエージェント実行にロードするのは無駄であり、維持が困難です。
短い参照の方がうまく機能します。コーディングエージェントはすでに指示ファイルを読み取っています。OpenWikiが参照を追加すると、エージェントはリポジトリコンテキストが必要なときにWikiを見つけることができ、ワークフローを変更する必要はありません。
Wikiを最新に保つ
一度ドキュメントを生成するのは便利ですが、それらを最新に保つことこそがOpenWikiの価値をさらに高めます。
OpenWikiにはGitHub Actionが含まれており、スケジュール(例えば1日1回)で実行できます。このActionは更新フラグを付けてOpenWikiを実行します。OpenWikiは前回の実行以降にコミットされたものを確認し、git diffを使用して変更内容を理解し、関連するコンテキストでWikiを更新します。
つまり、ワークフローはバックグラウンドで実行できます。コードベースが変更されるにつれて、OpenWikiはドキュメントを更新します。コーディングエージェントは既存の指示ファイル参照を通じて最新のWikiを取得し続けます。
コードベースを第一に
この最初のリリースはコードベースのWikiに焦点を当てています。目標は、開発者が手動で詳細なドキュメントを書いたり維持したりする必要なく、エージェントが作業するリポジトリを理解しやすくすることです。
時間の経過とともに、OpenWikiのコンセプトはより広く適用できると考えています。エージェントはコーディングだけでなく、さまざまな種類の作業に対して持続的なコンテキストを必要とします。コードベースドキュメントは最初のユースケースですが、同じパターンは他のワークフローでもエージェントが有用なコンテキストを維持するのに役立ちます。
試してみてください
OpenWikiはオープンソースで、今すぐ利用可能です。
インストールして、openwiki --initを実行し、数分でリポジトリのWikiを生成できます。
リポジトリはこちら:https://github.com/langchain-ai/openwiki