🦔

Claude Codeのカスタマイズ機能:カスタムスラッシュコマンドとカスタムサブエージェントの使い分け

に公開

Claude Codeでは、カスタムサブエージェント機能が追加され、自動化の選択肢が拡がりました。カスタムスラッシュコマンドとカスタムサブエージェントの特徴と使い分けについて解説します。

カスタムスラッシュコマンド

シンプルなテンプレート実行を目的とした機能。Markdownファイルでプロンプトテンプレートを定義し、スラッシュコマンドで呼び出します。

ファイル配置場所

  • ユーザー全体: ~/.claude/commands/
  • プロジェクト固有: [プロジェクトルート]/.claude/commands/

カスタムサブエージェント

複雑な多段階タスクを自律実行する専門エージェント。各エージェントは特定分野に最適化されています。

ファイル配置場所

  • ユーザー全体: ~/.claude/agents/
  • プロジェクト固有: [プロジェクトルート]/.claude/agents/

ファイル形式

各カスタムサブエージェントは、次の構造を持つ Markdown ファイルで定義されます:

---
name: あなたのサブエージェント名
description: このサブエージェントがいつ呼び出されるべきかの説明
tools: tool1, tool2, tool3  # オプション - 省略した場合はすべてのツールを継承
---

あなたのサブエージェントのシステムプロンプトをここに記述します。複数の段落で構成することができ、サブエージェントの役割、機能、および問題解決へのアプローチを明確に定義する必要があります。

構成フィールド

分野 必須 説明
name はい 小文字とハイフンを使用した一意の識別子
description はい サブエージェントの目的の自然言語による説明
tools いいえ 特定のツールをカンマで区切って指定。省略した場合は、メインスレッドからすべてのツールを継承

ツール設定

  • デフォルト: toolsフィールド省略時は、MCPツールを含むメインスレッドの全ツールを継承
  • 個別指定: カンマ区切りで必要なツールのみ指定(/agentsコマンドで編集可能)

サブエージェントの特徴

コンテキストの保存

  • 各サブエージェントは独自のコンテキストで動作し、メインの会話の汚染を防ぐ
  • 高レベルの目標に焦点を合わせ続けることが可能

柔軟な権限

  • 各サブエージェントに異なるツールアクセスレベルを設定可能
  • 強力なツールを特定のサブエージェントタイプに制限できる

概要比較

項目 カスタムスラッシュコマンド サブエージェント
実行方式 単発プロンプト実行 自動委任による実行
コンテキスト メインの会話に影響 独自コンテキストで分離
権限制御 なし 柔軟なツールアクセス制御

使い分けガイドライン

カスタムスラッシュコマンドを使う場面

  • 既存のコンテキストを引き継いで柔軟に用意済みプロンプトを呼び出したい場合

カスタムサブエージェントを使う場面

  • コンテキストを逸脱させずにサブタスクを実行したい場合
  • 権限を絞ってタスクを実行させたい場合

まとめ

選択基準 推奨アプローチ
シンプルさ・速度重視 カスタムスラッシュコマンド
確実性・複雑性対応 カスタムサブエージェント
コンテキスト継続 カスタムスラッシュコマンド
コンテキスト分離 カスタムサブエージェント

両者の特徴を理解し、タスクの性質に応じて適切に使い分けることで、Claude Codeを効果的に活用できます。

参考リンク

GMOペパボ株式会社

Discussion