「AIエージェントキャッチアップ #89 - Beads」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #89 - Beads」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

youtube.com

Beads

今回は、AIエージェントのための分散グラフイシュートラッカー「Beads」をキャッチアップしました。

BeadsのGitHubリポジトリはこちらです。

github.com

公式ドキュメントはこちらです。

beads.gascity.com

今回のポイント

Beadsとは

Beadsは、AIエージェント向けに設計されたイシュートラッカー(タスク管理ツール)です。 bdコマンドでイシューを管理できます。

Beadsの特徴は、イシューに依存関係を設定して、グラフ構造で管理できることです。 このしくみによって、コーディングエージェントが長期タスクを処理できることを目指すツールです。

Beadsのデータの保存には、「データのためのGit」と呼ばれるバージョン管理されたSQLデータベース「Dolt」が使われています。

github.com

実際に動かしてみた

クイックスタートに従ってインストールし、プロジェクトでbd initを実行すると、.beadsディレクトリが作成されてBeadsのセットアップが完了しました。

bd setup codexコマンドを実行すると、Codex向けにスキル・フック・AGENTS.mdがセットアップされました。

bd createコマンドでイシューを作成し、bd readyコマンドやbd listコマンドでイシューを確認できました。

イシューの依存関係の管理

Beadsは、イシューに依存関係を設定できることが特徴です。 Codexに依存関係のある5つのイシューを作成してもらいました。

bd listコマンドではイシューの一覧が表示され、bd readyコマンドでは依存関係を踏まえて着手可能なイシューのみが表示されます。

bd graphコマンドでは、イシューの依存関係をグラフ構造で可視化できました。

複数のエージェントでのイシューの分担

Beadsは、複数のエージェントでのイシューの分担も可能です。 bd worktreeとbd update <id> --claimによるイシューの分担を試してみました。

まず、bd worktreeコマンドで、agent-aとagent-bという2つのワークツリーを作成しました。

agent-aでbd update <id> --claimコマンドを実行すると、agent-aとagent-b両方のbd readyから該当のイシューが消えます。

agent-bでbd update <同じid> --claimを実行すると、すでにagent-aにclaimされているというエラーとなりました。

Beadsでは、データを保存しているDolt DBの同期の機能により、S3などを介して別のマシンで動くエージェントともイシューを共有したりできるようです。

Beadsのその他の機能

Beadsのその他の機能としては、イシューの優先度の設定、イシューへのノートの追加などがありました。 また、bd deferコマンドでイシューを後回にすることもできるようです。

他には、bd remenberコマンドで、プロジェクトに関する記憶を保存する機能もあるようです。 保存した記憶はbd primeコマンドでBeadsの使い方とともに出力されます。 bd primeコマンドは、Codexなどのセッション開始やコンテキスト圧縮時のフックに設定するようになっています。

次回のご案内

以上、今回は「Beads」をキャッチアップしました。

次回は「AIエージェントキャッチアップ #90 - Agent Plugins」ということで、エージェントスキルやMCPの設定を配布するためのオープンな仕様「Agent Plugins」がテーマです!

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!