リレーモード
リレーモードは、次のメッセージでエージェントがどう作業するかを伝えます。先に質問する、プランだけ立てる、通常のコーディングエージェントとして作業する、止まらずに進め続ける、のいずれかです。モードはメッセージごとに入力欄で選ぶので、あるメッセージでプランを立て、次のメッセージでエージェントに実装させることができます。
4 つのモード #
| モード | エージェントの動作 |
|---|---|
| ask | 実装を始める前に確認の質問をし、答えによって結果が変わる箇所では推測しません。 |
| plan | プランを作成し、頼まれない限り実装しません。コードを読むことは許可されています。 |
| agent | 対話型のコーディングエージェントとして作業し、ツールを使います。確認が必要なときは質問カードで尋ねます。これが既定です。 |
| autopilot | リクエストにすぐ取りかかり、進め続けます。本当に入力がないと進めないときだけ質問します。 |
どのモードでも、質問は質問カードとして表示されます。autopilot でも、本当にユーザーが必要なときはこの方法で尋ねるよう、エージェントに指示されています。
plan では、返信の最後のプランの下に Plan ready for review(プランのレビュー準備完了)ボードが表示され、Implement in autopilot(autopilot で実装)、Stop here and prompt myself(ここで止めて自分でプロンプトを書く)、Stop here(ここで止める)のアクションがあります。最初の 2 つは会話のモードを設定し(1 つ目は autopilot、2 つ目は agent)、プランを実行するメッセージを送ります。Stop here は何も送らず、モードは plan のままです。プランボードを参照してください。
モードを選ぶ #
- 入力欄には Mode(モード)の選択欄があり、Agent、Ask、Plan、Autopilot を選べます。モードは次に送るメッセージに適用されます。
- どの 2 つのメッセージの間でも変更できます。各メッセージには、送信したときに選ばれていたモードが付きます。
- 選択は会話ごとに保持されます。会話を開き直すと、選択欄にはその会話で最後に使ったモードが表示されます。
- 新しい会話は、このブラウザーで最後に選んだモードで始まります。一度も選んだことがなければ Agent です。
- 共有された読み取り専用のビューと Claude Cloud のチャットでは、選択欄は表示されません。OpenAI Image のチャットでは 4 つのモードがすべて表示されますが、効果はありません。
モードがエージェントツールに与える影響 #
relay_。 ask と plan では、relay_tool のすべての書き込みアクション(tool send、create_、session answer_、question stop、archive)が、先に質問カードで確認を求めます。agent と autopilot では、そのツールのほかのルールが適用されない限り確認しません。- 誰も答えない質問カード。 カードがタイムアウトすると、エージェントには「[No user response before timeout — continue according to the current relay mode.]」と伝えられます。その後どうするかは、エージェントとモードの指示次第です。タイムアウトそのものについては ask_user のページを参照してください。
プロバイダー別 #
どのモードもエージェントへの依頼ですが、一部のプロバイダーはその一部を強制もします。次の表は、各プロバイダーがモードをどう実行するかを示します。
| プロバイダー | plan | ask | autopilot | agent |
|---|---|---|---|---|
| GitHub Copilot と OpenAI、SDK エンジン | ネイティブのプランモードに加え、プロンプトでの指示。読み取り専用でないものはすべて拒否されます。 | プロンプトでの指示。読み取り専用でないアクションは、それぞれ先に確認を求めます。 | ネイティブの autopilot モードに加え、プロンプトでの指示。 | 通常モードに加え、プロンプトでの指示。 |
| GitHub Copilot と OpenAI、拡張機能エンジン | プロンプトでの指示のみ。 | プロンプトでの指示のみ。 | プロンプトでの指示のみ。 | プロンプトでの指示のみ。 |
| Claude | Agent SDK の plan 権限モード。 | システムプロンプトに追加。 | システムプロンプトに追加。 | 既定の動作。 |
| Claude Cloud | モードなし。 | モードなし。 | モードなし。 | 唯一のモード。 |
| DeepSeek 0.9.17 で追加 | Claude と同じ。 | Claude と同じ。 | Claude と同じ。 | Claude と同じ。 |
| Cursor | SDK のネイティブのプランモード。 | メッセージのテキストでの指示。 | メッセージのテキストでの指示。 | 既定。何も追加しません。 |
| Grok | メッセージのテキストでの指示。 | メッセージのテキストでの指示。 | メッセージのテキストでの指示。 | 既定。何も追加しません。 |
| OpenAI Image | 効果なし。 | 効果なし。 | 効果なし。 | 効果なし。 |
GitHub Copilot と OpenAI、SDK エンジン #
このエンジンが最も厳密にモードを守ります。OAR は指示に加えて、モードを Copilot のランタイムに渡し(plan はプランモード、autopilot は autopilot モード、その他は通常の対話モード)、すべての権限リクエストを自分で判断します。
- 読み取りだけのリクエストは、どのモードでも承認されます。
- agent と autopilot では、それ以外もすべて承認されます。
- plan では、それ以外はすべて拒否されます。エージェントには、会話がプランモードであること、読み取りは許可されていること、代わりに変更内容を説明するか、agent モードへの切り替えをユーザーに頼むべきことが伝えられます。
- ask では、それ以外は質問カード「Copilot wants to run: ... Approve this action?」を表示し、Approve(承認)と Deny(拒否)があります。Deny を押す代わりに理由を入力することもでき、エージェントはそれを受け取ります。カードが未回答のままタイムアウトすると、エージェントには誰も対応できなかったと伝えられます。
このエンジンでは、そのターンで何も承認されておらず、返信がプランとして読める場合、ask の返信からも Plan ready(プランの準備完了)ボードが作られます。
権限の確認は、実行中のターンを開始したメッセージのモードに従います。そのターンの実行中に別のモードでメッセージを送ると、エージェントには新しいモードが伝えられますが、承認と拒否はターンが終わるまで最初のモードのままです。
GitHub Copilot と OpenAI、拡張機能エンジン #
モードは、メッセージの先頭のテキストとしてエージェントに届きます。このエンジンでは、OAR は Copilot のモードを設定せず、権限も確認しないので、モードがどれだけ厳密に守られるかは、エージェントが指示に従うかどうかにかかっています。それでも、エージェントがプランで plan のターンを終えれば、Plan ready ボードが作られます。
Claude #
- plan は Agent SDK 自身の plan 権限モードを使うので、プロバイダーがそれを強制します。エージェントがプランを書き終えるとボードが表示され、レビューのためにターンが終わります。エージェントがそのまま実装に進むことはありません。
- ask と autopilot は、システムプロンプトに追加される文です。agent は何も追加しません。
- Claude は、どのモードでも確認なしにすべてのツールを実行します。ask はツールの使用を承認に変えるのではなく、エージェントに質問させるものです。
モードの変更は、ターンを開始する次のメッセージから反映されます。まだ実行中のターンに送ったメッセージでは、選択欄の表示にかかわらずモードは変わらず、新しいモードはその次のターンから適用されます。システムプロンプトはセッションのプロセスが起動したときに固定されます。ask または autopilot への変更、またはそこからの変更は、そこで何も実行されていなければ、すぐに新しいプロセスを起動します。バックグラウンドタスクやキューに入ったフォローアップが残っている間は、ターンは代わりに以前のプロンプトで実行されるので、ask と autopilot はそれらが終わってから反映される場合があります(plan はどちらの場合もすぐに切り替わります)。
Claude Cloud #
Claude Cloud のチャットにはリレーモードがありません。セッションはクラウド自身の権限モードで実行され、入力欄では選択欄が表示されません。
DeepSeek #
0.9.17 で追加 DeepSeek のチャットはリレーのホスト上で Claude Code を実行するので、モードの扱いは Claude のチャットとまったく同じです。plan は Claude Code の plan 権限モードで、Plan ready for review ボードで終わります。ask と autopilot はシステムプロンプトに追加され、モードの変更は同じタイミングで反映されます。
Cursor #
- plan では、メッセージを SDK のネイティブのプランモードで実行します。それ以外のモードは、すべて通常の agent モードで実行されます。
- SDK には常設の指示を置く場所がないので、ask と autopilot では、OAR がメッセージの前に
[Relay mode: ...で始まる行を付けます。これはモードが変わったときだけです。これらのモードから別のモードに移ると、次のメッセージには、以前のモードの指示はもう適用されないと伝える行が付きます。] - プランのターンでは、最終的な返信がプランのように見えれば Plan ready ボードが表示されます。
Grok #
Grok には OAR が設定できるモードがありません。agent 以外の 3 つのモードは、すべてメッセージの前に付ける [Relay mode: ... の行で動作し、この行はモードが変わったときに追加されます。これは plan も同じです。エージェントは、コードを変更する前にプランを作り、実装するのではなく手順の概要を示すよう求められます。それでもファイルの編集を止めるものはなく、OAR はどのモードでも Grok の権限リクエストをすべて承認します。プランのターンでは、最終的な返信がプランのように見えれば Plan ready ボードが表示されます。
OpenAI Image #
画像のチャットはプロンプトを OpenAI Images API に送ります。この API にはモードという概念がありません。モードはそこでは効果がありません。
モードが変わるとき #
モードは次のメッセージから適用されます。モードが変わったときに指示を追加するプロバイダー(Copilot、Cursor、Grok)では、その指示はモードをもう一度変えるまで有効です。同じモードで続けて送るメッセージには、指示は再び付きません。すでに実行中のターンについては、上の Claude(DeepSeek にも当てはまります)と、GitHub Copilot と OpenAI の SDK エンジンの説明を参照してください。その他のプロバイダーについては、このページでは説明していません。