メインコンテンツへスキップ

AI ツーリング環境における5つの「計画」

「計画」という言葉は過負荷状態にあります。今日、少なくとも5つの異なるアプローチが存在し、それぞれが異なる問題を解決しています:
アプローチ計画形式実行承認コア価値
暗黙的モデル計画内部思考の連鎖単一推論パスなしモデルが独自にステップを考える
Claude Code計画モードMarkdownドキュメント順序実行実行前に人間がレビュー実行前にアプローチを合意
Claude Code Teams依存関係エッジ付きタスクリスト並行実行(マルチエージェント)人間が計画を承認、その後自律実行動的エージェントプール + 並列実行
Kiro仕様駆動開発構造化仕様(要件 + 設計 + タスク)順序実行人間が仕様をレビュートレーサブルな要件、受け入れ基準
FIM One DAGJSON依存グラフ並行実行(単一オーケストレーター)自動(PlanAnalyzer)並列実行 + ランタイムスケジューリング
最初の2つは設計時計画です — 作業開始に計画を生成し、人間(またはモデル自体)がそれに従ってステップバイステップで進めます。最後の3つはランタイム計画を導入します — 実行グラフはプログラム的に生成・スケジュールされ、独立したブランチが並列で実行されます。違いは誰が実行するかです: Claude Code Teamsは自律エージェントを生成し、FIM One DAGは単一オーケストレーター内のステップをディスパッチします。 これらのアプローチは競合ではなく、相互に補完的なレイヤーです。Kiro形式の仕様は何を構築するかを定義でき、FIM One DAGはサブタスクを並行してどのように実行するかをスケジュールできます。Claude Codeの計画モードは人間がアプローチに同意することを保証し、FIM OneのPlanAnalyzerは結果を自動的に検証します。

3層ネスティング:フルパワーアーキテクチャ

Claude Code TeamsとFIM One DAGは、フル容量で、3層ネストされたアーキテクチャを示します:
  • レイヤー1 — ヒューマンゲート:ユーザーが計画をレビューし、実行開始前に承認します。
  • レイヤー2 — DAGオーケストレーション:承認された計画は依存関係エッジを持つタスクに分解されます。独立したタスクは並列実行され、ダウンストリームタスクはブロッカーの解決を待ちます。
  • レイヤー3 — ReAct内部ループ:各タスクは完全なReAcycleを実行するエージェント(Perceive → Reason → Act → Observe)によって実行され、マルチステップ推論、ツール使用、自律的な再試行が可能です。
重要な洞察:Claude Code TeamsとFIM One DAGは同じ3つのレイヤーを実装していますが、レイヤー2のメカニクスが異なります — メッセージパッシング対依存関係エッジ解決。

フルパワーランタイム: FIM One vs Claude Code Teams

どちらも本物のエージェント — コアループは同じです: 認識 → 推論 → 行動 → フィードバック。違いは、フル容量で並列作業をどのようにオーケストレーションするかにあります。
次元Claude Code TeamsFIM One DAG
並列モデルリーダーがサブエージェントを生成し、メッセージ経由でタスクを割り当てるトポロジカルソートが独立したステップを自動並列化
タスクグラフblockedBy / blocks エッジを持つTaskList(動的DAG)depends_on エッジを持つ静的JSON DAG
調整明示的なメッセージパッシング(SendMessage / Broadcast)暗黙的な依存関係エッジ — メッセージなし、データフローのみ
エージェントライフサイクル動的プール — エージェントはオンデマンドで生成、完了時にシャットダウン固定ステップエグゼキューター — ステップごとに1つのLLM呼び出し
フィードバックと修正各サブエージェントが自律的に再試行; リーダーが失敗時に再割り当てPlanAnalyzerが結果を評価 → 再計画ループ(最大3ラウンド)
人間の関与プランモード承認、その後自律実行完全自動 — PlanAnalyzerが合格/再計画を決定
コンテキスト管理各サブエージェントが分離されたコンテキストウィンドウを取得(相互汚染なし)すべてのステップ間で共有DbMemory + LLM Compact
トークン経済N エージェント × エージェントあたりトークン — 時間↓ トークン↑(乗法的コスト)順序実行または浅い並列化 — 低い総トークン
スケーリングパターンより多くのサブエージェントを追加(水平、メッセージ結合)より多くのDAGブランチを追加(水平、依存関係結合)
最適な用途多様で疎結合なタスク(リサーチ + コード + テスト)明確なデータ依存関係を持つ構造化ワークフロー

実世界ベンチマーク: v0.5 RAG システム

Claude Code Teams は FIM One の v0.5 RAG サブシステム全体を単一セッションで構築しました:
  • 8 フェーズ: Embedding → Reranker → Loaders → Chunking → VectorStore → Retrieval → KB Backend → Frontend + Docs
  • 46 テスト合格、フロントエンドビルドクリーン
  • 実行時間: 約 5 分
  • トークンコスト: エージェントタスクあたり約 100k トークン × 8+ タスク ≈ 800k+ 総トークン
  • 依存関係エッジ: フェーズ 5 はフェーズ 4 + 1b に依存; フェーズ 6 はフェーズ 5 + 2 + 3 に依存 — 本物の DAG
これは中核的なトレードオフを示しています: トークン増加の代償としての時間並列化。Claude Code Teams は計算コストを開発者時間と交換します。

収束、競争ではなく

「チーム協働」と「パイプラインスケジューリング」の境界がぼやけています:
  • Claude Code TeamsのblockedBy/blocksはDAGです — タスクは明示的な依存関係エッジを持ち、リーダーは先行タスクが完了すると新たにブロック解除されたタスクをディスパッチします。これはトポロジカルスケジューリングに追加のステップ(メッセージ)を加えたものです。
  • FIM OneのDAGはエージェント自律性から恩恵を受ける可能性があります — ステップごとの単一LLM呼び出しの代わりに、各ステップで完全なReACtループを実行させることで、複雑なサブタスクをより適切に処理できます。
要点: 同じエージェント本質、収束する並列哲学。Claude Codeはチーム協働モデルに従います — リーダーがワーカーに委譲し、ワーカーはメッセージを介して通信します。FIM Oneはパイプラインスケジューリングモデルに従います — DAG実行器が依存関係解決に基づいてステップをディスパッチします。実際には、両者とも依存関係駆動型の並列実行を実装しています。違いはコーディネーションオーバーヘッド(メッセージ対エッジ)とトークン経済学(分離されたコンテキスト対共有メモリ)です。最適なアーキテクチャは両者を組み合わせたものになる可能性があります:構造化されたパイプライン用のDAGスケジューリング、自律的な複数ステップの推論が必要なタスク用のエージェントプール。

構造化出力の劣化

DAG パイプライン内のすべての構造化 LLM 呼び出しサイト (Planner、Analyzer、Tool Selection) は、3 レベルの劣化チェーンを実装する統一された structured_llm_call() ユーティリティを使用します:
レベル条件動作方法
Native FCllm.abilities["tool_call"]仮想ツール呼び出しを強制; tool_calls[0].arguments から抽出
JSON Modellm.abilities["json_mode"]response_format={"type":"json_object"} を設定; extract_json() で解析
Plain text常に利用可能extract_json() で自由形式コンテンツを解析、その後オプションで regex_fallback()
各テキストベースのレベルは、次のレベルに落ちる前に、再フォーマットプロンプトで 1 回再試行します。結果は、解析された値、抽出が成功したレベル、および累積トークン使用量を含む StructuredCallResult です。 この設計により、同じプロンプトが GPT-4 (ネイティブ FC)、Claude (JSON モード)、ローカルモデル (プレーンテキスト) 全体で確実に機能し、4 つの呼び出しサイト全体に分散するのではなく、1 つの場所に一貫したエラーハンドリングと再試行ロジックが集約されます。