プランボード
plan モードのエージェントがプランを用意すると、OAR はそれをボードで表示します。ボードには、プランのテキストと、次に何をするかを決めるいくつかのボタンがあります。プランを読んだら、そのまま実行させるか、自分で引き継ぐかを選びます。ボードを使えば、何も入力し直さずにプランを作業に移せます。
ボードの見出しは、どのプロバイダーでも Plan ready for review(プランのレビュー準備完了)です。ボードはエージェントの返信の中にあり、テキストの下、添付ファイルとツールの行の上に表示されます。ターンの実行中は実行中のターンの吹き出しに表示され、返信が届くと返信の中に移ります。返信にすでにプランが含まれている場合、プランは返信として 1 回だけ表示され、ボードはボタンだけを追加します。
plan モードとは何か、各プロバイダーがそれをどれだけ厳密に守るかは、リレーモードを参照してください。
ボタン #
| ボタン | 動作 |
|---|---|
| Implement in autopilot(autopilot で実装) | autopilot モードで、代わりにメッセージを送信します。内容は「Please implement the approved plan now.」とそれに続くプランです。入力欄は Autopilot に切り替わります。 |
| Stop here and prompt myself(ここで止めて自分でプロンプトを書く) | agent モードで、代わりにメッセージを送信します。内容は「I approved the plan. Let's proceed interactively with implementation.」とそれに続くプランです。入力欄は Agent に切り替わります。 |
| Stop here(ここで止める) | ボードを閉じます。何も送信せず、モードもそのままです(plan のまま)。 |
この 2 つのメッセージは、トランスクリプトに自分のメッセージとして表示され、通常のターンとして実行されます。使われるのは会話の最新のモデルです。メッセージに含まれるプランはボードのテキストで、12,000 文字で切り詰められます。
ボードには指示を書くフィールドがありません。プランを変更するには、いつもどおり入力欄にメッセージを入力します。例:「手順 3 は削除して、代わりに既存のヘルパーを使って」。入力欄が Plan のままなら、エージェントはプランを修正し、新しいボードが続くことがあります。
ボードで選べるのは 1 回だけです。クリックすると、ボタンは選んだ内容を示す行に置き換わります。例:Chosen: Implement in autopilot。プランは返信の中に残ります。選択が記録されないままボードが閉じられた場合、その行は Dismissed または Closed になります。共有された読み取り専用のビューでは、ボタンは表示されません。
ボードが開いている間 #
Claude、DeepSeek、Copilot の SDK エンジンでは、エージェントは待機していません。エージェントがそのまま実装に進まないよう、プランツールは意図的に拒否され、エージェントには短い締めくくりのメッセージでターンを終えるよう指示されます。判断は新しいメッセージとして届きます。Cursor と Grok では、ボードは完了した返信から作られるので、ターンはすでに終わっています。Copilot の拡張機能エンジンでは、エージェントがプランの呼び出しを行った時点でボードが投稿され、その呼び出しは拒否されません。つまり、ほとんどのプロバイダーでは、ボードが表示された時点でターンは終わっていて、会話はアイドル状態です。拡張機能エンジンでは、エージェントがまだ処理を終えようとしている場合があります。
ボードには時間制限がなく、自動で閉じることもありません。ボタンを使うか、会話を削除するまで残ります。通常のメッセージを入力してもボードは閉じず、その後もボタンは使えます。会話リストには、未回答のボードを示す特別な状態はありません。タイトルの色は、会話リストで説明しているとおり、セッションの状態に従います。
リレーにサインインしているデバイスなら、どれからでもボードに回答でき、開いているすべてのページが更新されます。最初の回答が優先されます。ボードはもう未回答ではないため、2 つ目の回答は拒否されます。
プランの判定方法 #
プランボードは、次の 2 つのどちらかから作られます。
- プロバイダー自身のプランツール。 エージェントはプランを書き終えたときにこれを呼び出します。OAR はその呼び出しからプランのテキストを取り出します。
- 返信のテキスト。 プロバイダーにプランツールがない場合、またはツールがテキストを返さなかった場合、OAR は plan のターンの最終的な返信を調べます。
-、*、または数字とピリオド(1.)で始まる行が 2 行以上あれば、その返信はプランとして扱われ、返信のテキストがボードになります。先頭の空白は無視されるので、インデントされた行も数えられます。文章で書かれたプランにはボードが付きません。
1 つのターンに付くボードは最大 1 つです。
プロバイダー別 #
| プロバイダー | ボードの作成元 | 条件 |
|---|---|---|
| GitHub Copilot と OpenAI、SDK エンジン | ランタイムの exit-plan 呼び出し。なければ返信のテキスト | テキストのルールは plan で適用され、ask でも、そのターンで何かを変更するアクションが承認されていなければ適用されます |
| GitHub Copilot と OpenAI、拡張機能エンジン | エージェントの exit-plan または task-complete の呼び出し。なければ返信のテキスト | テキストのルールは plan でのみ適用されます |
| Claude | Claude のプランツール(Exit)。なければ返信のテキスト |
テキストのルールは plan でのみ適用されます |
| DeepSeek 0.9.17 で追加 | Claude と同じ | Claude と同じ |
| Claude Cloud | ボードなし | Claude Cloud のチャットにはリレーモードがありません |
| Cursor | 返信のテキストのみ | plan のみ。Cursor を参照してください |
| Grok | 返信のテキストのみ | plan のみ。Grok を参照してください |
| OpenAI Image | ボードなし | モードは効果がありません |
Claude と DeepSeek では、プランがインラインのテキストではなくファイルパスとして届いた場合、そのファイルから読み込まれます。プランのテキストが見つからない場合、ツールからはボードが作られず、エージェントには最終メッセージでプラン全体を改めて書くよう指示されます。その後、テキストのルールによる判定が行われます。
Copilot の拡張機能エンジンでは、エージェントのプランの呼び出しに独自のアクションの一覧が含まれることがあります。上の 3 つのボタンが既定です。呼び出しによっては Implement with autopilot fleet(autopilot のフリートで実装)が追加されます。これは autopilot モードで「Please implement the approved plan using autopilot_fleet where useful.」を送信します。
通知 #
プランの準備ができると、Plan ready for review というタイトルのプッシュ通知が送られます。デバイスでメッセージのプレビューが有効になっていない場合、本文は「The agent posted a board for review.」です。プレビューが有効な場合は、ボードのタイトルが表示されます。スイッチは Settings → Notifications(設定 → 通知)の Boards (plan reviews)(ボード、プランのレビュー)で、既定でオンです。ほかのプッシュ通知と同じく、どのデバイスもアプリを前面に表示していないときにだけ送られます。Settings(設定)を参照してください。
その後のトランスクリプト #
ボードは返信の中に残ります。プランと、その後の Chosen: ... の行です。会話を開き直すと、もう一度読み込まれます。ボタンが送信したメッセージは、その後に続く通常のユーザーメッセージです。Stop here の後にはメッセージがなく、ボードには Chosen: Stop here と表示されます。