Claude Codeのサブエージェントで複雑なタスクを分割処理する

公開日:
更新日:
目次

Claude Codeで複雑なタスクを実行すると、コンテキストが肥大化して精度が落ちる問題がありました。サブエージェント機能で解決できたので、備忘録として残します。

コンテキスト肥大化の課題

Claude Codeで大きなタスクを処理すると、会話履歴が膨らみ、モデルの注意が分散します。結果として、指示の見落としや不正確な出力が発生しやすくなります。

サブエージェントは、この問題を タスクの分離 で解決します[1]。メインの会話から独立した別プロセスで動作し、専門的な作業を完了後に結果だけを返します。

組み込みサブエージェント

Claude Codeには、用途別に3種類のサブエージェントが用意されています[2]。それぞれ得意な領域が異なるため、タスクに応じて使い分けます。

名前 用途 モデル
General-purpose 複数ステップのタスク全般 Sonnet
Plan 実装計画の作成(読み取り専用) Sonnet
Explore コードベースの検索・調査(読み取り専用) Haiku

タスクの内容に応じてClaude Codeが自動で選択しますが、明示的に指定することもできます。

サブエージェントを自作する

独自のサブエージェントは、以下の手順で作成します[3]

  1. Claude Codeのチャットで/agentsと入力してEnter
  2. エディタが開くので、Markdown + YAML形式で定義を記述
  3. ファイルを保存して閉じる

以下はコードレビュー用サブエージェントの例です。

code-reviewer.md
---
name: code-reviewer
description: コード品質とセキュリティをレビューする
tools: Read, Grep, Glob
model: sonnet
---

あなたはコードレビュアーです。
以下の観点でレビューしてください。

- コードの可読性
- エラーハンドリング
- セキュリティリスク

作成したファイルは、プロジェクト用なら.claude/agents/に、全プロジェクト共通なら~/.claude/agents/に保存します[4]

YAMLフロントマターで設定できる主要なフィールドは以下の通りです。

フィールド 必須 説明
name はい 小文字とハイフンで構成するID
description はい エージェントの目的
tools いいえ 使用可能なツール(カンマ区切り)
model いいえ sonnet / opus / haiku / inherit

使用上の留意点

サブエージェントを使う際は、以下の点に注意してください。

  • コンテキストの明示的な受け渡し:メインの会話と独立しているため、必要な情報はプロンプトで明示的に渡します
  • 結果の要約:結果はメインに要約して返されるため、詳細な中間結果が必要な場合は別途ファイル出力を指示します
脚注
  1. Subagents - Claude Code Docs ↩︎

  2. Subagents - Built-in subagents - Claude Code Docs ↩︎

  3. Subagents - Managing subagents - Claude Code Docs ↩︎

  4. Subagents - Subagent locations - Claude Code Docs ↩︎