あらゆるタスクに最適なハーネス:Claude Codeのダイナミックなワークフロー
原文作者:@trq212
翻訳:Peggy
編集者注:Claude Code はコードアシスタントから、オーケストレーション可能なエージェントワークステーションへと進化しています。
紹介されているワークフローの核心的価値は、Claudeが単一のコンテキストウィンドウ内で「考えた後で実行する」にとどまらず、タスクに応じて実行フレームワークを動的に生成できることです。タスクを分割し、サブエージェントを割り当て、並列処理を行い、相互検証し、繰り返しイテレーションを実行するだけでなく、異なるエージェント同士に競争を促し、最終的に結果を統合することも可能です。
これにより、Claude Code の使用シーンが明確に拡大しています。コード移行、リファクタリング、テスト再現、コードレビューにとどまらず、深層研究、事実確認、履歴書選考、事故の振り返り、ルールの蓄積、ビジネスプランの評価、命名のブレインストーミングなど、非技術的なタスクにも活用できます。多くの複雑な作業は本質的にプログラミングと似ており、問題を分解し、コンテキストを分離し、仮説を検証し、大量の詳細を処理し、複数の候補パスから選択する必要があります。
動的ワークフローは、大規模モデルが長期間のタスクでよく発生する以下の問題を解決しようとしています:途中で完了を宣言する「エージェントの怠惰」、自らの結論を優先する「自己バイアス」、そして複数回の実行後に元の目標から徐々に逸れる「目標のドリフト」。タスクを独立したコンテキストを持つ複数のClaudeに割り当てることで、複雑なタスクを「単一エージェントによる長距離走」から「複数エージェントによる協働」へと変革します。
もちろん、ワークフローも万能な解決策ではありません。通常、より多くのトークンを消費し、すべての一般的なコーディングタスクに適しているわけではありません。しかし、それは重要な方向性を示しています:今後のAIツールの競争は、単一のモデルがどれほど賢いかだけでなく、複雑な目標に基づいて信頼でき、再利用可能で、監査可能な実行プロセスを構築できるかにかかっているのです。
以下为原文:
デフォルトのClaude Code実行フレームワークはプログラミング向けに構築されていますが、多くの他の種類のタスクにも適用可能です。多くのタスクは構造的にプログラミングタスクと似ていることが判明しています。ただし、研究、セキュリティ分析、エージェントチームの協力、またはコードレビューなどの特定のタスクタイプでは、最適なパフォーマンスを実現するために、Claude Codeの上にカスタム実行フレームワークを構築する必要があります。
Workflows(工作流)により、ClaudeがClaude Code内で上記の問題やその他の種類の問題をよりネイティブに解決できるように、実行フレームワークを動的に作成できます。これらのワークフローを他のユーザーと共有し、再利用することもできます。
この記事では、私がワークフローを初めて使用した際の経験と学びを共有し、その機能をより十分に活用するお手伝いをします。
ただし、関連するベストプラクティスはまだ形成途中であることにご注意ください。ダイナミックなワークフローは通常、より多くのトークンを消費するため、使用するタイミングと方法を慎重に検討してください。
注:本記事はClaude Blogにも掲載されています。
例示ペルプ
技術的な詳細に入る前に、ワークフローの可能性を理解するためのいくつかの例 prompt をご提示します:
このテストは約50回実行ごとに1回失敗します。再現するためのワークフローを構築し、仮説を立て、異なるワークツリーで対抗テストを実施してください。/goal 仮説が検証されるまで停止しないでください。
ワークフローを使用して、最近50回のセッションを振り返り、繰り返し行っている修正を抽出し、これらの繰り返し発生する問題をCLAUDE.mdルールに変換してください。
ワークフローを使用して、過去6か月のSlackの#incidentsチャンネルを検索し、繰り返し発生しているが、誰もチケットを提出していない根本原因を特定してください。
私のビジネスプランを取得してワークフローを実行し、異なるエージェントがそれぞれ投資家、顧客、競合の視点からそれを分解してください。
80通の履歴書が含まれるフォルダーがあります。ワークフローを使用して、バックエンド職の要件に従ってそれらを並べ替え、上位10名を再確認してください。評価基準を構築するため、AskUserQuestionツールを使って私に質問してください。
このCLIツールに名前をつける必要があります。ワークフローを使用して複数の候補をブレインストーミングし、トーナメント方式で上位3つを選出します。
ワークフローを使用して、私たちのUserモデルをすべての場所でAccountに再命名します。
私のブログの下書きを読み、ワークフローを使用してコードリポジトリを確認し、すべての技術的判断を検証してください。誤った内容を公開したくありません。
ダイナミックワークフローはどのように機能しますか
動的ワークフローは、サブエージェントを生成および調整するための複数の特殊関数を含むJavaScriptファイルを実行します。

動的ワークフローには、データを処理するための標準的なJavaScript関数であるJSON、Math、Arrayも含まれます。
特に注目すべきは、動的ワークフローが特定のエージェントがどのモデルを使用するか、またサブエージェントが自らのワークツリー内で実行されるかどうかを決定できることです。これにより、Claudeはタスクの要件に応じて、必要な知能レベルと隔離レベルを自ら選択できます。
ワークフローが中断された場合(たとえばユーザーが手動で操作した場合やターミナルが終了した場合)、セッションを復元すると、ワークフローは中断した場所から再開できます。
なぜ動的ワークフローが必要なのか
デフォルトのClaude Code実行フレームワークにタスクを処理させると、計画と実行を同じコンテキストウィンドウ内で同時に実行する必要があります。多くのプログラミングタスクにはこの方法が非常に効果的ですが、長時間実行、大規模並列、または高度に構造化された対抗的タスクでは、時折失敗することがあります。
理由は、Claudeが単一のコンテキストウィンドウ内で複雑なタスクを処理する時間が長くなるほど、特定の幾つかの失敗モードに陥りやすくなることです:
Agentic laziness(智能体惰性)とは、Claude が複数の部分からなる非常に複雑なタスクを処理する際に、真正に完了する前に停止し、部分的な進捗のみでタスクが完了したと主張することを指す。たとえば、セキュリティレビューで 50 つの項目のうち 20 つだけを処理しただけで作業を終了するなど。
自我偏好偏差(Self-preferential bias)とは、Claudeが、特定の評価基準に基づいて自らの生成したコンテンツを検証または評価する際に、自らの結果や発見を優先する傾向を指す。
ゴールドリフト(目標漂移)とは、複数の実行プロセスを経る中で、Claude が初期の目標への忠実度が次第に低下することを指します。特にコンテキストが圧縮された場合、各要約によって情報が失われ、エッジケースや「X を行わない」などの制約条件が見落とされる可能性があります。
ワークフローを作成することで、複数の独立したClaudeを編成し、それぞれに独自のコンテキストウィンドウを与え、互いに隔離された明確なタスクに集中させることで、これらの問題を軽減できます。
動的ワークフローと静的ワークフロー
以前にClaude Agent SDKやclaude -pを用いて、複数のClaude Codeインスタンスを調整するための静的ワークフローを作成したことがあるかもしれません。
しかし、静的ワークフローはさまざまなエッジケースをカバーする必要があるため、一般的な傾向があります。Claude Opus 4.8 と動的ワークフローの登場により、Claude は今や、あなたの具体的な使用シーンに合わせてカスタマイズされた実行フレームワークを生成するほど十分に賢くなりました。

動的ワークフローを使用する際の実用的なパターン
Claudeに直接動的ワークフローを作成させることも、トリガー語「ultracode」を使用してClaude Codeがワークフローを作成できるようにすることもできます。
ただし、動的ワークフローがどのように機能するかというメンタルモデルを構築できれば、いつそれを使用すべきかを判断しやすくなり、プロンプトを通じてClaudeを導くのも容易になります。
Claudeはワークフローを構築する際、一般的に以下のパターンを使用し組み合わせます:

分類して実行:分類エージェントを使用してタスクの種類を判断し、タスクの種類に応じて異なるエージェントまたはアクションにルーティングします。また、フローの最終段階で分類器を使用して出力結果を判断することもできます。
ファンアウトと統合:タスクを複数の小さなステップに分割し、各ステップをエージェントが処理した後、その結果を統合します。この方法は、タスクに多数の小さなステップが含まれる場合や、各ステップがクリーンなコンテキストウィンドウを必要とし、相互の干渉や汚染を避ける必要がある場合に特に適しています。統合ステップは「バリア」として機能し、すべてのファンアウトされたエージェントの完了を待って、それらの構造化された出力を1つの結果に統合します。
対抗的検証:生成されたエージェントごとに、独立したエージェントを実行し、特定の評価基準またはガイドラインに従ってその出力を対抗的に検証する。
生成とフィルタリング:あるテーマを中心に多くのアイデアを生成し、評価基準や検証プロセスに基づいてフィルタリングし、重複を除去して、テスト済みで最高品質のアイデアのみを返却する。
トーナメント:仕事を分割するのではなく、エージェント同士を競わせます。N個のエージェントを生成し、それぞれ異なる方法で同じタスクを完了しようと試みます。その後、プロンプトまたはモデルがエージェントの結果をペアごとに比較して評価し、勝者を決定します。
繰り返し実行して完了する:作業量が不明なタスクの場合、固定ラウンドを設定せず、新しい発見が不再出現したり、ログにエラーが不再出現するなどの停止条件を満たすまでエージェントを繰り返し生成します。
使用シーン
Claude Code が動的ワークフローをどのように、いつ作成するかについて、より創造的に考えることができます。非技術的な作業でも、ワークフローは時としてより役立つことがあります。

移行と再構築
Bunは、ZigからRustへワークフローを書き直しました。詳細なプロセスについては、JarredがX上で投稿した記事をご覧ください。
重要なのは、タスクを呼び出しポイント、失敗テスト、モジュールなどの処理ステップに分割することです。各修正タスクに対してworktree内でサブエージェントを起動し、修正を完了させた後、別のエージェントが対抗的なレビューを行い、最終的に結果をマージします。エージェントにリソース消費の高いコマンドを使用しないよう明確に指示することで、ローカルマシンのリソースを枯渇させることなく並列処理の度合いを最大化できます。
深度研究
Claude Code では、動的ワークフローを使用する deep research skill(/deep-research)をリリースしました。具体的には、ウェブ検索を並列実行し、ソースを収集し、関連する主張に対して対抗的検証を行い、引用付きのレポートを総合的に生成します。
しかし、このような研究はウェブ検索にのみ適用されるわけではありません。たとえば、ClaudeにSlackのコンテキストからステータスレポートを整理させたり、コードベースを深く調査してある機能がどのように機能しているかを調べたりすることもできます。
深度検証

一方で、報告書があり、その中に記載されたすべての事実的な主張と出典を検証したい場合、ワークフローを生成できます。まず、エージェントがすべての事実的な主張を特定し、その後、各主張に対してサブエージェントを起動して詳細な検証を行います。さらに、出典を追跡するサブエージェントの信頼性を確認するために、バリデーションエージェントを設けることもできます。
並べ替え

あるプロジェクトのセットがあり、そのセットを某种定性指標に基づいて並べ替えたいと考えているかもしれません。そのような指標の評価にClaude Codeが得意であると信じている場合があります。たとえば、バグの深刻度に基づいてサポートチケットを並べ替えるなどです。
しかし、1つのプロンプトで1000行以上のコンテンツを並べ替えようとすると、品質が低下し、コンテキストウィンドウに収まりきらなくなります。より良い方法は、トーナメントメカニズムを実行し、2つずつの比較エージェントからなるパイプラインを構築することです。これは、比較判断が絶対スコアリングよりも通常より信頼できるためです。または、まず並列にバケットソートを行い、その後結果をマージします。各比較は独立したエージェントによって実行されるため、決定論的ループによりトーナメント構造全体を維持でき、現在実行中の順序のみをコンテキストに保持すればよいです。
記憶とルールの遵守

特定なルールのセットがある場合、Claude は CLAUDE.md でこれらのルールを確認しても、しばしば見落としたり、適切に実行しなかったりします。そのような場合、これらのルールを列挙し、検証エージェントに各ルールを一つずつチェックさせるワークフローを作成できます。各ルールに対して検証エージェントを割り当て、これらのルールの妥当性を審査する「疑い深い」人格のサブエージェントを作成することで、過剰な誤検出を避けるのに役立ちます。
逆も可能である:最近の会話とコードレビューのコメントを振り返り、繰り返し修正した点を特定する。並列エージェントにこれらの問題をクラスタリングさせ、各候補ルールに対して対抗的検証を行い、それが実際のエラーを本当に防止できるかを確認する。最後に、選別されたルールをCLAUDE.mdに再び反映させる。
根本原因調査
最も効果的なデバッグ方法は、いくつかの独立した仮説を立て、それらを一つずつ検証することです。しかし、一つのコンテキストウィンドウのみを使用すると、Claudeは自己の好みのバイアスに陥る可能性があります。
ワークフローは構造的にこの状況を防ぐことができます:複数のエージェントを起動し、それぞれが重複しない証拠に基づいて仮説を生成します。たとえば、異なるエージェントがログ、ファイル、データをそれぞれ確認します。その後、各仮説は一連の検証者と反論者によって審査されます。
これはコードにのみ適用されるわけではありません。ワークフローは、販売分析(例:「3月の売上がなぜ下がったのか?」)やデータエンジニアリング(例:「このパイプラインはなぜ失敗したのか?」)、あるいはあらゆる事後レビューに使用できます。
大規模なトリアージ

各チームには、サポートキュー、バグ報告、または人間が完全に処理できないその他の積み残しが存在します。トリアージワークフローにより、各項目を分類し、既に追跡されている問題と重複を排除し、対応を取ることができます。これは修正を試みることを意味することもあれば、人間のユーザーに引き継ぐことを意味することもあります。
トリアージワークフローにおいて、有効なパターンはクアランタイン(隔離)です。つまり、信頼できない公開コンテンツを読み取るエージェントには、高権限操作を実行させず、高権限操作は専門のアクションエージェントが実行すべきです。
分診ワークフローを/loopと組み合わせて、Claudeにこれらのタスクを継続的に実行させることができます。
探索と品位の判断
解決策の異なるアプローチを探索する必要がある場合、特にデザインや命名といった審美的判断を要するタスクで、評価基準のセットが役立つ場合には、workflows が有用です。
Claudeに多数の案を探索させ、審査エージェントに「良い案とは何か」に関する評価基準を提供できます。審査エージェントが結果が基準を満たしたと判断した時点で、タスクは完了します。異なる案は、この評価基準に基づいてトーナメント方式で順位付けまたはフィルタリングすることもできます。
Evals(評価)
ワークツリーで独立したエージェントを起動し、比較エージェントを起動して、評価基準に基づいて出力を比較・スコアリングすることで、特定のタスクに対して軽量な評価を実行できます。たとえば、自身で作成したスキルが特定の基準を満たしているかどうかを評価・改善できます。
モデルとインテリジェントなルーティング:タスクに最適化された分類エージェントを作成し、どのモデルを使用するかを決定できます。タスクが多数のツール呼び出しを伴い、実行前に調査することで最適なモデルを特定できる場合、この方法は非常に有効です。
たとえば、「auth モジュールの動作を説明する」というタスクの場合、最適なモデルは auth モジュール内のファイル数やコードベースの構造によって異なります。分類エージェントはまずこの調査を完了し、予想される複雑さに応じてタスクを Sonnet または Opus にルーティングします。
いつ動的ワークフローを使用すべきでないか
ワークフローはまだ新しいものです。多くの使用シナリオで、従来の方法をはるかに上回る効果をもたらすことができますが、すべてのタスクに必要というわけではなく、トークン消費を大幅に増加させる可能性があります。
ワークフローは、Claude Codeの能力の境界を新しい方法で拡張できるタスクに活用するのが最適です。通常のプログラミングタスクについては、まず自問してください:このタスクは本当により多くの計算リソースを必要としていますか?たとえば、ほとんどの従来のプログラミングタスクには、5人のレビュー担当者からなるグループは必要ありません。
動的ワークフローを構築するためのテクニック
プロンプト設計
動的ワークフロー用のプロンプトを書く際には、詳細をできるだけ豊かにすると、効果が通常より高くなります。特に、前述の具体的なテクニックを使用する場合です。
ワークフローは大規模なタスクにのみ適用されるわけではありません。モデルに「クイックワークフロー」の使用を指示することもできます。たとえば、ある仮説を検証するための迅速な対話的レビュープロセスを作成できます。
/goal と /loop を組み合わせて使用
分診、研究、または検証ワークフローなど、繰り返し実行可能なワークフローを使用する場合、/loop と組み合わせて一定間隔で実行し、/goal で明確な完了条件を設定できます。
トークン使用予算
動的ワークフローに明確なトークン使用予算を設定して、タスクが消費するトークン数を制限できます。prompt に「use 10k tokens」のような予算要件を記述すると、上限が 10k トークンに設定されます。
ワークフローの保存と共有
ワークフロー メニューで「s」を押すと、ワークフローを保存できます。 ~/.claude/workflows に保存するか、スキルを通じて配布できます。

skill で共有したい場合は、JavaScript workflow ファイルを skill フォルダーに配置し、SKILL.md で参照してください。より柔軟性を高めるには、Claude に skill 内の workflows を逐語的に実行するスクリプトではなくテンプレートとして扱うよう指示することもできます。

全新的世界
ワークフローはClaude Codeを拡張するための有用な新しい方法です。これを出発点として考えてください。最適な使用方法について、まだ多くのことを探求する必要があります。あなたの発見をお知らせください。
Thariq Shihipar および Sid Bidasaria(@sidbid)は、Anthropic の技術チームメンバーで、Claude Code の関連業務を担当しています。
[原文リンク]
律動 BlockBeats 公式コミュニティへようこそ:
Telegram サブスクリプショングループ:https://t.me/theblockbeats
Telegram コミュニティ:https://t.me/BlockBeats_App
Twitter公式アカウント:https://twitter.com/BlockBeatsAsia
