Beards は本当に「AIエージェントの記憶」を解決するのか:Dolt 分散グラフでタスク管理を再発明する試み
Beads - コーディング エージェントのメモリ アップグレード。 bd - Beads Dolt を利用した、AI エージェント用の分散グラフ問題トラッカー。** プラットフォーム:** macOS、Linux、Windows、FreeBSD ドキュメント:** Beads は、コーディング エージェントに永続的な構造化メモリを提供します。
ひと目でわかる
- これは何?
- Beads (bd) は、AI コーディングエージェント向けに設計された分散グラフ型の課題トラッカーです。Dolt をベースに、依存関係を明示したタスク管理と永続的なプロジェクト記憶を提供します。その実装と運用コストを検証します。
- 誰に向いている?
- Beads は、AI エージェントが長期間のタスクを扱う際に、マークダウンの TODO リストでは不十分だと感じている開発者に向いています。特に、複数のエージェントやブランチで並行作業するチームでは、ハッシュ ID による衝突回避と Dolt のセルレベルマージが効力を発揮します。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 2 日前です。
- 何の言語で書かれている?
- 主に Go です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
マークダウン TODO の限界と Beads の答え
AI コーディングエージェントは、長期的なタスクを扱う際にコンテキストを失いがちです。従来はマークダウンで計画を書いていましたが、依存関係が曖昧で、複数のエージェントが同時に編集すると衝突します。Beads (bd) は、この問題を「依存関係を明示したグラフ構造」と「Dolt によるバージョン管理」で解決しようとしています。Dolt は SQL データベースでありながら、Git のようなブランチやマージをサポートします。Beads はその上に、タスク(bead)をノードとするグラフを構築し、エージェントが「次に何をすべきか」を自動的に判断できるようにします。
エージェントがタスクを「所有」する仕組み
Beads の核心は、タスクの状態遷移をエージェントの操作で駆動する点です。`bd create` で新しい bead を作成すると、依存グラフに追加されます。`bd ready` は、未解決のブロッカーがないタスクを一覧表示します。エージェントは `bd update <id> --claim` でタスクをアトミックに取得し、`bd close` で完了するとブロッカーが解除され、依存するタスクが `ready` になります。この流れは、README のフローチャートで明確に示されています。重要なのは、ID がハッシュベース(`bd-a1b2` のような形式)であることです。これにより、複数のエージェントやブランチで同時にタスクを作成しても、ID の衝突が起こりません。Dolt のセルレベルマージと組み合わせることで、「ゼロコンフリクト」を謳っています。
インストールと初期設定:実際のコマンド
インストールは簡単です。macOS や Linux では `brew install beads`、Node.js ユーザーは `npm install -g @beads/bd` が推奨されています。また、公式のインストールスクリプトを curl で実行する方法もありますが、このスクリプトはリリースの checksums.txt を検証してからインストールする仕組みです。プロジェクトでの初期化は `bd init` です。このコマンドは `AGENTS.md` を作成または更新し、エージェントが beads のワークフローを発見できるようにします。さらに `bd setup codex` や `bd setup claude` などのコマンドで、各エージェント向けのスキルやフックをインストールできます。`bd init --stealth` を使えば、プロジェクトにファイルをコミットせずにローカルだけで利用できます。これは共有プロジェクトで個人的に使いたい場合に便利です。
記憶の圧縮:コンテキストウィンドウを節約する仕掛け
エージェントのコンテキストウィンドウは有限です。Beads は「コンパクション」と呼ばれる機能で、古いクローズ済みタスクを意味的に要約し、「記憶の減衰」をシミュレートします。これにより、プロジェクトの履歴全体を保持しつつ、エージェントが読む必要のある情報量を減らします。具体的なアルゴリズムは README からは不明ですが、`bd prime` が現在のワークフローコンテキストと永続的な記憶を出力し、`bd remember "洞察"` で保存したメモを後から注入する仕組みです。これは、単なるタスク管理ではなく、プロジェクトの「長期記憶」として機能することを意図しています。ただし、要約がどの程度の粒度で行われるのか、また要約によって重要な情報が失われるリスクがあるのかは、ドキュメントからは判断できません。
分散と同期:Dolt がもたらす複雑さ
Beads はデフォルトで Dolt を埋め込み(embedded)モードで使用します。データは `.beads/embeddeddolt/` に保存され、単一の書き込み者を想定しています。一方、`bd init --server` を使えば、外部の `dolt sql-server` に接続して複数の同時書き込みを処理できます。分散環境では、`bd dolt push` と `bd dolt pull` で他のマシンやエージェントと同期します。しかし、この分散モデルは運用コストを増やします。特にアップグレード時は注意が必要です。README は「バイナリを置き換えるだけでは不十分」と警告し、`bd export --all` でバックアップし、スキーマ移行がある場合は「指定された 1 つのクローン」だけが `bd migrate` と `bd dolt push` を実行し、他のクローンは `bd bootstrap` を実行するよう指示しています。これは、Git と同様の複雑さをユーザーに課すことを意味します。
貢献者とメンテナーの役割分担
オープンソースプロジェクトでの利用を想定し、Beads は貢献者とメンテナーで異なる動作をします。貢献者(フォークしたリポジトリで作業する人)は `bd init --contributor` を使うことで、計画用の課題を別のリポジトリ(例:`~/.beads-planning`)にルーティングできます。これにより、実験的な作業がプルリクエストに混入するのを防ぎます。一方、メンテナーは SSH や HTTPS の資格情報から自動的に役割を検出しますが、GitHub HTTPS で資格情報なしに書き込み権限がある場合は、`git config beads.role maintainer` で手動設定が必要です。この役割分担は、プロジェクトの運用ルールをコードで強制する良い例ですが、貢献者とメンテナーの区別が明確でないプロジェクトでは、混乱の元になるかもしれません。
セキュリティと検証:ダウンロード時の注意
Beads は配布バイナリの検証を重視しています。インストールスクリプトはリリースの `checksums.txt` を検証してからインストールしますが、手動インストールの場合はユーザー自身が検証する必要があります。macOS では、インストールスクリプトがダウンロードした署名をデフォルトで保持し、ローカルでの再署名は `BEADS_INSTALL_RESIGN_MACOS=1` で明示的にオプトインする仕組みです。Windows では、ウイルス対策ソフトの誤検知に関するガイダンスがドキュメントに用意されています。これは、サプライチェーン攻撃が増える中で、適切な対応だと言えます。ただし、checksums.txt 自体の改ざんリスクをどう防ぐかは、README からは不明です。
代替手段との比較:GitHub Issues や Linear との違い
Beads の最大の特徴は、AI エージェントが直接操作することを前提に設計されている点です。従来の課題トラッカー(GitHub Issues や Linear)は人間のワークフローを中心に設計されており、API はあるものの、エージェントが効率的に「次のタスク」を判断するための依存グラフや自動 ready 検出は備えていません。Beads は `bd ready` でブロッカーがないタスクを一覧表示し、`bd update --claim` でアトミックに取得できます。これは、エージェントが「何をすべきか」を自律的に判断するための仕組みです。一方、GitHub Issues は広範なエコシステム(CI、プロジェクト管理、コミュニティ機能)を持ちますが、Beads はエージェント特化に絞っています。この違いは、人間とエージェントの協働が中心のチームでは Beads が有利に働く一方、既存の人間中心のワークフローを維持したいチームには不向きであることを意味します。
編集部の結論
Beads は、AI エージェントが長期間のタスクを扱う際に、マークダウンの TODO リストでは不十分だと感じている開発者に向いています。特に、複数のエージェントやブランチで並行作業するチームでは、ハッシュ ID による衝突回避と Dolt のセルレベルマージが効力を発揮します。一方、単一のエージェントで短期的なタスクしか扱わない場合や、既存の課題トラッカー(GitHub Issues など)との統合が必要な場合は、導入コストに見合わないかもしれません。導入前に、まず `bd init --stealth` でプロジェクトに影響を与えずに試し、`bd prime` の出力を確認して、エージェントへの指示が実際に機能するかを検証してください。また、アップグレード時には `bd export --all` によるバックアップと、スキーマ移行の手順(`bd migrate`, `bd bootstrap`)を必ず実行してください。
コミュニティノート