Claude CodeのTaskツールの並列実行(parallelTasksCount)は分析タスク向け
Claude CodeのTaskツールは派生元となる親エージェントの処理から子エージェントがメッセージAPI呼び出しを非同期で実行しているが、この時の子の数がparallelTasksCountの設定値になる。デフォルトでは「1」に設定されている。
これを上書きするコマンドは以下になる。設定値を上げるとトークン消費量が増加するので注意してほしい。
claude config set -g parallelTasksCount 2
parallelTasksCountはTaskツール実行時の動作を変える。簡単なテスト方法はClaude CodeにTaskツールを使ってくれと直接頼むことだ。parallelTasksCountの数だけ「Initializing N parallel agents…」がコンソールに出力される。

Tyler Burnamのポストではこの並列数がタスク完了速度に寄与するという説明をしているが、筆者が調べたところによるとそれは正確でなかった。
Taskツールの並列実行は親となるエージェント・内部的にはSynthesis Agentと呼ばれる、が子に対して1つの同じタスクをそれぞれ分析されて2つの結果を統合する、という動作をする。
なのでタスクの完了速度ではなく、分析結果の精度に影響する。OpenAIのo*-pro系の振る舞いを思い浮かべてみてほしい。
内部プロンプトはこういう形式になる。
Original task: ${A}
I've assigned multiple agents to tackle this task. Each agent has analyzed the problem and provided their findings.
${Q}
Based on all the information provided by these agents, synthesize a comprehensive and cohesive response that:
1. Combines the key insights from all agents
2. Resolves any contradictions between agent findings
3. Presents a unified solution that addresses the original task
4. Includes all important details and code examples from the individual responses
5. Is well-structured and complete
Your synthesis should be thorough but focused on the original task.
---
元のタスク: ${A}
私はこのタスクに取り組むために、複数のエージェントを割り当てました。各エージェントは問題を分析し、それぞれの調査結果を提示しています。
${Q}
これらのエージェントによって提供された全ての情報に基づき、以下の点を満たす、包括的で一貫性のある回答を統合してください。
1. 全てのエージェントからの主要な洞察を組み合わせること。
2. エージェント間の調査結果に見られる矛盾を解消すること。
3. 元のタスクに対応する、統一された解決策を提示すること。
4. 個々の回答に含まれる全ての重要な詳細とコード例を盛り込むこと。
5. 構成がしっかりしており、完全であること。
あなたの統合した回答は、徹底的でありながら、元のタスクに焦点を合わせたものでなければなりません。
各子エージェントが同じ指示に対して別々の答えを出す。それをSynthesis Agentが最終的にまとめる。コンソールには「Synthesis (combining results)→ Done with 2 parallel agents」と表示される。

この時の並列性はOSのスレッドレベルではなくJavaScriptのシングルスレッドのfor await()で評価されるジェネレータ関数になっている。
Agent自体もツールとして定義されているので2つの関係は以下のようになる
- TaskツールはAgentを呼び出せる。並列数はparallelTasksCountに準ずる
- AgentツールはAgentを呼び出せる。可能な限り非同期呼び出しするので結果的にコンソール上で並列実行することがある
- AgentツールはTaskツールを呼び出すことはできない。無限ループになってしまうので除外される