サブエージェント履歴
Claude Code、Codex、Cursor、Grok、Devin が起動した子エージェントが実際に何をしたのか — 会話、ツール呼び出し、結果 — を読み、ログを離れることなくそのまま返信できます。
以前は、委譲といえばスピナーと要約だけでした。子エージェントが起動し、実際の作業をこなし、やがて姿を消す。手元に残るのは、親エージェントがその子について伝えてくれた内容だけです。要約が不十分だったり誤っていたりしても、照らし合わせて確認する手段はありませんでした。
サブエージェント履歴は、そうした子エージェントの動きを読める形で残します。
件数を確認する
Claude Code、Codex、Cursor、Grok、Devin が子エージェントを起動すると、そのターミナルの委譲バッジの横に件数が表示されます。2 running · 15 done のように表示され、緑のドットは実行中のものがある間だけ点灯します。数時間前に完了した子エージェントが、進行中の作業のように見えることはありません。クリックすると、その実行で起動された全サブエージェントを検索できる一覧が開きます。パネルのタイトルは Native subagents — Children of this terminal's session です。
完了した子エージェントも一覧に残ります。 スピナーが消えた後でも、委譲の内容を読み返せます。実行中のサブエージェントが先頭に並び、それぞれに Running、Done、Stopped のラベルと最終アクティビティの時刻が付きます。完了したサブエージェントは読み取り専用の履歴として開き、会話の閲覧と ID のコピーはできますが、Send to subagent が表示されるのは実行中のときだけです。
すべての子エージェントは、起動した親そのものに紐づきます。 最新のセッションに割り当てられることも、同じフォルダを共有しているというだけで推測されることもありません。同じリポジトリで 4 つのターミナルが作業していても、委譲が別のターミナルのものと誤認されることはありません。名前は起動時の情報から取られ、ID ではなく、見てすぐ分かるタスクタイトルが表示されます。
1 つを読む
サブエージェントを選ぶと、次の内容を確認できます。
- その会話
- そのツール呼び出し
- その結果
親による要約ではなく、実際に何を行ったのかが分かります。
実行中の子エージェントを追う
| 操作 | 動作 |
|---|---|
| Follow log | 作業中の子エージェントのログをストリーミング表示します |
| Earlier logs | 長い実行を遡って読み込みます |
| Latest | 末尾にジャンプします |
子エージェントに返信する
ログの下にはコンポーザーがあり、Ask for an update or suggest a change… と表示されています。Enter で送信、Shift+Enter で改行でき、ログは末尾から追従するため、返信は読んでいた位置にそのまま表示されます。
ネイティブの子エージェントには独自の入力経路がなく、親 CLI が所有しています。そのため Send to subagent は、メッセージを親の会話に届けます。宛先はその子エージェントの ID で、新しく起動するのではなく再開するよう指示が添えられます。この受け渡しが親のトランスクリプトに反映される様子も確認できます。
親ターミナルがなくなった場合、別のセッションに移った場合、または終了した場合でも、送信は下書きを保持し、どの状態になったのかをお知らせします。下書きが失われることはありません。
結果を自分で持ち帰る
- Copy ID — 参照用に、サブエージェントの識別子をコピーします。
- Copy follow-up for parent — 組み立て済みの受け渡しメッセージをテキストとしてコピーします。親の会話に自分で貼り付け、送信される様子を見届けたいときに使います。
親を経由する理由
1DevTool がネイティブの子エージェントに直接書き込むことはありません。すべてのメッセージは、その子を所有する親が中継します。
これは意図的な設計です。2 つの経路から操作されるサブエージェントでは、そのトランスクリプトが自身の挙動を説明できなくなります。親を経由させることで会話への書き込み元を 1 つに保ち、読みに来た記録の信頼性を守ります。