Claude Code の Workflow ツール(v2.1.147 新機能)を試す
Claude Code の subagents を使い始めると、「並列で重い仕事を投げて、まとめて受け取る」という体験ができます。Explore で深く検索させ、別の subagent でレビューさせ、main session で意思決定する ── 個人開発の研究フェーズは、これだけで段が変わります。
ただ、subagents には 1 つ弱点があります。毎回まったく同じ通り道で走ってほしいタスクには、向いていない。LLM の判断で「次にどの agent を呼ぶか」が決まるため、同じ依頼でも実行順序や使う agent が回によってブレます。リサーチには強い一方、**「リリース前の自動レビュー」「定期チェック」**のような、手順が決まりきった処理には不向きでした。
ここに 2026-05-22 公開の v2.1.147 で追加されたのが、Workflow ツールです。決定論的(deterministic)にマルチエージェントを束ねる仕組みで、ステップの順序・分岐・繰り返しを JavaScript ファイルで宣言します。LLM は各ステップの中身に集中し、段取りそのものはコードで固定される ── これが Workflow の心臓部です。
Workflow は 研究プレビュー段階で、既定オフ。本記事では、有効化・最小例・既存の subagents との使い分けを、個人開発者の視点で通します。
subagents との違い ── 「LLM が次を決める」と「コードが順序を決める」
最初に、subagents と Workflow の役割をはっきりさせます。同じ「マルチエージェント」でも、何が手綱を握っているかが違います。
| subagents(Agent ツール) | Workflow ツール | |
|---|---|---|
| 何が順序を決める | LLM が毎回判断 | コードが宣言的に固定 |
| 再現性 | 回によって順序がブレる | 同じ入力なら同じ通り道 |
| 向く用途 | 探索・リサーチ・1 回限りの深掘り | 定型タスク・リリース前ゲート・自動レビュー |
| 中断・再開 | 基本は 1 回完走 | 途中で止まっても再開可能 |
| トークン消費 | エージェントごとに新しい context | 同上(leaf エージェントだけ消費) |
| 既定 | 有効 | オフ(環境変数で有効化) |
「バグが入り得ない手順」を回したいときは Workflow、「毎回違う形の問い」を投げたいときは subagents ── これが感覚的な使い分けです。
有効化:CLAUDE_CODE_WORKFLOWS=1
Workflow は研究プレビューなので、デフォルトでは ON になっていません。次の環境変数を立てて Claude Code を再起動します。
# 1 セッションだけ
CLAUDE_CODE_WORKFLOWS=1 claude
# シェル全体で(zsh の場合)
echo 'export CLAUDE_CODE_WORKFLOWS=1' >> ~/.zshrc
source ~/.zshrc
claude
起動後、/help を見ると Workflow ツールがツール一覧に追加されているのが確認できます。**「自分から取りに行ったユーザーだけに開く」**設計で、仕様は今後変わる前提で触ること、と公式が明記しています。
最小例:Workflow ファイルを 1 つ書いて走らせる
Workflow は JavaScript ファイルです。workflows/ ディレクトリの下に置きます(場所は設定可能ですが、規約に従うのが楽)。
// workflows/release-check.js
export default async function ({ agent, log }) {
log('Phase 1: 並列で 2 観点のレビュー');
const [security, ux] = await Promise.all([
agent({
prompt: 'いまの diff をセキュリティ観点でレビュー。SQL injection / 認証漏れ / 秘密漏洩を中心に。',
subagent_type: 'Explore',
}),
agent({
prompt: 'いまの diff を UX 観点でレビュー。エラー時の表示と境界条件の挙動を中心に。',
subagent_type: 'Explore',
}),
]);
log('Phase 2: 結果を統合して判定');
const verdict = await agent({
prompt: `セキュリティレビュー結果:\n${security}\n\nUX レビュー結果:\n${ux}\n\nリリースして問題ないか、Yes / No で答え、No なら理由を 3 行以内で。`,
});
log('Phase 3: 結果保存');
return { security, ux, verdict };
}
Workflow は普通の JavaScript です。Promise.all で並列、if で分岐、for でループ ── どれも普通のコードとして書けます。agent() の呼び出しだけが、LLM のトークンを消費する「葉」。それ以外の段取りは決定論的にコードで進みます。
走らせ方は、Claude Code のチャットから:
/workflow run workflows/release-check.js
Workflow は 途中で止まっても再開できる設計です。長い段取りの 8 ステップ目で失敗しても、修正後にその 8 ステップ目から再開できる ── これは subagents との大きな違いです。
subagents との使い分けパターン
実際に使うときの判断軸を、2 つにまとめます。
Workflow を選ぶとき
- 毎週/毎日まわしたい定型処理:依存関係の最新化チェック、リリース前のゲート、PR の自動レビュー
- 多段ステップで途中失敗が起こりうる:1 ステップが落ちても、最初からやり直したくない
- 複数人で運用したい:ファイルとして版管理できるので、チームで「同じ手順」を共有できる
- CI / GitHub Actions から呼びたい:
-p(非対話)モードで/workflow runを投げる構成
subagents(Agent ツール)を選ぶとき
- 1 回限りのリサーチ:あれもこれも見たいが、見終わったらもう要らない
- 何を呼ぶべきかも自分で決めてほしい:途中で別の観点を追加したい
- 入力の形が毎回違う:定型化するメリットが薄い
個人開発の最初の数ヶ月は、ほぼ subagents だけで足ります。**「同じ手順を 3 回以上やっている自分」**を見つけたとき、それが Workflow 化のサインです。
挫折ポイント
- CLAUDE_CODE_WORKFLOWS の有効化を忘れる:
/workflowが出てこない時は、まず環境変数を確認します。echo $CLAUDE_CODE_WORKFLOWSが 1 でなければ、シェルの再起動も必要です。 agent()の中で副作用を持たせる:Workflow は「決定論的に再実行できる」ことが利点なので、agent()の中で外部 API を叩いたり DB を書き換えたりすると、再開時に二重実行になります。外部書き込みは Workflow の最後の 1 ステップに集約するのが原則。- Workflow に LLM 判断を増やしすぎる:「次にどうするか LLM に決めさせる」コードを増やすと、決定論性が壊れます。それは subagents の仕事です。Workflow の
agent()呼び出しは「最終結果がほぼ同じ形に揃う」プロンプトに留めるのがコツ。 - 長すぎる Workflow を 1 ファイルに書く:分岐とループが 50 行を超える頃には、保守が辛くなります。**「段ごとに別ファイル」「リスト形式に分解」**で短く保ち、最終的にどうしても複雑なら subagents に逃がす判断も。
- 研究プレビュー段階=仕様変更あり:API(
agentのオプション名・戻り値の形)は変わる可能性があります。本番の重要な手順を Workflow に乗せるなら、変更時の改修コストを織り込んでおく。
まとめ:Workflow は「コードで段取り、LLM で中身」
最小手順を振り返ります。
CLAUDE_CODE_WORKFLOWS=1で有効化workflows/<name>.jsにexport default async function ({ agent }) { ... }を書くagent()の呼び出しを葉として、それ以外は普通の JavaScript(並列・分岐・ループ)/workflow run workflows/<name>.jsで実行(途中失敗時は再開可能)
ここまでで、「LLM の気まぐれに左右されない、決まりきった段取り」 が、個人開発のリポジトリの中に住まわせられます。subagents が 広く深く の探索、Workflow が 同じ通り道を確実に の運用 ── 2 つを役割で分けることで、Claude Code の使い方は段が変わります。
研究プレビュー段階なので、仕様は変わる前提で触りつつ、まずは 「リリース前ゲート」「依存最新化チェック」 のような、繰り返しが見えている定型処理から Workflow に乗せてみる ── これが最初の 1 本としては安全な題材だと思います。
Claude Code 自体の他の使いどころは、姉妹記事として subagents で並列リサーチ / MCP サーバで外部ツール連携 / hooks でイベント駆動 を書いています。Workflow を含めて、Claude Code を「ターン制チャット」から「自動化エンジン」に拡張する 4 つの引き出し、として並べて読めます。
最初の 1 つの Workflow を、まず /workflow run するところから。
ツールは揃った、自動化もできる、ファイルも残せる。けれど 読まれない/登録に至らない ── その構造を WHY → HOW で 1 冊にまとめたのが、下記の本です。個人開発者・インディー Web 作者・動画作者向けに、LP・短文・メールの戦場別の書き方と、Claude を相棒にしたプロンプト連鎖の実演を含めて統合しています。