ターンとキュー
ターンは作業の 1 回分です。プロンプトを送り、エージェントがそれに取り組み、回答します。会話はターンが次々と続いたものです。ターンの実行中にメッセージを送ると、OAR はターンが終わるまでそのメッセージをキューに保持します。ターンが進まなくなると、OAR はそれに気づき、ターンをキューに戻すか、メモを付けて終了させます。回り続けたまま放置することはありません。
実行中のターンの軌道修正と Stop(停止)ボタンについてはターンの実行中にあります。再起動については再起動と再開にあります。
ターンの状態 #
| 状態 | 表示される内容 |
|---|---|
| キュー待ち | メッセージがトランスクリプトにあり、その下に Cancel(キャンセル)ボタンがあります。 |
| 実行中 | エージェントの作業に合わせて返信のバブルが埋まっていき、ツールのアクティビティと Stop ボタンが表示されます。一覧では会話が処理中として表示されます。 |
| 質問待ち | 質問カードに Waiting for your answer(回答を待っています)と表示されます。回答するとターンが続きます。 |
| 完了 | 返信が完成しています。 |
| 失敗 | 返信は、何が起きたかを伝える短いシステムメモです。ターンが失敗したときを参照してください。 |
| 停止 | Stop を押しました。 |
質問カードを待っているターンが停滞と見なされることはありません。カード自体については ask_user を参照してください。
ターンの実行中に送信する #
ターン中の送信ボタンの表示で、メッセージがどう扱われるかが分かります。
- Steer(軌道修正):メッセージは実行中のターンに入ります。これは Claude、DeepSeek、Copilot の SDK エンジンで使えます。
- Queue(キューに入れる):メッセージはターンの後ろで待機し、次のターンとして始まります。ほかのすべてのプロバイダーではボタンは Queue と表示されます。Claude、DeepSeek、SDK エンジンでも、ターンが質問カードやプランの承認を待っている間やコンパクト化している間、また SDK エンジンではツール呼び出しの実行中は Queue と表示されます。その場合、メッセージはキュー内のメッセージとして待機し、カードが回答されるか、コンパクト化が終わるか、ツール呼び出しが完了すると、ターンに入ります。
キューに入れたメッセージは、送った順に古いものから実行されます。
送信を押したときにデバイスがオフラインの場合、ブラウザーがメッセージを保持し、You are offline. Message queued — it will send when the connection returns. と表示します。これは別のキューです。デバイス上にあり、接続が戻ると自動で空になります。
キューに入れたメッセージを 1 件取り消す #
キューに入れたメッセージには、エージェントが取り込むまで Cancel ボタンがあります。押すとメッセージがキューから削除され、Queued message cancelled. と表示されます。その間にエージェントがメッセージに取りかかっていた場合、リレーは Message is already being processed. Use Stop on the thinking bubble instead. と伝えます。
キューを空にする #
会話の ⋯ メニューには Queue の行があります。表示されるのはこの会話ではなく、リレー全体の件数です。
pending=1, processing=1, parked=0
Pending(待機中)のメッセージは自分の番を待っています。Processing(処理中)のものは実行中です。Parked(保留中)のものは、たとえばリレーの再起動中などに保留されています。
その横の 🚮 Empty queue(キューを空にする)は、すべての会話のこれらすべてを破棄します。今まさに実行中のターンのメッセージも含みます。先に確認があります。
Drop all queue rows in pending, processing, and parked states?
This is a local maintenance action and cannot be undone.
その後、Queue emptied: dropped 3 rows.(キューを空にしました:3 行を破棄。)という通知が表示されます。破棄するものがなかったときは Queue is already empty.(キューはすでに空です。)と表示されます。0.9.11 で追加 サインインしているどのブラウザーからでも使えます。必要なのはアクセストークンだけです(リレーのマシンだけが使えるエンドポイントを参照してください)。リレーが拒否した場合は、Failed to empty queue(キューを空にできませんでした)に理由が示されます。このアクションはメッセージをキューから削除するだけです。実行中のエージェントに停止を指示するわけではありません。停止するには Stop を使ってください。メッセージを 1 件だけ取り除くには、代わりにそのメッセージの Cancel を使ってください。
再キュー #
うまくいかなかったターンが常に失われるわけではありません。次の場合、リレーはターンをキューに戻してもう一度試します。
- ターンが停滞した(下記を参照)
- 実行中にセッションのワーカープロセスが終了した
- ワーカーが、再試行する価値のある失敗を報告した
再キューはそれぞれ 1 回の試行として数えられます。上限はメッセージあたり 5 回(設定ファイルの max、起動時に読み込まれます)なので、5 回目の失敗で確定します。次の試行までの待ち時間は原因によって異なります。
| 原因 | 待ち時間 |
|---|---|
| ターンが停滞した | 30 秒(リレーがエージェントの接続をオフラインと見なしている間は 2 秒) |
| セッションのワーカープロセスが終了した | 2 秒 |
| ワーカーが失敗を報告した | 1 回目、2 回目、3 回目、4 回目の失敗の後に、それぞれ 1 分、2 分、4 分、8 分 |
| 開始から 15 秒以内に、アクティビティや返信テキストが出る前に、ワーカーが失敗を報告した | 10 秒、20 秒、40 秒、80 秒 |
上限に達すると、メッセージはメモを付けて最終的に失敗します(下記を参照)。
2 種類のターンは再実行されません。実行中のターンにすでに取り込まれたメッセージは 2 回回答されてしまうため、代わりにメモを付けて失敗します。バックグラウンドタスク自身の継続応答には再送するプロンプトがないため、破棄されます。
ターンが停滞したとき #
ターンは遅いだけのこともあれば、停滞していることもあります。OAR は回答を見ても区別できないため、動いている兆候を監視します。監視には 3 種類あります。リレーがワーカーを監視し、各ワーカーがそのエージェントを監視し、2 つの上限がバックグラウンドの作業と質問カードを制限します。
| タイマー | 既定値 | 変更する場所 | 発動したときの表示 |
|---|---|---|---|
| 無活動:セッションのワーカーから動いている兆候がない | 10 分(リレーがエージェントの接続をオフラインと見なしている間は 45 秒) | 設定ファイルの processing(ミリ秒)。編集後にリレーを再起動します |
ターンはキューに戻り、30 秒後に再び始まります。 |
| Max turn duration(ターンの最大時間):1 回のターンの合計時間 | 60 分。0 から 10 時間まで 5 分刻み。0 は上限なし | Settings → General → Max turn duration(設定 → 一般 → ターンの最大時間) | 同じく、キューに戻ります。Grok では代わりにメモを付けてターンが失敗します。 |
| Copilot(SDK エンジン)、Cursor、Grok のランタイムからの無出力:処理中のものがない | 120 秒 | リレーの環境の OAR_。0 で監視がオフになります |
システムメモを付けてターンが失敗します。 |
| 同上、モデルへのリクエストの実行中 | 300 秒 | OAR_。0 は上限なし |
システムメモを付けてターンが失敗します。 |
| 同上、ツール呼び出しの実行中 | 30 分 | OAR_。0 は上限なし |
システムメモを付けてターンが失敗します。 |
| Background task timeout(バックグラウンドタスクのタイムアウト):返信後、バックグラウンドの作業だけがセッションを動かし続けている | 4 時間。0 から 10 時間まで 5 分刻み。0 は上限なし | Settings → General → Background task timeout(設定 → 一般 → バックグラウンドタスクのタイムアウト) | リレーがタスクを停止します。Claude Cloud では代わりにターンが終了します。プロバイダー別を参照してください。 |
| 質問カードの待機 | 8 時間。Copilot の拡張機能エンジンでは 2 時間 | 変更できません | 誰も回答しなかったことがエージェントに伝えられ、エージェントは会話のモードに従って作業を続けます。 |
Linux と macOS での 3 つの OAR_ 変数
セッションが tmux の下で動作する環境では、リレーに設定した変数はエージェントのプロセスに引き継がれず、この 3 つが効かないことがあります。エージェントに届く変数を参照してください。
これらは次のように連携します。
- リレーがワーカーを監視します。 ワーカーは 10 秒ごとに、どのメッセージに取り組んでいるかを報告します。報告が続いている限り、どれだけ長く実行していてもターンは生きています。無活動の時間枠のあいだ報告が途絶えると、リレーはターンをキューに戻します。チェックは 15 秒ごとです。
- Max turn duration は強制停止です。 止まっているのに報告を続けるワーカーを捕まえます。ターンの開始と、最後に回答した質問カードの 2 つの時点のうち遅いほうが設定より古くなると、ターンは上限超過です。そのため、回答を何時間も待った聞き取りが、最後の回答の直後に打ち切られることはありません。ただし注意点が 1 つあります。チェックがいずれかのターンを再キューするとき、開始が上限より古い実行中のターンをすべて再キューし、それらについては回答を考慮しません。そのため、最近カードに回答したターンが、同じチェック(15 秒ごと)で上限に達した別のターンと一緒にキューに戻ることがあります。長いターンがはっきりした理由なく再キューされる場合は、この設定を大きくするか 0 にしてください。
- 各ワーカーもエージェントを監視します。 Copilot の SDK エンジン、Cursor、Grok では、時間枠より長くランタイムから何のイベントもないターンは失敗します。時間枠はランタイムが何をしているかによって異なります。何も出力しないコマンドは長く静かなことがありますが、書いている途中のモデルはそうではありません。3 つの時間枠が異なるのはそのためです。アイドルの時間枠だけを設定した場合、ほかの 2 つはそれに合わせて変わります。
- 待機中のターンは停滞しません。 質問カードを待っているターンでは、リレーの 2 つの監視とワーカーの無出力の監視が止まります。(Grok の上限と拡張機能エンジンの 2 時間の上限は、そのために一時停止しません。)コンパクト化と
relay_の呼び出しも無出力の監視を止めます。Max turn duration は長いtool relay_の待機を考慮しないため、既定の 60 分では、最大時間に近い待機が打ち切られることがあります。tool - バックグラウンドタスクは別です。 タスクのタイムアウトは返信の後、バックグラウンドタスクだけがセッションを動かし続けているときにだけ数えられます。ターンを制限するものではありません。例外は Claude Cloud です。下記を参照してください。
再キューはエラーとしては表示されません。メッセージは queued(キュー待ち)に戻り、もう一度実行されます。試行回数を使い切ったときにだけ、ターンは失敗します。
ターンが失敗したとき #
失敗したターンは、リレーからのプレーンテキストの返信で終わります。何が起きたかを伝え、エラーコードで締めくくり、次に何をすればよいかを示します。たとえば、無出力の監視が終了させたターンは次のようになります。
System note: the Copilot runtime sent nothing for 300s while a model request was running, so the relay ended the turn.
ツールが実行中だった場合、メモにはその名前が入ります:while a tool was running (build)。リレーが問い合わせても応答しなくなったランタイムの場合は、the Copilot runtime stopped answering … (nothing for 120s, no reply when asked), so the relay ended the turn. となります。
試行回数を使い切ったメッセージは、次のどちらかで失敗します。
Relay timeout after 5 attempts. Message was skipped to keep the queue moving. Retry the message.
Relay recovery limit reached after 5 attempts (stale-recovery). The worker kept dying before completing this turn, so the message was failed to keep the queue moving. Send it again to retry.
ほとんどの失敗は、メッセージをもう一度送るよう勧めて終わります。次の 2 つが役に立ちます。
- もう一度送ります。 メッセージを貼り付けるか入力し直すか、トランスクリプトに Resend(再送信)があればそれを押します。Resend は、ターンに軌道修正で送ったものの、そのターンが失敗または停止したメッセージに表示されます。そのマーカーには Steered into the turn above, which failed — not answered. または Stopped with the turn — not answered. と表示されます。押すと、ボタンはすべてのデバイスで Resent(再送信済み)と表示されます。
- 返信のボタンを使います。 失敗の中には、リレーが代わりに行える対処を示すものがあり、失敗した返信にはそのためのボタンが付きます。Claude のアカウントの問題では Claude settings(Claude の設定)が表示されます。0.9.17 で追加 残高を使い切ったために拒否された DeepSeek のターンでは Top up DeepSeek(DeepSeek をチャージ)と DeepSeek settings(DeepSeek の設定)が、API キーのために拒否されたターンでは DeepSeek settings が表示されます(DeepSeek のエラーを参照してください)。開始できなかった Grok のターンでは Install Grok CLI(Grok CLI をインストール)と Grok settings(Grok の設定)が、サインインしていなかった場合は Sign in to Grok(Grok にサインイン)と Grok settings が表示されます。
起動の問題でセッションワーカーが停止した会話では、メモに Retry(再試行)ボタンが表示され、ワーカーをもう一度起動します。
固まってしまったように見える会話は、⋯ メニューの ☠️ Kill session(セッションを強制終了)で解放できます。これはワーカーを停止します。その後、メッセージをもう一度送ってください。
プロバイダー別 #
キュー、Cancel、Empty queue、無活動の時間枠、Max turn duration はどのプロバイダーでも同じです。異なるのは、エージェント自体の監視です。
| プロバイダー | 無出力の監視 | Steer か Queue か |
|---|---|---|
| GitHub Copilot と OpenAI、SDK エンジン | あり:120 秒、300 秒、30 分。アイドルの時間枠ごとに 1 回、ワーカーがランタイムにまだ応答できるかを問い合わせ、5 秒以内の応答を求めます。応答しないランタイムはその場でターンを終了します。 | Steer |
| GitHub Copilot、拡張機能エンジン | 無出力の監視はありません。ターンは全体で 2 時間に制限されます。それを使い切ると、ターンはキューに戻り、失敗した試行として数えられ、上記の待ち時間に従います。既定の 60 分では、通常は Max turn duration が先に働きます。質問カードは 2 時間待機します。 | Queue |
| Claude | 観察のみ。CLI が 10 分間(ツールが開いている場合は 30 分間)何も出力していないターンは、ワーカーのログに記録され、実行が続けられます。終了させると CLI とそのバックグラウンドタスクが終了してしまうためです。 | Steer |
| DeepSeek 0.9.17 で追加 | Claude と同じ:DeepSeek のチャットは Claude Code を実行するため、同じ観察のみの監視です。 | Steer |
| Claude Cloud | エージェントに対する無出力の監視はありません。ワーカーは接続を監視します。120 秒間データのないストリームは開き直され、5 分間戻らないストリームはメッセージをキューに返します。キューからの次の試行は、メッセージを送り直すのではなく、同じターンの続きを追います。接続が生きていれば、静かなクラウドのターンも実行を続けます。バックグラウンドの作業がまだ動いている間にエージェントがターンを終えると、ターンは Background task timeout の間(それが 0 の場合は 60 分)開いたままになります。その後、作業の結果を見るにはメッセージを送るよう伝えるアクティビティの行を付けて終了します。 | Queue |
| Cursor | あり、同じ 3 つの時間枠です。実行中にアイドルの段階はありません。ツール呼び出しが開いていない限り、モデルへのリクエストとして数えられます。 | Queue |
| Grok | あり、同じ 3 つの時間枠です。保留中の relay_ 呼び出しについては、先に問い合わせます。ここでは OAR_ を 0 にしてもオフになりません。ターンには Max turn duration の上限もあり、ターンの開始から数えられ、回答した質問で数え直されることはなく、回答していないカードの時間も含まれます。上限に達した Grok のターンは System note: the Grok turn stalled and was stopped (grok turn exceeded the 60-minute turn ceiling). Send a new message to retry.(システムメモ:Grok のターンが停滞したため停止しました:grok turn exceeded the 60-minute turn ceiling。再試行するには新しいメッセージを送信してください。)で失敗します(または設定した数値)。 |
Queue |
Background task timeout は Claude、Claude API、DeepSeek、Copilot の SDK エンジン、Claude Cloud に適用されます。Claude、Claude API、DeepSeek ではバックグラウンドタスクを停止します。Copilot の SDK エンジンではリレーがタスクを取り消します。Claude Cloud では、ターンがタスクを待つ時間を決めるだけです。ほかのプロバイダーには適用されません。