For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション

サブエージェント

ChatGPT と Codex でサブエージェントを使用し、Codex のカスタムエージェントを構成する方法

ChatGPT Work と Codex では、専門のエージェントを並列に起動し、その結果を 1 つの応答にまとめるサブエージェントワークフローを実行できます。これは、コードベースの調査や複数段階にわたる機能実装計画の実行など、並列処理に適した複雑なタスクに特に役立ちます。

ローカルの Codex クライアントでは、タスクごとに異なるモデル構成や指示を持つカスタムエージェントも定義できます。

利用条件

現行の Codex では、サブエージェントワークフローがデフォルトで有効になっています。サブエージェントのアクティビティは、ChatGPT デスクトップアプリ、Codex CLI、IDE 拡張機能に表示されます。

各サブエージェントが個別にモデルを実行し、ツールを使用するため、サブエージェントワークフローは、同等の処理を単一のエージェントで実行する場合よりも多くのトークンを消費します。

アプリのチャットで Codex に、 独立して進められる作業をサブエージェントに委任するよう依頼します。現行のローカル版 Codex では、直接依頼した場合や、 該当する AGENTS.md またはスキルの指示で求められている場合に、委任が行われます。 アプリには各サブエージェントのスレッドが表示され、 その作業内容とメインチャットに返された要約を確認できます。

サブエージェントワークフローの利点

大きなコンテキストウィンドウを持つモデルにも限界があります。要件や制約、意思決定を扱うメインチャットに、調査メモ、テストログ、スタックトレース、コマンド出力といったノイズの多い中間出力があふれると、セッションの信頼性が時間とともに低下する可能性があります。

こうした現象は、一般に次のように表現されます。

  • コンテキスト汚染:ノイズの多い中間出力に有用な情報が埋もれます。
  • コンテキスト劣化:関連性の低い情報でチャットが埋まるにつれて、パフォーマンスが低下します。

詳しい背景については、Chroma によるコンテキスト劣化の解説を参照してください。

サブエージェントワークフローでは、ノイズの多い作業をメインスレッドから切り離すことで、次のようなメリットが得られます。

  • メインエージェント を要件、意思決定、最終出力に集中させます。
  • 調査、テスト、ログ分析を担当する専門の サブエージェント を並列で実行します。
  • サブエージェントからは、生の中間出力ではなく 要約 を返します。

作業を独立して並列に実行できる場合は、時間の短縮にもつながります。また、大規模なタスクも範囲を限定した単位に分割することで、扱いやすくなります。たとえば、Codex は数百万トークンに及ぶドキュメントの分析を小さな問題に分割し、要点を抽出してメインスレッドに返すことができます。

まずは、調査、テスト、トリアージ、要約などの読み取り中心のタスクで、エージェントの並列処理を試してください。書き込み中心のワークフローを並列化する場合は、より慎重に対応してください。複数のエージェントが同時にコードを編集すると、競合が発生し、調整のオーバーヘッドが増えるおそれがあります。

基本用語

Codex のサブエージェントワークフローには、次のような関連用語があります。

  • サブエージェントワークフロー:Codex がエージェントを並列に実行し、その結果を統合するワークフロー
  • サブエージェント:特定のタスクを処理するために Codex が起動する、委任先のエージェント
  • エージェントスレッド:サブエージェントが作業を行うスレッドです。対応するクライアントでは、スレッドを開いて進捗や結果を確認できます。

サブエージェントワークフローの開始

サブエージェントの使用やエージェントによる並列作業を直接依頼してください。該当するプロジェクトやスキルの指示で委任が求められている場合は、Codex がそれに従って作業を委任することもできます。

実際に手動で開始するには、「エージェントを 2 つ起動して」「この作業を並列で委任して」「各項目に 1 つのエージェントを使用して」などと直接指示します。各サブエージェントが個別にモデルを実行してツールを使用するため、サブエージェントワークフローは、同等の処理を単一のエージェントで実行する場合よりも多くのトークンを消費します。

適切なサブエージェント用プロンプトには、作業の分割方法、Codex が次の処理に進む前にすべてのエージェントの完了を待つべきかどうか、返す要約や出力の内容を明記します。

Review this branch with parallel subagents. Spawn one subagent for security risks, one for test gaps, and one for maintainability. Wait for all three, then summarize the findings by category with file references.

モデルと推論設定の選択

エージェントごとに、適したモデルと推論設定は異なります。

サブエージェントのモデルも model_reasoning_effort も設定しない場合、 サブエージェントは親エージェントのモデルと推論強度を継承します。 明示的な起動リクエストまたは [agents] のデフォルト設定でモデルが選択され、 推論強度の明示的な指定も事前設定もない場合は、 サブエージェントはそのモデルのデフォルトの推論強度を使用します。 タスクごとに応答性能、速度、料金のバランスを取るには、プロンプトで特定のモデルまたは推論強度を指定するか、 [agents] のデフォルト値を config.toml で設定するか、カスタムエージェントのファイルに modelmodel_reasoning_effort を直接設定してください。 たとえば、高速なスキャンには gpt-5.6-terra を使用し、より高度な推論には、推論強度を高く設定した gpt-5.6 を使用します。

Codex のほとんどのタスクでは、まず gpt-5.6 を使用してください。軽量なサブエージェント作業では gpt-5.6-terra を選ぶと、 より高速かつ低コストで対応できます。

モデルの選択

  • gpt-5.6:高度な処理を担うエージェントには、まずこのモデルを使用してください。広いコンテキストを扱いながら、計画、ツールの使用、検証、完了までの対応が必要となる、不確定要素の多い複数段階の作業で最大の力を発揮します。
  • gpt-5.6-terra:深い分析よりも速度と効率を優先するエージェントに使用します。調査、読み取り中心のスキャン、大きなファイルのレビュー、補足資料の処理などに適しています。要点をまとめた結果をメインエージェントに返す並列ワーカーにも向いています。
  • gpt-5.6-luna:内容が明確な作業、反復作業、大量の作業を処理する、高速で担当範囲の限定されたエージェントに使用します。

推論強度(model_reasoning_effort

  • ultra:選択したモデルがこのレベルに対応している場合に、 最も深い推論を行うために使用します。
  • maxxhigh:選択したモデルがこれらのレベルに対応している場合に、 特に高度な推論を行うために使用します。
  • high:複雑なロジックを追跡したり、前提を確認したり、エッジケースを検討したりする必要があるエージェントに使用します(レビュー担当やセキュリティ重視のエージェントなど)。
  • medium:ほとんどのエージェントに適した、バランスの取れたデフォルト設定
  • low:タスクが単純で、速度を最優先する場合に使用します。

推論強度を上げると、応答時間とトークン消費量が増えますが、複雑な作業の品質が向上する場合があります。詳しくは、モデル設定の基本構成リファレンスを参照してください。

オーケストレーションとスレッド制御

新しいサブエージェントの起動、追加指示の振り分け、結果が返るまでの待機、エージェントスレッドの終了など、エージェント間のオーケストレーションは ChatGPT または Codex が担当します。

多数のエージェントが実行されている場合、Codex は要求されたすべての結果がそろうまで待機し、結果を統合した応答を返します。

現行のローカル版 Codex では、直接依頼された場合や、該当するプロジェクトまたはスキルの指示がある場合にエージェントが起動します。

実際の動作を確認するには、プロジェクトで次のプロンプトを試してください。

I would like to review the following points on the current PR (this branch vs main). Spawn one agent per point, wait for all of them, and summarize the result for each point.
1. Security issue
2. Code quality
3. Bugs
4. Race
5. Test flakiness
6. Maintainability of the code

サブエージェントの管理

  • メインスレッドに表示されるアクティビティからサブエージェントのスレッドを開き、作業内容を確認します。
  • 実行中のサブエージェントへの追加指示、サブエージェントの停止、完了したスレッドを閉じる操作は、Codex に直接依頼してください。

承認とサンドボックスの制御

サブエージェントは現在のサンドボックスポリシーを継承します。

サブエージェントはコンポーザーの下で選択した権限モードを継承します。Codex に作業の委任を依頼する前に、親ターンの権限モードを選択してください。

個々のカスタムエージェントのサンドボックス構成を上書きし、特定のエージェントが読み取り専用モードで動作するよう明示的に指定することもできます。

カスタムエージェント

Codex には、次の組み込みエージェントが付属しています:

  • default:汎用のフォールバックエージェント
  • worker:実装と修正を担う、実行重視のエージェント
  • explorer:読み取り中心のコードベース調査エージェント

独自のカスタムエージェントを定義するには、個人用エージェントの場合は ~/.codex/agents/ に、プロジェクト単位のエージェントの場合は .codex/agents/ に、独立した TOML ファイルを 追加します。

各ファイルで 1 つのカスタムエージェントを定義します。Codex はこれらのファイルを、起動したセッションの構成レイヤーとして読み込むため、カスタムエージェントでは通常の Codex セッション構成と同じ設定を上書きできます。この仕組みは専用のエージェントマニフェストよりも扱いが煩雑に感じられることがあり、作成や共有の仕組みが成熟するにつれて形式が変わる可能性があります。

独立した各カスタムエージェントファイルでは、次の項目を定義する必要があります:

  • name
  • description
  • developer_instructions

カスタムエージェントファイルで model または model_reasoning_effort を設定している場合は、そのファイル内の値が優先されます。 ファイルを適用する前に、Codex は各設定の値を、起動時に明示した値、 対応する [agents] のデフォルト値、 親の値の順に決定します。明示的な起動リクエストまたは [agents] のデフォルト値でモデルを選択し、 いずれにも推論強度が指定されていない場合は、Codex が そのモデルのデフォルト推論強度を使用します。model のみを設定したカスタムエージェントファイルでは、 それ以前に決定された推論強度が維持されます。選択したモデルがその推論強度に対応していない場合や別の推論強度を使用したい場合は、model_reasoning_effort も ファイルに設定してください。 sandbox_modemcp_serversskills.config などのその他のセッション設定は、カスタムエージェントファイルで省略すると、 親から継承されます。

グローバル設定

サブエージェントのグローバル設定は、引き続き構成[agents] にあります。

フィールド必須目的
agents.enabledブール値いいえマルチエージェントツールを有効または無効にします。
agents.max_concurrent_threads_per_session数値いいえプライマリスレッドを除き、同時に開ける起動済みエージェントスレッドの数に上限を設定します。
agents.default_subagent_model文字列いいえ起動するエージェントのデフォルトモデルを設定します。
agents.default_subagent_reasoning_effort文字列いいえ起動するエージェントのデフォルト推論強度を設定します。
agents.interrupt_messageブール値いいえエージェントのターンが中断されたときに、モデルに表示されるメッセージを記録します。

注:

  • agents.enabled のデフォルトは true です。マルチエージェントツールを無効にするには、false に設定します。
  • agents.max_concurrent_threads_per_session を未設定にすると、Codex がデフォルトを選択します。既存の構成では、引き続き agents.max_threads を従来のエイリアスとして使用できます。
  • 起動時に明示した値は、agents.default_subagent_modelagents.default_subagent_reasoning_effort を上書きします。
  • agents.interrupt_message のデフォルトは true です。エージェントのコンテキストから、モデルに表示される中断メッセージを除外するには、false に設定します。
  • カスタムエージェントの名前が explorer などの組み込みエージェントと一致する場合は、カスタムエージェントが優先されます。

カスタムエージェントファイルのスキーマ

フィールド必須目的
name文字列はいCodex がこのエージェントを起動または参照するときに使用するエージェント名。
description文字列はいCodex がこのエージェントを使用すべき場面を示す、利用者向けのガイダンス。
developer_instructions文字列はいエージェントの動作を定義する中核的な指示。

カスタムエージェントファイルには、サポートされている他の config.toml キーも含められます。たとえば、modelmodel_reasoning_effortsandbox_modemcp_serversskills.config です。

Codex は name フィールドでカスタムエージェントを識別します。 ファイル名をエージェント名に合わせるのが最も簡単な命名規則ですが、 正式な識別基準は name フィールドです。

カスタムエージェントの例

優れたカスタムエージェントは、用途が限定され、明確な方針を持っています。各エージェントに明確な役割と、その役割に適したツールを割り当て、担当外の作業に逸脱しないよう指示してください。

例 1:PR レビュー

このパターンでは、それぞれ専門分野を持つ 3 つのカスタムエージェントでレビューを分担します:

  • pr_explorer はコードベースの構造を把握し、根拠を収集します。
  • reviewer は、正確性、セキュリティ、テストに関するリスクを調査します。
  • docs_researcher は、専用の MCP サーバーを通じてフレームワークまたは API のドキュメントを確認します。

プロジェクト設定(.codex/config.toml):

[agents]
max_concurrent_threads_per_session = 8

.codex/agents/pr-explorer.toml

name = "pr_explorer"
description = "Read-only codebase explorer for gathering evidence before changes are proposed."
model = "gpt-5.3-codex-spark"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
developer_instructions = """
Stay in exploration mode.
Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them.
Prefer fast search and targeted file reads over broad scans.
"""

.codex/agents/reviewer.toml

name = "reviewer"
description = "PR reviewer focused on correctness, security, and missing tests."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"
developer_instructions = """
Review code like an owner.
Prioritize correctness, security, behavior regressions, and missing test coverage.
Lead with concrete findings, include reproduction steps when possible, and avoid style-only comments unless they hide a real bug.
"""

.codex/agents/docs-researcher.toml

name = "docs_researcher"
description = "Documentation specialist that uses the docs MCP server to verify APIs and framework behavior."
model = "gpt-5.6-luna"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
developer_instructions = """
Use the docs MCP server to confirm APIs, options, and version-specific behavior.
Return concise answers with links or exact references when available.
Do not make code changes.
"""

[mcp_servers.openaiDeveloperDocs]
url = "https://developers.openai.com/mcp"

この構成は、次のようなプロンプトに適しています:

Review this branch against main. Have pr_explorer map the affected code paths, reviewer find real risks, and docs_researcher verify the framework APIs that the patch relies on.

例 2:フロントエンド統合のデバッグ

このパターンは、UI のリグレッション、不安定なブラウザ操作フロー、アプリケーションコードと実行中のプロダクトにまたがる統合バグへの対応に役立ちます。

プロジェクト設定(.codex/config.toml):

[agents]
max_concurrent_threads_per_session = 6

.codex/agents/code-mapper.toml

name = "code_mapper"
description = "Read-only codebase explorer for locating the relevant frontend and backend code paths."
model = "gpt-5.6-luna"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
developer_instructions = """
Map the code that owns the failing UI flow.
Identify entry points, state transitions, and likely files before the worker starts editing.
"""

.codex/agents/browser-debugger.toml

name = "browser_debugger"
description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "workspace-write"
developer_instructions = """
Reproduce the issue in the browser, capture exact steps, and report what the UI actually does.
Use browser tooling for screenshots, console output, and network evidence.
Do not edit application code.
"""

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
startup_timeout_sec = 20

.codex/agents/ui-fixer.toml

name = "ui_fixer"
description = "Implementation-focused agent for small, targeted fixes after the issue is understood."
model = "gpt-5.3-codex-spark"
model_reasoning_effort = "medium"
developer_instructions = """
Own the fix once the issue is reproduced.
Make the smallest defensible change, keep unrelated files untouched, and validate only the behavior you changed.
"""

[[skills.config]]
path = "/Users/me/.agents/skills/docs-editor/SKILL.md"
enabled = false

この構成は、次のようなプロンプトに適しています:

Investigate why the settings modal fails to save. Have browser_debugger reproduce it, code_mapper trace the responsible code path, and ui_fixer implement the smallest fix once the failure mode is clear.