サブエージェントパネルの大幅改善:自動非表示・深さ制限の統一・表示バグ修正
原文(日本語に翻訳)
- サブエージェントパネルを改善:アイドル状態のサブエージェントは30秒後に自動的に非表示になり、リストは最大5行で表示されスクロールヒントが表示されるようになりました。またキーボードヒントがフッターに表示されるようになりました
- サブエージェントの「Thinking」時間表示が、サブエージェント自身の経過時間ではなく親エージェントの経過時間を表示していたバグを修正しました
- ネストされたエージェントを待機しているサブエージェントが、エージェントパネルで「waiting」の代わりにカウントアップするタイマーを表示していたバグを修正しました
- フォアグラウンドのサブエージェントが無制限のネストチェーンを生成していた問題を修正しました。バックグラウンドのサブエージェントと同様に、5段階の深さ制限が適用されるようになりました
原文(英語)
- Improved the subagent panel: idle subagents auto-hide after 30s, the list caps at 5 rows with scroll hints, and keyboard hints now show in the footer
- Fixed subagent 'Thinking' duration showing the parent agent's elapsed time instead of the subagent's own
- Fixed subagents blocked on a nested agent showing a ticking elapsed time instead of 'waiting' in the agent panel
- Fixed foreground subagents spawning unbounded nested chains; they now respect the same 5-level depth limit as background subagents
概要
Claude Code v2.1.181では、サブエージェントパネルのユーザーエクスペリエンスが大幅に改善されました。アイドル状態のサブエージェントが自動的に非表示になり、パネルが整理されて見やすくなりました。また、経過時間の表示に関する複数のバグが修正され、各サブエージェントの実際の処理時間が正確に把握できるようになりました。さらに、フォアグラウンドとバックグラウンドのサブエージェントに同一の深さ制限が適用されるようになり、無制限のネストによる暴走を防止できます。
主な改善点
1. アイドルサブエージェントの自動非表示(30秒)
アイドル状態(処理を終えて何も行っていない)のサブエージェントは、30秒後にパネルから自動的に非表示になります。これにより、完了済みのサブエージェントがパネルを占有し続けることがなくなり、現在アクティブなサブエージェントだけが表示された、すっきりとしたUIが維持されます。
2. パネルの最大5行表示とスクロールヒント
サブエージェントパネルの表示行数が最大5行に制限されました。6件以上のサブエージェントが同時に動作している場合は、スクロールヒントが表示され、一覧の残りを確認できます。大規模なエージェントタスクを実行する際でも、パネルが画面を占領しすぎることなく、コンパクトに情報が表示されます。
3. フッターへのキーボードヒント表示
サブエージェントパネルの操作に使えるキーボードショートカットのヒントが、フッター部分に表示されるようになりました。マウス操作だけでなく、キーボードでも直感的にパネルを操作できます。
4. サブエージェントの「Thinking」時間の正確な表示
これまで、サブエージェントが「Thinking(思考中)」の状態にあるとき、経過時間として親エージェントの累積経過時間が誤って表示されていました。この修正により、各サブエージェントが自分自身の処理にかけた時間が正確に表示されるようになりました。これにより、どのサブエージェントがどれだけ時間をかけているかを正確に把握できます。
5. ブロック中サブエージェントの「waiting」表示
ネストされた子エージェントの完了を待っているサブエージェントが、以前はカウントアップするタイマーを表示していました。この修正後は「waiting(待機中)」という適切なステータスが表示されます。これにより、サブエージェントが実際に処理中なのか、それとも別のエージェントの完了を待っているだけなのかを一目で判断できます。
6. フォアグラウンドサブエージェントへの5段階深さ制限の適用
バックグラウンドのサブエージェントにはすでに5段階の深さ制限が適用されていましたが、フォアグラウンドのサブエージェントには制限がなく、無限にネストされたエージェントチェーンが生成される可能性がありました。この修正により、フォアグラウンド・バックグラウンド問わず、すべてのサブエージェントに同一の5段階深さ制限が適用されます。
実践例
複数サブエージェントを起動するタスクでのパネル確認
複数のファイル調査や並列処理タスクを実行すると、サブエージェントパネルに各エージェントの状態が表示されます。
例:大規模コードベースの調査タスク
- サブエージェントA: src/api/ を調査中(Thinking: 12秒)
- サブエージェントB: tests/ を調査中(Thinking: 8秒)
- サブエージェントC: docs/ の調査完了(→ 30秒後に自動非表示)
- サブエージェントD: サブエージェントEの完了待ち(waiting)
- サブエージェントE: config/ を調査中(Thinking: 3秒)
[さらに2件 ↓] ← 6件目以降はスクロールヒントで案内「Thinking」時間による処理ボトルネックの特定
修正後は各サブエージェントの実際の処理時間が正確に表示されるため、どのサブエージェントが処理に時間がかかっているかを特定できます。
修正前の表示例(誤り):
サブエージェントA: Thinking 5:32 ← 親エージェントの経過時間
サブエージェントB: Thinking 5:32 ← 同じく親の経過時間
修正後の表示例(正確):
サブエージェントA: Thinking 0:45 ← Aが実際にかけた時間
サブエージェントB: Thinking 2:10 ← Bが実際にかけた時間ネストされたエージェントの待機状態の確認
サブエージェントがさらに子エージェントを起動してその完了を待っている場合、「waiting」と表示されるようになりました。
修正前の表示例(誤り):
サブエージェントA: 3:45 ↑ ← カウントアップするタイマー(処理中と混同)
修正後の表示例(正確):
サブエージェントA: waiting ← 子エージェント待機中と明確に表示5段階深さ制限の動作確認
フォアグラウンドのサブエージェントで深いネスト構造を持つタスクを実行しようとすると、5段階目以降のエージェント生成が制限されます。
エージェント階層の例:
レベル1: 親エージェント(メインセッション)
レベル2: サブエージェントA
レベル3: └─ サブエージェントA-1
レベル4: └─ サブエージェントA-1-1
レベル5: └─ サブエージェントA-1-1-1
レベル6: └─ ✗ 制限により生成不可(エラーを返す)注意点
- 5段階深さ制限はフォアグラウンド・バックグラウンド共通:この制限はシステム全体に適用されます。深いネスト構造を必要とするタスクは、設計を見直して5段階以内に収める必要があります。
- 30秒の自動非表示は表示のみの変更:アイドル状態のサブエージェントがパネルから消えても、タスク自体はキャンセルされません。完了済みのサブエージェントが非表示になるだけです。
- パネルの5行制限はスクロール可能:5件を超えるサブエージェントが実行中でも、スクロールヒントに従って残りを確認できます。
- 「Thinking」時間の修正はv2.1.181以降のみ:以前のバージョンでは親エージェントの経過時間が表示されていたため、古いバージョンのログを参照する際は注意が必要です。
- 「waiting」表示はブロック状態のみ:サブエージェントが子エージェントの完了を待っている(ブロックされている)場合にのみ表示されます。通常の処理中は「Thinking」が表示されます。