【ITニュース解説】Six agents were running and I could not tell you what any of them did
2026年09月05日に「Dev.to」が公開したITニュース「Six agents were running and I could not tell you what any of them did」について初心者にもわかりやすく解説しています。
ITニュース概要
複数のAIエージェントを同時に動かすと、どれが何をし、どのファイルを変更したか把握しにくい。runlanesは、エージェントが自動で残す実行ログを解析し、トークン消費量、並行度、ファイルアクセス履歴を可視化する。事後分析も可能で、開発効率の改善に貢献する。
ITニュース解説
システムエンジニアとして開発を進める際、近年はAIを搭載した「エージェント」と呼ばれるツールが、コード生成やデバッグなど、さまざまな作業を手助けしてくれるようになった。これらのエージェントは、まるで開発チームのメンバーのように、ユーザーの指示を受けて自動的に作業を進める。しかし、複数のエージェントを同時に使うようになると、ある大きな問題に直面することがある。それは「今、どの子が何をしているのか全く分からない」という状況だ。
例えば、同時に六つのコーディングエージェントを動かしたとする。それぞれのエージェントは、指示に従ってコードを書き換えたり、ファイルを修正したりしている。作業が終わり、結果としてファイルは変更されている。しかし、どのエージェントが具体的にどの変更を行ったのか、どのくらいのコスト(AIの処理量を測る「トークン」という単位で消費される)がかかったのか、そしてエージェントたちは本当に同時に作業していたのか、それとも順番待ちをしていただけなのか、といった情報は全く見当がつかない。
特に深刻なのは、複数のエージェントが同じファイルを同時に、あるいは意図せず修正してしまった場合だ。これは、人間が複数の開発者で共同作業する際に発生する「ファイル競合」によく似ている。もしエージェントが誤ったファイルを編集していたとしても、すぐには気づけない。最終的に変更内容を確認するまで、その問題に気づくことができず、無駄な時間とコストがかかってしまうことになる。
実は、多くのAIエージェントは、自分が何をしたかという作業記録を、ひそかにローカルディスクに保存している。これは「トランスクリプト」と呼ばれ、まるで会議の議事録のように、エージェントとの会話内容や実行した操作が詳細に記録されている。しかし、これらのログは通常、ユーザーが意識して確認することはなく、異なるエージェント間で記録形式もバラバラなため、誰もその情報にアクセスしていなかった。
そこで登場するのが「runlanes」というツールだ。runlanesは、これらの既存のエージェントがすでにディスクに書き出しているログファイルを読み取ることで、先述した問題を解決する。特別なソフトウェア開発キット(SDK)を組み込んだり、複雑な設定ファイルを事前に用意したりする必要は一切ない。エージェントが作業を始める前に何かを起動しておく必要もなく、一度完了した過去の実行データに対しても利用できる点が画期的だ。多くの類似ツールが、事前に「この実行を監視しよう」と決めておく必要があるのに対し、runlanesは後から疑問に思ったことでも答えを出してくれる。
runlanesの使い方は非常にシンプルで、コマンドラインでnpx runlanesと入力するだけで、ウェブブラウザ上に管理画面が立ち上がる。特別な設定ファイルは不要だ。この画面では、プロジェクト内で実行されたすべてのAIエージェントのセッション状況を一覧できる。メインの会話でどれだけのトークンが消費され、さらに子エージェントにどれだけ作業が委譲されたかの内訳も表示される。例えば、あるセッションでは、会話に830万トークン、委譲に210万トークンが使われたといった具体的な数値が分かる。
特に興味深いのは「並列実行」に関する分析機能だ。runlanesは、複数のエージェントが実際にどれくらいの時間、同時に作業していたかを明らかにする。あるケースでは、同時に四つのエージェントが動いていたにもかかわらず、実際に複数のエージェントが重複して作業していた時間は全体の9%に過ぎず、残りの91%は互いに順番を待っていたことが判明した。これは、私たちが複数のエージェントを使った時の効率性について抱いているイメージと大きく異なる場合があり、今後の作業計画に重要な示唆を与える。
さらに、runlanesはどのエージェントがどのファイルに触れたかをグラフで表示する機能も持つ。これにより、複数のエージェントが同じファイルを開いて作業した形跡を一目で確認できる。ここで重要なのは、「プロンプトでそのファイルを編集すると言われたから」ではなく、「実際にそのファイルを開いたという証拠」に基づいて関係性を示す点だ。これにより、本当にファイル競合が起こりうる状況を正確に把握できる。過去の全セッション履歴や、プロジェクトに関連する計画、スキル、エージェントへの指示書なども表示され、問題発生時に原因究明の手がかりとなる。
runlanesは、数値の信頼性にも徹底的にこだわっている。例えば、AIエージェントによってはトークンではなく「クレジット」という単位で課金される場合があり、そのログには具体的なトークン使用量が記録されないことがある。そのような場合、runlanesは無理に「0」と表示するのではなく、測定不能であることを示すダッシュを表示する。これは、安易に数値を捏造せず、正直な情報を提供しようという強い意志の表れだ。また、トークン計算においても、キャッシュを読み込む際に同じコンテキストが何度もレポートされるような仕組みであっても、それが実際に課金されるコストと、実際の情報処理量とは異なるという点を考慮し、それぞれの数値を分けて提示する。これにより、誤った合計値が示されるのを防いでいる。
このツールの設計思想は、単なる口約束ではなく、実際の開発プロセスで保証されている。runlanesは、ローカルファイルのみを読み込み、インターネットを介した外部通信を一切行わず、自分のコンピューター内部でのみ動作する。この主張は、開発時に自動的に実行される「継続的インテグレーション(CI)」というテスト工程で常に検証されている。例えば、ソースコード内に外部通信を行う可能性のあるキーワード(fetchやaxiosなど)があればビルドが失敗し、外部への通信が発生しないことを自動的に保証する。これにより、READMEファイルに書かれた言葉が、常に真実として維持される仕組みになっている。
開発されたパッケージの信頼性も非常に高い。GitHub Actionsという仕組みを使って公開され、どのコミット、どのワークフロー、どのサーバーでビルドされたかがnpmというパッケージ管理システムに記録される。また、Sigstoreという技術で電子署名され、その記録は公開されたログに保存されるため、パッケージの信頼性を誰でも検証できる。これは、「提供される数値がチェックに耐えうるものである」と主張するツールにとって、パッケージ自体も信頼できる形で提供されるべきだという一貫した考えに基づいている。
runlanesのデモも、この信頼性の哲学を反映している。ウェブサイトで公開されているデモは、単なるスクリーンショットや模倣品ではなく、runlanes --exportコマンドで生成された自己完結型のHTMLファイルそのものだ。このデモは、ソースコードが変更されるたびにCIで自動的に再生成されるため、もしツールの機能が壊れていれば、デモも壊れ、それがCIで即座に検出される。さらに、デモ内のデータは「ステージングされたデータ」であることを明確に示しており、架空のデータをあたかも本物であるかのように見せかけることはしない。
このツールは当初「agenttrace」という名前だったが、すでに同名のツールが複数存在したため、「runlanes」という現在の名前に変更された。「runlanes」という名前は、各エージェントの実行がタイムライン上に一本の「レーン(道筋)」として描かれ、それらのレーンがどれだけ重なり合って実行されたかという、ツールの核心的な機能をより正確に表現している。
runlanesはMITライセンスで公開されており、Node.jsのバージョン18以降で動作する。ランタイム依存関係は一切なく、多くのテストによって品質が保証されている。ソースコードはGitHubで公開されており、npmから簡単にインストールして試すことができる。もしあなたが複数のAIエージェントを同時に使っているなら、その活動データはすでにあなたのパソコンのディスクに保存されている。runlanesは、ただそれらを読み取って、あなたに分かりやすく見せるだけだ。これにより、AIエージェントの「ブラックボックス化」を防ぎ、より効率的で信頼性の高いAI活用を支援する。