v2.1.172でサブエージェントが最大5階層まで入れ子で動けるようになった。これを機に、Claude Codeのマルチエージェントワークフローをどう組み立てるか整理してみる。
単一エージェントには限界がある:
マルチエージェントパターンはこれらを解消する。そして5階層ネストが可能になったことで、より自然な「タスク分解→委譲→再委譲」のフローが組める。
課題: 100ファイルのコードベースをTypeScriptへ移行したい
親エージェント(全体調整)
└── サブエージェント A(src/components/ 担当)
└── サブサブエージェント A-1(Button, Input, Form コンポーネント)
└── サブサブエージェント A-2(Modal, Drawer, Toast コンポーネント)
└── サブエージェント B(src/hooks/ 担当)
└── サブエージェント C(src/utils/ 担当)
Workflowスクリプトで書くとこんな感じ:
const dirs = ['components', 'hooks', 'utils']
const results = await pipeline(
dirs,
dir => agent(`Convert all JS files in src/${dir}/ to TypeScript. Run type checks after.`)
)
Hacker Newsでも話題になっているのが CLAUDE.mdへの指示追記。
# CLAUDE.md
## 絶対にやってはいけないこと
- console.log() を本番コードに残さない
- `any` 型を使わない(`unknown` を使う)
- データベースのテストにモックを使わない(実DBを使う)
## このプロジェクトの規約
- コンポーネントはsrc/components/ に置く
- APIエンドポイントはsrc/api/ に書く
- テストファイルは __tests__/ ディレクトリに置く
Claude Codeは起動時にこのファイルを自動読み込みする。一度ミスを指摘したらCLAUDE.mdに追記しておけば、同じ失敗が繰り返されない。
大きな機能を実装するとき、いきなりコードを書かせるより仕様書を先に作らせるほうが品質が上がる:
spec.md を書かせる(要件、エッジケース、API設計)あなた: 「ユーザー認証機能のspecを書いて。JWTベース、リフレッシュトークンあり」
Claude: (spec.md を生成)
あなた: 「この仕様でコードを実装して」
Claude: (仕様通りに実装)
v2.1.172以降は、spec作成エージェントが各セクションの詳細化をさらに別エージェントに委譲することもできる。
長い作業セッションでコンテキストが膨らんできたら:
/compact で手動コンパクションCLAUDE.md か別ファイルにメモさせるv2.1.172の修正で、1Mコンテキストを使い切るとセッションが固まるバグが解消された。ただし通常は早めにコンパクションするほうが品質が安定する。
サブエージェントのネスト実行が可能になった今、Claude Codeのパワーは「いかにタスクを適切に分解できるか」にかかってきた。CLAUDE.mdで繰り返しミスを封じ、Workflowでオーケストレーションを組み、スペック先行で品質を担保する——この3点セットを押さえておけば大きくはずれない。