ブログ

/ 13 views

Claude Codeの真価を引き出す「Dynamic Workflow」:Anthropicのエンジニアが実践する次世代の思考フレームワーク

1. 導入:プロンプトの連鎖という「見えない重労働」からの解放

エンジニアにとって、もっとも価値のある時間は「設計」と「創造」に費やされるべきです。しかし、現代のAI活用において、私たちは無意識のうちに「プロンプトの連鎖」という新たな手作業に追われています。何十ものプロンプトを手動で繋ぎ合わせ、出力をコピペし、文脈が崩れるたびに修正する。この「見えない重労働」は、AIのポテンシャルを単一のコンテキストウィンドウという小さな檻に閉じ込めています。

この限界を突破するため、Anthropicは2026年5月28日、Claude Codeの新機能「Dynamic Workflow(ダイナミック・ワークフロー)」をリリースしました。これは単なる自動化ツールではありません。Anthropicのエンジニア自身が、BunのコードベースをZigからRustへ大規模移行するといった極めて複雑なミッションを完遂するために編み出した、自律的な思考フレームワークです。

本記事では、AIを「チャットの相手」から、課題に合わせて自給自足で「システムを構築する設計者」へと進化させる、この革新的な技術の深淵を解説します。

2. 驚きの事実:Claudeは今や「自分自身のハーネス」をJavaScriptで書いている

Dynamic Workflowの本質は、Claudeがタスクの内容に応じて、その場で生成する「JavaScript製のカスタムハーネス(制御機構)」にあります。

従来のワークフローは、あらかじめ決められた手順をなぞる「スタティック(静的)」なものでした。しかし、Dynamic Workflowは、Claudeがあなたのコードを読み、その構造や依存関係を理解した上で、そのタスクを解くためだけに最適化されたJavaScriptファイルを生成します。

ここで重要なのは、ワークフローの管理が「決定論的(Deterministic)」なJavaScriptコードで行われる点です。LLMの確率論的な振る舞いを、確実なコードロジックで制御する。ソースコンテキストには、このアプローチの優位性が明確に記されています。

「静的なハーネスは、あなたのコードが存在することを知らないため、これを行うことができません。」

このシステムは、以下の3つのコアAPIを駆使して構築されます。

  • agent(): 独立したコンテキストを持つサブエージェントを生成。
  • parallel(): 「バリア(Barrier)」として機能し、複数のタスクを並列実行してすべて完了するのを待機。
  • pipeline(): 「ストリーミング」として機能し、各アイテムを待機させず次々と処理。

さらに、このワークフロー内ではエージェントごとにモデルを使い分けることが可能です。難解な推論にはOpus、大量の予備調査にはHaiku、その中間にはSonnetといった具合に、コストと精度のバランスを動的に最適化できるのです。

3. 3つの「沈黙の失敗」を構造的に解決する

複雑な長時間のタスクにおいて、単一のコンテキストウィンドウは必ず以下の3つの「沈黙の失敗モード」に陥ります。Dynamic Workflowは、これらをワークフローの「構造」によって防ぎます。

  1. Agentic laziness(エージェントの怠慢): 50項目のチェックが必要なタスクで、20項目を終えただけで「完了した」と錯覚し、残りを放置してしまう。
  2. Self-preferential bias(自己優先バイアス): 自分が書いたコードを自分で評価させると、客観性を欠き、甘い判定を下す。
  3. Goal drift(目標の逸脱): ターンを重ねるごとの「圧縮(Compaction)」による情報の欠落で、当初の制約や「これだけはやってはいけない」というルールが消失する。

特に重要な洞察は、「Claudeに自分の仕事を採点させてはいけない」という点です。ワークフローは、作成者とは完全に隔離されたコンテキストを持つ「検証エージェント」を立てることで、このバイアスを構造的に排除します。

4. 「絶対評価」より「トーナメント」:意思決定の質を変えるパターン

意思決定の精度を劇的に向上させる手法が、「Tournament(トーナメント)」パターンです。

例えば、1,000個の候補から最適なものをランク付けする場合、単一のプロンプトですべてを評価させると、コンテキストの肥大化により必ず精度が低下します。Dynamic Workflowは、これをJavaScriptのループ処理による「ペア比較」へと分解します。

「AとB、どちらがデザインとして優れているか?」という単純な二択を繰り返すトーナメント表(ブラケット)は、コード側で管理されます。エージェントは常に新鮮なコンテキストで「2つだけの比較」に集中するため、特に「味(Taste)」や「UIの直感性」といった数値化しにくい評価において、驚異的な信頼性を発揮します。

5. 信頼できない入力への盾:「Quarantine(隔離)」パターンの重要性

セキュリティは、単なるチェックリストではなく「構造」によって担保されるべきです。外部のサポートチケットやスクレイピングデータなど、未検証の入力を扱う際は「Quarantine(隔離)」パターンが不可欠です。

このパターンでは、プロセスを厳格に分離します。

  • Readerエージェント: 特権を持たない読み取り専用エージェント。生のコンテンツを読み、分類する。
  • Dedupe(重複排除): すでに既知の問題ではないかをコード制御で照合。
  • Actorエージェント: 生のコンテンツには一切触れず、Readerが作成した「構造化された要約」のみを受け取って実行する。

未検証のデータに触れるエージェントに実行権限を与えない。この「隔離」というアーキテクチャが、プロンプト注入などの攻撃に対する最強の盾となります。

6. 実践へのステップ:/ultracode で始める自律的な改善サイクル

Dynamic Workflowは、14のステップ(Trigger、Context、Tool Use、Reflection、Updateなど)を経て、自律的な改善サイクルを回します。今すぐ始めるためのコマンドは以下の通りです。

  • 開始: ultracode というトリガーワードを使用するか、直接「……のためのワークフローを作って」と依頼してください。
  • 予算管理: ultracode ... Use 5k tokens のように、トークン予算を明示することで、想定外のコスト膨張を防げます。
  • 完了条件: /goal コマンドを併用し、「一つの理論が実証されるまで止めない」といった強力な終了条件を設定してください。
  • スキルとして共有: 完了したワークフローは ~/.claude/workflows に保存されます。これをSkillとして共有する際のプロの秘訣は、SKILL.md 内でそのファイルを「テンプレート」として扱うようClaudeに指示することです。これにより、Claudeは実行時にタスクに合わせてワークフローをさらに微調整(Flexing)できるようになります。

7. 結論:エージェントは「実行者」から「設計者」へ

Claude Codeの進化により、私たちは「AIに何をやらせるか」を考える段階から、「AIが課題を解決するための組織構造をどう設計させるか」を考える段階へと移行しました。Dynamic Workflowは、特定のタスクのためだけに召集され、JavaScriptで制御される「一期一会の専門家集団」をあなたの手の中に提供します。

単なるチャットの延長線上に未来はありません。真の生産性は、自律的なワークフローという「構造」の中に宿ります。

もし、あなたの代わりにClaudeが50人の専門家チームを瞬時に組織し、それぞれに独立したコンテキストと厳格な検証ルールを与えて課題に取り組むとしたら、あなたは何を依頼しますか? その設計図を書く準備は、もう整っています。