コンテンツにスキップ

プランモードを使う

このガイドでは、エージェントがコードを書く前に、構造化されたプランを受け取る 方法を説明します。

プランモードでは、エージェントは読み取り専用で調査し、その唯一の成果物は 型付きプランです。あなたが承認するステップの依存関係グラフであり、 Control Center がそれを実際の作業にコンパイルします。変更の範囲を確認したい とき、ステップを分解してほしいとき、あるいは何かに手を付ける前にリスクと 依存関係を明らかにしたいときに使います。

次のいずれかでスペースのモードが切り替わり、変更は永続化されます:

  • コンポーザーのツールバー左端にあるモードドロップダウンから プランを選択する
  • Shift+Tab を押す
  • /plan を送信する。単独の /plan はモードを有効にするだけです。 /plan <request> はモードを有効にし、残りをあなたのメッセージとして送信します

/plan がテキストとして送られることはありません — これは保存されたモードを 設定するものであり、ツールサーフェス、ガードプリセット、プロンプトが そろって参照する権威です。したがってモードは、あなたが元に戻すまで、この ターンとそれ以降のすべてのターンにわたって維持されます。

モードはスペースに保存されるため、同じエージェントがここではプランモード、 別の場所ではエージェントモードになることができます。

  1. 読み取り専用で調査します — メモリ、コードインデックス、ファイル
  2. submit_plan を一度だけ呼び出します。goal と nodes を伴い、各 ノードは安定した key、title、description、および dependsOn する ノードキーを持ちます(これにより独立した作業を並列で実行できます)
  3. 停止します

このツールはグラフを検証し(重複したキー、宙に浮いた依存関係、循環)、 壊れたプランを受け入れるのではなく、エージェントが修正すべき違反を返します。

プランは会話の中にコンパクトな行として表示され、ゴール、そのステータス、 ステップ数を示します。Plan Studio — 依存関係グラフ、ノード単位の インスペクター、コスト見積もり — は会話の横にタブとして開きます。行の 開くを押すか、あるいはただ待つだけです。会話を眺めている間に 30 秒以内に 届いたプランは、自分でタブを開くからです。

ここでは散文は成果物ではありません。submit_plan を呼ばずに終わった実行は、 会話に「Ended without submitting a plan (no submit_plan call).」という目に 見える行を投稿し、その実行が成果物を逃したものとしてフラグを立てます。実行の ステータスは意図的に completed のままです — これによりパイプラインと チケットのステートマシンが変更されずに済みます — ので、ステータスバッジでは なく行を読んでください。

会話の中のプランの行から 承認して実行を押します。Plan Studio の承認バー では プランを承認を押します(その横の 却下でもかまいません。グラフに 検証エラーがある間は承認は無効です)。

その後は次のとおりです:

  1. Control Center はプランをオーケストレーションにコンパイルし、それを マテリアライズします — チケットと実行です。このステップにモデルは 関与しません。決定論的です
  2. プランは、それを書いたエージェントとして実行されます。ほかの誰かを 関わらせるかどうかは、実行時にそのエージェントが判断します — ワークスペースの 委任の深さ上限の範囲内で、delegate_task によってステップをより適した チームメイトに任せられます
  3. プランのゴールは会話のゴールになり、作業はその同じ会話の中で 実行されます。各ステップはエージェントが依頼された内容を投稿し、その ターンをストリーミングで返すため、あなたはすでにいる場所でそれを追い (ターンを停止もでき)ます
  4. 会話の一般サイドパネル(やることの下)のゴール行に、実行の進捗が settled/total として表示され、停止ボタンもあります。Plan Studio は グラフ上にノード単位の状態を表示し、そこでもキャンセルできます

プランを承認するよりもこの会話にとどまりたい場合、エージェントは exit_plan_mode を呼べます。これが唯一認められた出口です。会話に紐づいた 永続的な承認リクエストを開き、pending を返します — スペースはプランモードの ままで、エージェントは行動してはなりません。リクエストが承認されると、 エージェントの次の exit_plan_mode 呼び出しがスペースをプランモードから エージェントモードへ切り替え、その変更系ツールを解放します。却下された場合は、 修正されたプランに対して新しいリクエストを開けます。

プランモードを抜けるには、コンポーザーのドロップダウンを切り替えるか (または Shift+Tab)、提出されたプランを承認します。exit_plan_mode は、 decide_approval MCP ツールで決定される永続的な承認を開きます。ブロックされた ツール呼び出しに対するガードレールのオーバーレイは、別のインメモリキューであり、 プラン終了のリクエストを運びません。

messaging.createSpace パイプラインノードは、ノード設定の mode エクストラ から会話モードを読み取ります — extras['mode']: 'plan'。このキーは完全一致です。 conversationMode や dispatchMode を含め、ほかの綴りは黙って無視され、ルームに はボディのデフォルトが適用されます。それは chat ではなく review モードです。 promptAgent ステップは、自分が作成していないルームに参加し、その権限を変更 しません。ノード設定エディタの ディスパッチモードセレクト(allParallel / manager)は、チームディスパッチノード用です。会話モードは、スペースを開く テンプレートで、または API 経由でそのノードの設定で、extras['mode'] を使って 設定します。