Claude Code、マルチエージェントタスク実行のためのダイナミックワークフローを開始

icon MarsBit
共有
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary icon概要

expand icon
Claude Codeは、複数のエージェントを連携させて複雑なタスクを実行するためのダイナミックなワークフローを導入しました。新しいシステムはタスクの分割、並列処理、結果の検証をサポートし、自動化されたスマートコントラクト実行やマルチパティ計算(MPC)アプリケーションに適しています。これにより、目標の逸脱やエージェントのバイアスといった問題を防ぎ、長期的なタスクの効率が向上します。研究、ファクトチェック、ビジネスプラン分析に役立ちます。

編集者注:Claude Code はコードアシスタントから、オーケストレーション可能なエージェントワークステーションへと進化しています。

本記事で紹介するワークフローの核心的価値は、Claudeが単一のコンテキストウィンドウ内で「考えた後で実行する」にとどまらず、タスクに応じて実行フレームワークを動的に生成できることです。タスクを分割し、サブエージェントを割り当て、並列処理を行い、相互検証し、ループイテレーションを実行するだけでなく、異なるエージェント同士に競争を促し、最終的に結果を統合することも可能になります。

これは、Claude Code の使用シーンが明確に拡大していることを意味します。コード移行、リファクタリング、テスト再現、コードレビューにとどまらず、深層研究、事実確認、履歴書選考、事故の振り返り、ルールの蓄積、ビジネスプランの評価、命名のブレインストーミングなど、非技術的なタスクにも活用できます。多くの複雑な作業は本質的にプログラミングと似ており、問題を分解し、コンテキストを分離し、仮説を検証し、大量の詳細を処理し、複数の候補パスから選択する必要があります。

動的ワークフローは、大規模モデルが長期間のタスクでよく発生する以下の問題を解決しようとしています:途中で完了を宣言する「エージェントの怠慢」、自らの結論を優先する「自己偏好バイアス」、そして複数回の実行後に元の目標から徐々に逸脱する「目標のドリフト」。複数の独立したコンテキストを持つClaudeにタスクを割り当てることで、複雑なタスクを「単一エージェントによる長距離走」から「複数エージェントによる協働」へと変革します。

もちろん、ワークフローも万能な解決策ではありません。通常、より多くのトークンを消費し、すべての一般的なコーディングタスクに適しているわけではありません。しかし、それは重要な方向性を示しています:今後のAIツールの競争は、単一のモデルがどれほど賢いかだけでなく、複雑な目標に対して信頼性があり、再利用可能で、監査可能な実行プロセスを構築できるかにかかっているのです。

以下が原文です:

デフォルトのClaude Code実行フレームワークはプログラミング向けに構築されていますが、多くの他の種類のタスクにも適用可能です。多くのタスクは構造的にプログラミングタスクと似ていることが示されています。ただし、研究、セキュリティ分析、エージェントチームの協力、またはコードレビューなどの特定のタスクタイプでは、最適なパフォーマンスを実現するために、Claude Codeの上にカスタム実行フレームワークを構築する必要があります。

ワークフローでは、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 スキル(/deep-research)をリリースしました。具体的には、ウェブ検索を並列実行し、ソースを収集し、関連する主張に対して対話的な検証を行い、引用付きのレポートを総合的に生成します。

しかし、このような研究はウェブ検索にのみ適用されるわけではありません。たとえば、ClaudeにSlackのコンテキストからステータスレポートを整理させたり、コードベースを深く調査してある機能がどのように機能しているかを調べたりすることもできます。

深度検証

ダイナミックワークフロー

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

並べ替え

ダイナミックワークフロー

あるプロジェクトのセットがあり、その順序を某种定性的指標に基づいて付けたいと考えている場合、Claude Code はそのような指標の評価に優れていると信じているかもしれません。例えば、バグの深刻度に基づいてサポートチケットを並べ替えるなどです。

しかし、1つのプロンプトで1000行以上のコンテンツを並べ替えようとすると、品質が低下し、コンテキストウィンドウに収まりきらなくなります。より良い方法は、トーナメントメカニズムを実行し、2つずつの比較エージェントからなるパイプラインを構築することです。これは、比較による判断が絶対的なスコアリングよりも通常より信頼できるためです。または、まず並列にバケットソートを行い、その後結果をマージする方法もあります。各比較は独立したエージェントによって実行されるため、決定論的なループによりトーナメント構造全体を維持でき、現在実行中の順序のみをコンテキストに保持すればよいです。

記憶とルールの遵守

ダイナミックワークフロー

特定なルールのセットがある場合、Claude が CLAUDE.md に記載されたこれらのルールを常に見落としたり、適切に実行しなかったりする場合は、これらのルールを列挙し、検証エージェントが各ルールを一つずつチェックするワークフローを作成できます。各ルールには対応する検証エージェントを割り当てます。また、これらのルールの妥当性を審査する「疑念を持つ」人格のサブエージェントを作成することで、過剰な誤検出を避けるのに役立ちます。

逆に、最近の会話とコードレビューのコメントを掘り起こして、繰り返し指摘した修正点を特定する。並列エージェントにこれらの問題をクラスタリングさせ、各候補ルールに対して対抗的検証を行い、それが実際に特定のリアルなエラーを防げるかどうかを判断する。最後に、選別を通過したルールをCLAUDE.mdに再び反映させる。

根本原因調査

最も効果的なデバッグ方法は、いくつかの独立した仮説を立て、それらを一つずつ検証することです。しかし、あなたが単一のコンテキストウィンドウのみを使用する場合、Claudeは自己の好ましいバイアスに陥る可能性があります。

ワークフローは構造的にこの状況を防ぐことができます:複数のエージェントを起動し、それぞれが重複しない証拠に基づいて仮説を生成します。たとえば、異なるエージェントがログ、ファイル、データをそれぞれ確認します。その後、各仮説は一組の検証者と反論者によって審査されます。

これはコードにのみ適用されるわけではありません。ワークフローは、販売分析(例:「3月の売上为什么下降了?」)、データエンジニアリング(例:「このパイプラインはなぜ失敗したのか?」)、またはあらゆる事後レビューにも使用できます。

大規模なトリアージ

ダイナミックワークフロー

各チームには、サポートキュー、バグ報告、または人間が完全に処理できないその他の積み上がったタスクがあります。トリアージワークフローは、各アイテムを分類し、既に追跡されている問題と重複を排除し、対応を取ることができます。これには修正を試みることもあれば、人間のユーザーに昇格させることも含まれます。

トリアージワークフローにおいて、有用なパターンはクアランタイン(隔離)です。つまり、信頼できない公開コンテンツを読み取るエージェントには、高権限操作を実行させず、高権限操作は専門のアクションエージェントが実行すべきです。

分診ワークフローを/loopと組み合わせて、Claudeにこれらのタスクを継続的に実行させることができます。

探索と味わいの判断

デザインや命名など、審美的な判断を要するタスクにおいて、複数の解決策を探索し、評価基準を活用できる場合、ワークフローは役立ちます。

Claudeに多数の案を探索させ、審査エージェントに「良い案とは何か」に関する評価基準を提供できます。審査エージェントが結果が基準を満たしたと判断した時点で、タスクは完了します。異なる案は、この評価基準に基づいてトーナメント方式で順位付けまたはフィルタリングすることも可能です。

Evals(評価)

ワークツリーで独立したエージェントを起動し、比較エージェントを起動して、評価基準に基づいて出力を比較・スコアリングすることで、特定のタスクに対して軽量な評価を実行できます。たとえば、自身が作成したスキルを評価・改善し、それが特定の基準を満たしているかどうかを確認できます。

モデルとインテリジェントなルーティング:タスクに最適化された分類エージェントを作成し、どのモデルを使用するかを決定できます。タスクが多数のツール呼び出しを伴い、実行前に調査することで最適なモデルを特定できる場合、この方法は非常に有効です。

たとえば、「auth モジュールの動作を説明する」というタスクの場合、最も適切なモデルは、auth モジュール内のファイル数やコードベースの構造によって決まります。分類エージェントはまずこの調査を完了し、予想される複雑さに応じてタスクを Sonnet または Opus にルーティングします。

いつ動的ワークフローを使用すべきでないか

ワークフローはまだ新しいものです。多くの使用シナリオで、従来の方法をはるかに上回る効果をもたらすことができますが、すべてのタスクに必要というわけではなく、トークン消費を大幅に増加させる可能性があります。

ワークフローは、Claude Codeの能力の境界を新しい方法で拡張できるタスクに活用するのが最適です。通常のプログラミングタスクについては、まず自問してください:このタスクは本当により多くの計算リソースを必要としていますか?たとえば、ほとんどの従来のプログラミングタスクには、5人のレビュー担当者からなるチームは必要ありません。

動的ワークフローを構築するためのテクニック

プロンプト設計

動的ワークフロー用のプロンプトを書く際には、詳細をできるだけ豊かにすると、効果が通常より高くなります。特に、前述の具体的なテクニックを使用する場合です。

ワークフローは大規模なタスクにのみ適用されるわけではありません。モデルに「クイックワークフロー」の使用を指示することもできます。たとえば、ある仮説を検証するための迅速な対話的レビュープロセスを作成できます。

/goal と /loop を組み合わせて使用

分診、研究、または検証ワークフローなど、繰り返し実行可能なワークフローを使用する場合、/loop と組み合わせて一定間隔で実行し、/goal で明確な完了条件を設定できます。

トークン使用予算

動的ワークフローに明確なトークン使用予算を設定し、タスクが消費するトークン数を制限できます。プロンプトに「use 10k tokens」といった予算要件を記述することで、上限を10kトークンに設定できます。

動的ワークフローの保存と共有

ワークフロー メニューで「s」を押すと、ワークフローを保存できます。これらを ~/.claude/workflows に送信するか、スキルを通じて配布できます。

ダイナミックワークフロー

スキルでそれらを共有したい場合は、JavaScriptワークフローファイルをスキルフォルダーに配置し、SKILL.mdで参照してください。より柔軟性を高めるために、Claudeにスキル内のワークフローを、文字通り実行する必要のあるスクリプトではなくテンプレートとして扱うよう指示することもできます。

ダイナミックワークフロー

全新的世界

ワークフローはClaude Codeを拡張するための有用な新機能です。これを出発点として考えてください。最適な使用方法については、まだ多くの探求が必要です。あなたの発見をお聞かせください。

Thariq Shihipar および Sid Bidasaria(@sidbid)は、Anthropic の技術チームメンバーで、Claude Code の担当を務めています。

免責事項: 本ページの情報はサードパーティからのものであり、必ずしもKuCoinの見解や意見を反映しているわけではありません。この内容は一般的な情報提供のみを目的として提供されており、いかなる種類の表明や保証もなく、金融または投資助言として解釈されるものでもありません。KuCoinは誤記や脱落、またはこの情報の使用に起因するいかなる結果に対しても責任を負いません。 デジタル資産への投資にはリスクが伴います。商品のリスクとリスク許容度をご自身の財務状況に基づいて慎重に評価してください。詳しくは利用規約およびリスク開示を参照してください。