Codexのサブエージェント
(Subagents)活用ガイド
最大6並列で動く複数エージェントの設定方法・使い方・ベストプラクティスを解説します。
Codexには複数の特化したエージェントを並列実行し、結果を統合するサブエージェント(Subagents)機能が搭載されています。コードベースの探索やマルチステップの実装作業を、1つずつ順番に処理するのではなく並列で同時に進められるのが最大の利点です。
本記事では、設定方法・実際の使い方・カスタムエージェントの作り方まで実践的に解説します。
config.tomlでの設定
グローバル設定は[agents]セクションに記述します。
config.toml
[agents]
max_threads = 6 # 同時実行スレッド上限(デフォルト:6)
max_depth = 1 # ネスト深度制限(デフォルト:1)
job_max_runtime_seconds = 1800 # CSV処理のタイムアウト(デフォルト:1800秒)
| 設定項目 | 説明 |
|---|---|
max_threads | 同時に実行できるエージェントスレッドの上限 |
max_depth | エージェントがさらに子エージェントを生成できる深さ。1は直接の子エージェント生成のみ許可 |
job_max_runtime_seconds | CSVバッチ処理のタイムアウト秒数 |
ネストは深くしすぎない
max_depthをデフォルトの1より大きくすると、より深いネストが可能になりますが、トークン消費とレイテンシーが増加する傾向があります。特別な理由がなければデフォルト値のままにしておくのが無難です。
実際の使い方
サブエージェントは明示的に指示した場合のみ生成されます。プロンプトでタスクを分解して指示するだけです。
プロンプト例
Spawn one agent per module: fix the auth bug in src/auth/,
add validation to src/api/orders.ts, and update the tests
in tests/integration/. Wait for all, then summarise results.
Codexはこの指示を解釈し、並列実行をオーケストレーションし、追加の指示があれば動作中のスレッドへルーティングし、すべてのエージェントが完了した時点で結果を統合して返します。
レビュー観点で分担させる例
Review this branch. Have pr_explorer map code paths,
reviewer find risks, and docs_researcher verify APIs.
/agentコマンドでの管理
CLIで/agentを実行すると、アクティブなエージェントスレッド間を切り替えたり、進行中のスレッドを検査したりできます。実行中のサブエージェントに直接指示を出して方向修正させたり、停止させたりすることも可能です。
ビルトインエージェント
| エージェント名 | 役割 |
|---|---|
default | 汎用フォールバック |
worker | 実装・修正作業に特化 |
explorer | コードベースの探索に最適化 |
カスタムエージェントを定義する
チーム固有の役割(レビュアー・セキュリティ監査担当・ドキュメント調査担当・テスト作成担当など)は、独立したTOMLファイルとして定義できます。
| 配置場所 | 用途 |
|---|---|
~/.codex/agents/ | 個人用のカスタムエージェント |
.codex/agents/ | プロジェクト単位のカスタムエージェント |
カスタムエージェント定義の例(必須フィールド)
name = "security_auditor"
description = "セキュリティ脆弱性の監査に使用する"
developer_instructions = """
OWASP Top 10の観点でコードをレビューし、
発見した脆弱性ごとに深刻度と再現条件を報告すること。
"""
オプションフィールドとして、UI表示用の別名候補(nickname_candidates)、使用モデル(model)、推論レベル(model_reasoning_effort)、権限レベル(sandbox_mode)、統合するMCPサーバー(mcp_servers)などを指定できます。エージェントごとにモデルや権限を変えられるため、「探索担当は軽量モデルで高速に、実装担当は高精度モデルで」といった使い分けが可能です。
spawn_agents_on_csv(実験的機能)
CSVファイルの行ごとに1つのワーカーを生成し、バッチ処理を並列実行できる実験的機能です。
| パラメータ | 説明 |
|---|---|
csv_path | ソースCSVファイルのパス |
instruction | {column_name}プレースホルダを含むプロンプトテンプレート |
id_column | 安定したIDとして使う列 |
output_schema | 返却するJSON形式の定義 |
output_csv_path | 結果の出力先 |
max_concurrency | 並列実行数の上限 |
max_runtime_seconds | タイムアウト秒数 |
各ワーカーは結果報告が必須
各ワーカーは処理完了時に必ずreport_agent_job_resultを1回呼び出す必要があります。この点をプロンプトのテンプレートにも明記しておくと、報告漏れによる集計ミスを防げます。
ベストプラクティス
並列数は3〜5が実用的な上限
アクティブな開発においては、3〜5並列が実用上のスイートスポットとされています。それ以上に増やすと、生成のスループットよりもレビューの負荷の方が大きくなり、ボトルネックが「コードを書くこと」から「コードを検証すること」へ移ってしまいます。
ナロウで意見を持つエージェント設計
1つのエージェントに何でもやらせるのではなく、明確な職務を割り当て、その職務に適したツールセットだけを配置する「ナロウで意見を持つ」設計が効果的とされています。
権限はセッションから継承される
サブエージェントは親セッションのサンドボックスポリシーを継承します。インタラクティブセッション中に/permissionsで権限を変更すると、子エージェントにもその変更が反映されます。
制限事項
- エージェントの生成は明示的な指示があった場合のみ行われる(自動では生成されない)
- 各サブエージェントはトークン消費・処理を独立して行うため、並列数を増やすほどコストも比例して増える
- 非インタラクティブモードでは、承認されていないアクションはエラーとして返される
- CSV処理機能(
spawn_agents_on_csv)は実験的機能であり、今後仕様が変更される可能性がある
よくある質問
Q. サブエージェントは自動的に生成されますか?
A. されません。ユーザーが明示的にタスクの分担を指示した場合にのみ生成されます。「これを並列でやって」と伝えることで初めて動きます。
Q. 並列数を増やせば増やすほど速くなりますか?
A. 一概にそうとは言えません。3〜5並列を超えると、生成された結果をレビューする負荷の方が大きくなり、かえって全体の効率が落ちることがあります。
Q. カスタムエージェントに個別のモデルを設定できますか?
A. できます。TOMLファイルのmodelフィールドでエージェントごとに使用モデルを指定できるため、探索担当は軽量モデル、実装担当は高精度モデルといった使い分けが可能です。
Q. Claude Codeのサブエージェントと同じような機能ですか?
A. 「タスクを分担して並列実行する」という基本コンセプトは共通していますが、設定ファイルの形式(TOMLかMarkdownか)や管理コマンドは異なります。両方使う場合は、それぞれの設定方法の違いに注意してください。
まとめ
本記事のポイント
- Codexのサブエージェントは
config.tomlの[agents]セクションで最大6並列(デフォルト)まで設定可能 - 生成は明示的な指示があった場合のみ。プロンプトでタスクを分担して伝えるだけで動く
- カスタムエージェントはTOMLファイルで定義し、モデル・権限・ツールセットをエージェントごとに変えられる
- 並列数は3〜5が実用上のスイートスポット。増やしすぎるとレビュー負荷がボトルネックになる
複数ファイルにまたがる修正や、探索・実装・レビューを同時並行で進めたいときに強力な機能です。まずは3並列程度の小さなタスク分担から試してみるのがおすすめです。
※本記事の情報は2026年7月時点のものです。Codexの仕様は変更される可能性があります。


