ブログに戻る

なぜプロジェクト管理ツールはAIエージェントに向いていないのか

なぜプロジェクト管理ツールはAIエージェントに向いていないのか

あなたは同じコードベースで複数のAIコーディングエージェントを動かしている。3体かもしれないし、13体かもしれない。それぞれが自分の作業を管理する必要がある。イシューの作成、ステータスの更新、依存関係の確認、進捗の報告。フリート全体で毎分数十回の書き込みが発生する。

これがagentic engineeringだ。人間がAIエージェントのフリートを統率してソフトウェアを出荷するワークフロー。新しい手法だが、誰もがまず手を伸ばすのは既に知っているツールだ。Jira。Linear。GitHub Issues。Notion。チームが使っているプロジェクト管理ツール。

それではうまくいかない。そしてこのミスマッチは表面的なものではない。アーキテクチャレベルの問題だ。

レイテンシがスループットを殺す

Jira APIの呼び出しには200〜800msかかる。Linear APIはそれより速いが、それでも100〜300msだ。1つのイシューを作成し、依存関係を読み取り、ステータスを更新する。HTTPS、DNS解決、TLSハンドシェイク、JSONシリアライゼーションを経由する3回のラウンドトリップ。良い条件で500msといったところだ。

ローカルCLIからSQLiteデータベースへの書き込みは50ms以下。多くの場合10ms以下。

これは誤差に聞こえるかもしれないが、オペレーション数を掛け合わせると話が変わる。エージェントがタスクを処理する際、2〜3件のサブイシューを作成し、親のステータスを更新し、ブロッカーを確認し、進捗をコメントするかもしれない。6回のオペレーション。1回500msなら3秒の純粋な待ち時間。1回10msなら60ミリ秒。30秒でタスクサイクルを完了できるエージェントが、その10%をコードを書く代わりにHTTP待ちに費やすことになる。

これを13体のエージェントに拡大すると、オーバーヘッドは1時間あたり数分単位になる。

認証インフラは脆い接着剤

すべてのエージェントにAPIトークンが必要だ。トークンには有効期限がある。レート制限がある。1体のエージェントが20回の連続更新を一気に行うと429 Too Many Requestsが返ってくる。本来の仕事をする代わりに、指数バックオフのリトライループに嵌まる。

作業そのものとは何の関係もない障害モードを丸ごと追加したことになる。トークンのローテーション、シークレット管理、エージェント間のレート制限の配分。ローカルデータベースにレコードを書き込むという、本来取るに足らないはずの機能のための運用オーバーヘッドだ。

イシュートラッカーがディスク上のファイルであれば、認証する対象が存在しない。エージェントがファイルシステムを読めるなら、イシューの読み書きもできる。壊れる要素が一つ減る。

データモデルが人間を前提としている

Jiraを開いてみよう。スプリントが見える。ストーリーポイント。プロフィール写真とメールアドレスを持つ担当者。「レビュー中」や「グルーミング準備完了」といった状態を持つワークフロー。データモデル全体が、スタンドアップ、スプリントプランニング、振り返りを行う人間のチームのために設計されている。

エージェントはスタンドアップをしない。ストーリーポイントで見積もらない。7つの状態と4つの承認ゲートを持つワークフローは不要だ。

エージェントが必要としているのは依存関係グラフだ。このタスクはあのタスクにブロックされている。このエピックには12の子があり7つが完了している。このエージェントがこのイシューを45秒前にクレームして以来、報告がない。基本的なデータ構造は、列を移動するカードのボードではなく、ブロック関係を持つタスクのツリーだ。

SaaSツールは「自動化」機能を後付けするが、その下のコアモデルは依然として人間のためのKanbanボードだ。Jiraプラグインを書いてエージェントにイシューを作成させることはできる。しかしJiraがあなたのエージェントをスプリントチームの一員だと認識していることは変えられない。

クラウド依存は単一障害点

あなたのエージェントはローカルで動く。ローカルファイルを読み、ローカルコードを書き、ローカルのgitリポジトリにコミットする。オフラインでも、飛行機の中でも、レイテンシ2000msのネットワークでも動作する。気にしない。

しかしイシュートラッカーがSaaS製品であれば、すべてのエージェントオペレーションにインターネットアクセスが必要になる。Linearが10分ダウンしたら?フリート全体が止まる。自宅のインターネットが30秒途切れたら?全エージェントがリトライループに入る。作業を調整するためのイシュートラッカーが、システム全体の単一障害点になる。

ローカルファーストなら、イシュートラッカーはファイルシステムと同じ信頼性を持つ。常に利用可能で、常に高速で、常に自分の管理下にある。

書き込み量の桁が違う

SaaSプロジェクト管理ツールは、5〜10人の人間チームが1日に数回の更新を行うことを想定している。チーム全体で50〜100回程度の書き込みだ。

13体のエージェントが数分ごとにイシューを更新すると、1つのプロジェクトから1時間に数百のAPI呼び出しが発生する。これは利用量のわずかな増加ではない。まったく異なる利用パターンだ。人間のチームには十分に見えるレート制限が、エージェントフリートにとってはハードウォールになる。

そして問題は量だけではない。並行性だ。3体のエージェントが同じエピックの子タスクを同時に更新する。ステータスフィールドの競合状態。コメントスレッドの楽観ロック失敗。これらはSaaSツールが解決する必要のなかった問題だ。人間が3つのターミナルから同じイシューを同時に更新することはないからだ。

コラボレーションはデータの放棄を意味する

Jiraプロジェクトをチームメイトと共有するには、双方にJiraアカウントが必要だ。データはAtlassianのサーバーに存在する。自分のプロジェクトデータにAPIを通じてアクセスする特権に対して、シートごと、月額で支払っている。

別のツールに移行したい?エクスポートできるものをCSVで書き出し、残りは諦める。コメント、添付ファイル、カスタムフィールド、監査履歴。使える形式で取り出せることを祈るしかない。SaaSモデルはデータの所有権を利便性と引き換えにする。

しかしコラボレーションにベンダーを介在させる必要はない。イシューデータベースがDolt(データベース版Git)のようなもので管理されていれば、リモートにpushしてチームメイトがpullする。コードをブランチするのと同じようにイシューデータベースをブランチする。マージも同じだ。コンフリクトの解決も同じツールとメンタルモデルで行う。データは自分のものであり続ける。コラボレーションはサブスクリプションではなく、gitのように機能する。

本当に機能するもの

ブランド名を取り払って、エージェントがイシュートラッカーに本当に必要なものを考えてみよう。

  • ローカルファースト。 ネットワーク依存なし。データベースはディスク上のファイル。
  • CLIネイティブ。 エージェントはターミナルに住んでいる。インターフェースもそうであるべきだ。
  • Git管理。 バージョン管理、マージ可能、監査可能。ベンダーロックインなし。
  • 認証オーバーヘッドなし。 エージェントがファイルシステムを読めるなら、イシューも追跡できる。
  • 低レイテンシ。 オペレーションあたり50ms以下。500msではなく。
  • 仲介者なしで同期可能。 API webhooksを経由せず、gitリポジトリのようにpush & pull。

これが私が日常的に使っているものだ。beadsはまさにこのワークフローのために作られたGitネイティブのイシュートラッカーだ。すべてをDoltによるバージョン管理と同期付きのローカルSQLiteデータベースに保存する。CLIがプライマリインターフェースだ。エージェントは他のコマンドを実行するのと同じようにイシューを作成、更新、クエリする。

Beadboxはその上に私が構築したビジュアルレイヤーだ。ローカルデータベースの変更を監視し、依存ツリー、エピックの進捗、エージェントのアクティビティをリアルタイムでレンダリングする。エージェントはCLIを使う。私はダッシュボードを使う。どちらも同じローカルデータベースから読み取る。

既存ツールが問題なのではない

Jiraはその本来の用途において優れている。構造化されたワークフローを通じた人間チームの調整だ。Linearはスピードと洗練さを求める小規模チームに美しい。GitHub Issuesはオープンソースコラボレーションにおいて摩擦がない。

どれも悪いツールではない。解決している問題が異なるだけだ。5人の人間が2週間スプリントを行うワークフローなら、そのまま使い続ければいい。

しかし5体、10体、あるいは13体のAIエージェントが同じコードベースでリアルタイムに連携しているなら、SaaSモデルの限界を超えている。Agentic engineeringにはagentic engineeringのために作られたツールが必要だ。人間のワークフローにAPIを後付けしたものではなく。

自分で試してみる

まず beads を連携レイヤーとして導入。ビジュアルな管理が必要になったら Beadbox を追加。

ベータ期間中は無料。アカウント不要。データはローカルに保存されます。

Share