AI Navigate

サブエージェント

Simon Willison's Blog / 2026/3/17

💬 オピニオンIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • LLMs はコンテキストウィンドウによって制約され、一般的には約100万トークンを上限とし、最良の結果は通常おおよそ20万トークン未満で観察される。
  • Subagents は、新しいプロンプトを付けた自分自身の新規コピーを派遣することで、コーディングエージェントのトップレベルのコンテキストを消費することなく、より大きなタスクを処理するための単純な仕組みを提供する。
  • Claude Code は Explore というサブエージェントを用い、まずリポジトリを調査して情報を収集するためにプロンプトを構築し、見つかった内容の説明を返す。
  • この投稿には、具体的な対話の記録と例示的なプロンプトが含まれており、サブエージェントが実践においてエージェント工学パターンでタスクに取り組む際にどのように使用されるかを示している。
提供スポンサー: CodeRabbit — Planner は、コード作成エージェントを10倍に高めつつ、再作業とAIの無駄を最小化します。 今すぐ試す.

ガイド > エージェント的エンジニアリングパターン

サブエージェント

LLMs は、その コンテキスト制限 - 任意の時点で作業メモリに収められるトークン数 - に制限されます。過去2年間でLLMs自体の能力が劇的に向上しているにもかかわらず、これらの値はあまり大きく増えませんでした。一般に約1,000,000トークンで頭打ちとなり、ベンチマークは200,000以下でより高品質な結果を報告することが多いです。

その制限の範囲内に収まるようにコンテキストを慎重に管理することは、モデルから素晴らしい結果を得るために極めて重要です。

サブエージェント は、コーディングエージェントの貴重なトップレベルのコンテキストを過度に使い切ることなく、より大きなタスクを処理するための、シンプルでありながら効果的な方法を提供します。

コーディングエージェントがサブエージェントを使用すると、指定された目標を達成するために自分自身の新しいコピーを実際にディスパッチし、新しいプロンプトから始まる新しいコンテキストウィンドウを用います。

Claude Code の Explore サブエージェント

Claude Code は、その標準的な作業手順の一部としてサブエージェントを広範に使用します。これを例として用いましょう。

既存のリポジトリに対して新しいタスクを開始するたびに、Claude Code はまずそのリポジトリを探索し、一般的な形を把握し、そのタスクを達成するために必要な関連情報を見つけます。

これを行うには、プロンプトを作成し、探索を実行するサブエージェントを派遣して、見つけた内容の説明を返します。

私は、私のガイドのページのスクリーンショットとこのプロンプトを使ってClaude Codeのセッションを開始しました:

この章の差分でも、行内の個々に変更されたテキストのセグメントを、赤または緑のより濃い色で表示して、どの文字が変更されたかを示してください。

そのセッションの記録は以下です。

Claude Code は、以下のスタータープロンプトを使用して“Explore”サブエージェントを実行することから開始しました:

この Django ブログの「chapters」の差分ビューを実装しているコードを見つけてください。次のものを見つける必要があります:

  1. 差分をレンダリングするテンプレート(赤/緑の背景を持つ差分関連のHTML/CSSを探してください)
  2. 差分を生成するPythonコード(difflib の使用や同様のものを探してください)
  3. 差分レンダリングに関連する JavaScript
  4. 差分ビューの CSS スタイル(赤/緑のライン背景)

徹底的に検索してください - templates/、static/、blog/ ディレクトリを確認してください。'diff'、'chapter'、'revision'、'history'、'compare' などのキーワードを探してください。

サブエージェントは、他のツール呼び出しと同様に機能します。親エージェントは、それらを他のツールと同様にディスパッチして応答を待ちます。このようにモデルが自分自身にプロンプトをかけるのを見るのは興味深いです。彼らは通常、プロンプト戦略の嗜好が良いとされています。

Exploreサブエージェントは数秒間処理を続け、次のように始まる応答を返しました:

完璧です!すべての発見を含む包括的な要約を作成させてください:

要約:章の差分ビューの実装

この Django ブログの章の差分ビューの完全な実装を見つけました。主な構成要素は以下のとおりです:

1. Pythonコード - 差分生成 (/home/user/simonwillisonblog/guides/views.py、行139-202)

chapter_changes() ビュー関数は、Python の組み込み difflib.unified_diff() を使用して差分を生成します: …

完全なサブエージェントの応答には、親エージェントが元のリクエストに対処するためにコードの編集を開始する際に必要なすべての詳細が含まれていました。

並列サブエージェント

この Explore サブエージェントは、サブエージェントの作業の仕組みを最も単純な例として示しています。親エージェントはサブエージェントが実行している間、一時停止します。このタイプのサブエージェントの主な利点は、親の利用可能なリミットを消費せず、新しいコンテンツで作業できる点です。

サブエージェントは、親エージェントが同時に複数のサブエージェントを実行することで、顕著なパフォーマンス向上をもたらすこともあります。これには、Claude Haiku のようなより高速で安価なモデルを使用してそれらのタスクを加速させることも含まれます。

サブエージェントをサポートするコーディングエージェントは、あなたの指示に従ってそれらを使用することができます。次のようなプロンプトを試してみてください:

Use subagents to find and update all of the templates that are affected by this change.

複数のファイルを編集するタスクで、それらのファイル同士が相互に依存していない場合には、これにより大幅なスピードアップを得られることがあります。

スペシャリスト・サブエージェント

一部のコーディングエージェントは、サブエージェントを追加のカスタマイズとともに実行でき、しばしばカスタムのシステムプロンプトやカスタムツール、あるいは両方の形で、それらのサブエージェントに別の役割を担わせることを可能にします。

これらの役割は、さまざまな有用な専門分野をカバーできます:

  • コードレビュアー エージェントはコードをレビューし、バグ、機能のギャップ、または設計の弱点を特定できます。
  • テストランナー エージェントはテストを実行できます。テストスイートが大規模で冗長な場合には特に有益で、サブエージェントはメインのコーディングエージェントに全てのテスト出力を隠し、失敗の詳細だけを返すことができます。
  • デバッガー エージェントは問題のデバッグに特化し、コードベースを通じてトークンの割り当てを使って推論し、コードの断片を実行して再現手順を分離し、バグの根本原因を特定するのに役立てることができます。

複数の専門サブエージェントにタスクを分割しすぎる誘惑に駆られることがありますが、サブエージェントの主な価値は、貴重な根本のコンテキストを保持し、トークンを多く使う処理を管理する点にあることを忘れてはなりません。ルートのコーディングエージェントは、必要なトークンを確保できれば自分自身の出力をデバッグしたりレビューしたりすることが十分可能です。

公式ドキュメント

いくつかの人気のあるコーディングエージェントはサブエージェントをサポートしており、それぞれの使い方に関する独自のドキュメントがあります:

これはガイドの章です エージェント型エンジニアリングのパターン.

parallel-agents 16 coding-agents 179 generative-ai 1697 agentic-engineering 30 ai 1914 llms 1663

作成日: 2026年3月17日
最終更新日: 2026年3月17日
3 件の変更

前へ: コーディングエージェントの仕組み

次へ: レッド/グリーン TDD