Claude Code: 同じ手順で何度も回す作業は、小さな dynamic workflow(JS)にして保存する
dynamic workflow は「数百のサブエージェント」用とは限らない。10体程度でも、同じ順番・同じ分担で毎回回したい作業なら JS ファイルに書いておくと、どのサブエージェントをどの順で動かすかを自分で固定できる。スキルより挙動が読みやすい。
どんな時に使う?
- 「調査3本を並列→まとめ→レビュー」のように、毎回同じ段取りで回している作業がある
- スキルに手順を書いても、エージェントが段取りを省いたり順番を変えたりする
- Claude Code 開発チームの @lydiahallie は「同じやり方で再実行したいタスクなら、10体くらいでも workflow にしている」と書いている
手順
- まず普段どおり頼んでみて、うまくいった段取りを決める。大きな作業なら
ultracodeを付けると Claude 自身が workflow を書いて走らせる(/effort ultracodeで常時オン) - 走った workflow は
/workflowsの画面でsを押すとコマンドとして保存できる(p一時停止、x停止、r再実行)。保存先はプロジェクトなら.claude/workflows/、自分用なら~/.claude/workflows/ - 中身はただの JS なので、直接直してよい。骨格は次のとおり
js
export const meta = { name: "triage-3", description: "3観点で並列調査してまとめる" }; const [a, b, c] = await parallel([ () => agent("仕様の差分を調べる: " + args), () => agent("影響するテストを洗い出す: " + args), () => agent("似た過去の修正を探す: " + args), ]); phase("まとめ"); return await agent(`3つの結果を1つの計画にまとめる:\n${a}\n${b}\n${c}`);pipeline()で直列、parallel()で並列、schemaを渡すと JSON で返させられる(形が崩れたら最大5回やり直す)
- 書き方は同梱の
/workflow-authoringスキルに聞ける。直したら/reload-skillsで読み込み直す - 規模の目安は
workflowSizeGuideline(small=5体未満、medium=10体未満が既定、large=50体未満、unrestricted)。同時に動くのは既定16体(CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTSで1〜256)、1回の実行で最大1,000体
注意点
- 再現性を守るため、workflow の中では
Date.now()とMath.random()は例外になり、import()も使えない claude -pで使うときは許可ルールにWorkflow(またはWorkflow(<名前>))が必要。全部止めるならdisableWorkflowsかCLAUDE_CODE_DISABLE_WORKFLOWS=1- エージェント数が25体か150万トークンを超えそうだと「Large workflow」の警告が出る。小さく保つほど費用も読みやすい
- クラウドの Managed Agents 側の workflows は別物: Claude Managed Agents: dynamic workflows で「計画→多エージェント実行」を回す。手順を Markdown で持つなら スキルは9つの型で棚卸しし、Gotchas 節を育てる(Anthropic 社内の運用から)
出典
- @lydiahallie · 2026-10-29
- 公式ドキュメント: code.claude.com
- 公式ブログ「A harness for every task」: claude.dev