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 で中身」

最小手順を振り返ります。

  1. CLAUDE_CODE_WORKFLOWS=1 で有効化
  2. workflows/<name>.jsexport default async function ({ agent }) { ... } を書く
  3. agent() の呼び出しを葉として、それ以外は普通の JavaScript(並列・分岐・ループ)
  4. /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 を相棒にしたプロンプト連鎖の実演を含めて統合しています。

#Claude Code#個人開発#リファレンス