プッシュ通知
プッシュ通知は、OAR を目の前で開いていないときに、エージェントがあなたを必要としていることや作業を終えたことを知らせます。質問が待っている、ターンが終わった、プランの準備ができた、といった場合です。既定ではオフで、デバイスごとに個別に有効にします。
通知は、あなた自身のリレーが、ブラウザーのベンダーのプッシュサービスを通じてあなたのデバイスに送ります。使うのは標準の Web プッシュライブラリと、リレー独自の VAPID キーです。OAR のサーバーは関与しません。リレーは最初の起動時にキーを作成してデータベースに保存するため、キーは再起動後も残ります。通知のテキストは、通知に表示される内容で許可したものだけです。既定では、会話のテキストを含まない汎用的な 1 行です。
必要なもの #
- 安全なページ。 OAR を HTTPS で、または
localhostで開きます。それ以外のアドレスではブラウザーがプッシュを提供せず、Notifications(通知)の設定に「Push requires a secure context. Open the app over HTTPS (or localhost) to enable notifications on this device.」と表示されます。同じルールについては OAR をアプリとしてインストールを参照してください。 - Web プッシュに対応したブラウザー。 Service Worker、Push API、Notification API が必要です。対応していない場合、設定に「This browser does not support Web Push notifications.」(または「...service workers, which push notifications require.」)と表示されます。
- どのシステムでも同じです。 OAR が確認するのはこれらのブラウザー機能だけで、iOS 専用のルールはありません。iPhone や iPad のブラウザーがこれらを提供していない場合は、Notifications の設定にその旨が表示されます。
有効にする #
通知を受け取るすべてのデバイスでこの操作を行います。設定はデバイスごとに保存されるため、ノートパソコンのブラウザーで有効にしても、スマートフォンには何の影響もありません。
- Settings → Notifications(設定 → 通知)を開きます。
- Enable push notifications on this device(このデバイスでプッシュ通知を有効にする)をオンにします。
- ブラウザーに尋ねられたら、通知を許可します。この確認は、スイッチをクリックした後にだけ表示され、ページの読み込み時には表示されません。
- ステータス行に「Push notifications are enabled on this device. They are only sent while no device has the app open.」と表示され、ほかのコントロールが使えるようになります。(正確なルールは、OAR を前面に表示しているデバイスが 1 台もないことです。通知が送られない場合を参照してください。)
- 通知するイベントと、通知に表示する内容を選びます(下記)。
テスト通知のボタンはありません。動作を確認するには、OAR をバックグラウンドに置き(またはタブを閉じ)、短いターンを終わらせてください。
スイッチをもう一度オフにすると、デバイスは一覧に disabled(無効)と表示されたまま残り、そのデバイスへの送信が止まります。再びオンにすると、すぐに有効になります。
デバイスの一覧 #
タブの下部にある Devices(デバイス)には、このリレーで購読しているすべてのデバイスが、変更の新しい順に表示されます。各行には次の内容が表示されます。
- デバイス名。ブラウザーとシステムから決まり、例は
Android Chromeです。決まらない場合は Unnamed device(名前のないデバイス)です。使っているデバイスには (this device)(このデバイス)、オフにしたデバイスには disabled が付きます。 - Last delivery(最終配信):最後に通知が届いた日時、または never(なし)。最後の送信が失敗した場合は、そのエラーも表示されます。
Rename(名前を変更)を押すと、新しい名前(80 文字まで)を尋ねられます。Revoke(取り消す)は確認を求めた後、デバイスをリレーから削除し、使っているデバイスでは、ブラウザーからもその購読を削除します。ここから取り消した別のデバイスはすぐに受信しなくなりますが、そのブラウザーにはここから伝えられません。ブラウザーは、そのデバイスで削除するまで自分の購読を保持します。そのデバイスで Settings → Notifications を開くと、スイッチはオフになっています。通知を受け取るには再びオンにします。購読を完全に削除するには、そのブラウザーのサイト設定で、サイトの通知の権限を削除します。
イベント #
各イベントには、Notify about(通知の対象)の下に専用のスイッチがあります。スイッチはデバイスに属するため、スマートフォンとノートパソコンで別の設定にできます。
| スイッチ | 既定 | 通知のタイトル | 送られるとき |
|---|---|---|---|
| Questions from the agent(エージェントからの質問) | オン | Copilot needs your input(Copilot が入力を待っています) | エージェントがあなたに質問し、質問カードが回答を待っているとき。 |
| Turn completed(ターン完了) | オン | Turn completed | ターンが終わったとき(すでに実行中のターンに取り込まれたメッセージは、単独では通知を送りません)。ターンの実行中を参照してください。 |
| Turn failed(ターン失敗) | オン | Turn failed | ターンが失敗したとき。停止したターンも失敗として扱われます。 |
| Boards (plan reviews)(ボード、プランのレビュー) | オン | Plan ready for review(プランのレビュー準備完了) | エージェントがレビュー用のプランボードを投稿したとき。 |
| CLI went offline(CLI がオフラインになった) | オフ | CLI offline(CLI オフライン) | リレーが CLI ホストとの接続を失ったとき。 |
| Host suspend fired or was dropped(ホストのスリープが実行または破棄された) | オン | Host suspend(ホストのスリープ) | キューに入ったホストのスリープが実行されたとき、またはリレーの終了や再起動によって破棄されたとき。 |
| Queued relay restart waited its maximum time(キュー中のリレー再起動が最大待機時間に達した) 0.9.13 で追加 | オン | Relay restart waiting(リレーの再起動待ち) | キューに入ったリレーの再起動が最大待機時間に達し、今すぐ再起動するか、待ち続けるか、取り消すかを尋ねるとき。 |
質問の通知のタイトル
質問の通知のタイトルは、Copilot 以外のエージェントも含め、どのプロバイダーでも「Copilot needs your input」です。
通知が送られない場合 #
- いずれかのデバイスで OAR が前面にあるとき。 どれか 1 台のデバイスの画面に OAR が表示されていれば、どのデバイスにも何も送られません。表示中のページは 30 秒ごとにリレーにそのことを伝え、リレーは最後の報告から 90 秒間、そのデバイスをアクティブとみなします。非表示になったページは、すぐにそれを報告します。リレーが判断できない場合は送信しません。
- 別のエージェントが開始したターン。 別のリレーのエージェント(またはエージェントが開始したセッション)がセッションにプロンプトを送った場合、そのターンは Turn completed も Turn failed も送りません。待っているのはそのエージェントで、エージェント自身があなたに報告するためです。エージェント間のメッセージを参照してください。質問は引き続き届きます。
- リレーイベントに応答するターン。 リレーイベントによって開始されたターンも、同じ理由でどちらも送りません。イベントに応答する見守る側のエージェントは、重要なことがあれば自分で通知します。質問は変わりません。
- そのデバイスでオフにしたイベント、またはオフにしたデバイス。
すぐに配信できなかった通知は、プッシュサービスが最大 12 時間保持します。
通知に表示される内容 #
会話の内容がどこまでリレーの外に出るかは、3 つの設定(これもデバイスごと)で決まります。
| 設定 | 既定 | オプション |
|---|---|---|
| Include conversation title(会話のタイトルを含める) | オフ | オンにすると、タイトルが「Turn completed — 会話のタイトル」になります。タイトル全体が 120 文字で切り詰められます。 |
| Message preview(メッセージのプレビュー) | None (generic text)(なし、汎用テキスト) | None (generic text)、Truncated(切り詰め)、Full text(全文)。 |
| Preview length (characters)(プレビューの長さ、文字数) | 80 | 20〜500。Truncated のときだけ使われ、切り詰めた場合は「…」が付きます。 |
Message preview が None (generic text) のとき、本文は次の固定の 1 行です。
| イベント | プレビューなしの本文 |
|---|---|
| Question(質問) | The agent asked a question. |
| Turn completed | The agent finished its turn. |
| Turn failed | The agent turn failed. |
| Plan ready(プランの準備完了) | The agent posted a board for review. |
| CLI offline | The relay lost its connection to the CLI host. |
| Host suspend | The queued host suspend changed state. |
| Relay restart waiting | The queued relay restart has waited its maximum time. |
プレビューがある場合、本文は質問のテキスト、返信(失敗したターンではエラーのテキスト)、またはプランボードのタイトルです。Full text は 2000 文字で切り詰められます。
通知には、アプリが正しい会話を開くために必要な識別子(会話、質問、ボード、メッセージ)もいくつか含まれます。質問の短い選択肢も、プレビューの設定にかかわらず一緒に送られます。選択肢がボタンになるためです(通知から回答するを参照)。
3 つのイベントは、プレビューの設定を無視します。CLI went offline は常に固定の 1 行を表示します。Host suspend fired or was dropped は常に独自のメッセージ(「All agents finished; the host is suspending now.」または「Queued host suspend dropped: relay ...」)を表示します。Queued relay restart waited its maximum time も常に独自のメッセージを表示します。例:「The queued relay restart has waited 30 min for 2 sessions. Restart now, keep waiting or cancel it.」。
プライバシーを重視する場合は、タイトルとプレビューをオフのままにしてください。そうすれば、会話の内容は通知に一切含まれません。
通知をタップする #
通知をタップすると、OAR がその会話を開いた状態で表示されます(CLI offline のように会話のない通知では、OAR そのものが開きます)。OAR がすでにウィンドウで開いている場合は、そのウィンドウが前面に出て会話を表示します。開いていない場合は新しいウィンドウが開きます。イベントごとに個別の通知が届きます。通知は積み重なり、互いに置き換わることはありません。
通知から回答する #
質問の通知には、質問の選択肢のボタンを付けられます。
- 選択肢は 3 つまでで、デバイスが表示できる数を超えるボタンは付きません。
- 120 文字を超える選択肢にはボタンが付かず、ボタンのラベルは 40 文字に短縮されます(送られる回答は選択肢の全文です)。
- ボタンをタップすると、質問がまだ回答を待っていて、ブラウザーがリレーにサインインしている限り、OAR を開かずにその回答がリレーに送られます。
回答が届かなかった場合(質問がほかの場所で回答済み、期限切れ、またはオフライン)は、代わりにタップで会話が開くので、理由を確認できます。質問カードを参照してください。
複数のデバイス、期限切れの購読、新しいアドレス #
- 複数のデバイス。 有効にしたすべてのデバイスが、そのデバイスでオンにしたイベントの通知をそれぞれ受け取ります。前面表示のルールは、すべてのデバイスにまとめて適用されます。
- 期限切れの購読。 プッシュサービスが購読がもう存在しないと報告すると、リレーはそのデバイスを自動で一覧から削除します。ほかの理由で失敗し続けるデバイスは、8 回連続で送信に失敗すると削除されます。そのデバイスで設定を再びオンにすると、新たに購読されます。
- リレーのアドレスが変わった後。 購読は、それを有効にしたページに属します。各デバイスで新しいアドレスの OAR を開き、Settings → Notifications を確認してください。そこで購読していないデバイスでは、スイッチがオフになっています。古いエントリは、Revoke するか、プッシュサービスが消えたと報告するまで一覧に残ります。リレーはプッシュのキーを再起動後も保持するため、同じアドレスでの再起動なら設定し直す必要はありません。
トラブルシューティング #
| 問題 | 原因と対処 |
|---|---|
| スイッチがグレー表示で、ステータスにプッシュには安全なコンテキストが必要と表示される | ページが HTTPS でも localhost でもありません。リバースプロキシやトンネルなどを使い、HTTPS でリレーを開いてください。 |
| ステータスに、ブラウザーが Web プッシュまたは Service Worker に対応していないと表示される | それらに対応したブラウザーを使ってください。それまでスイッチはオフのままです。 |
| 許可の確認が表示されない | 確認は、スイッチをクリックした後にだけ表示されます。ステータスに「Notifications are blocked for this site」と表示される場合は、ブラウザーのサイト設定でそのサイトの通知を許可し、Settings ダイアログを開き直してください。 |
| 通知が届かなくなった | デバイスの一覧で Last delivery と最後のエラーを確認してください。デバイスに disabled が付いていないこと、イベントのスイッチがオンであること、ブラウザーが引き続き通知を許可していることを確かめます。デバイスが一覧から消えている場合は、設定を再びオンにしてください。 |
| 設定がオンなのに何も届かない | 別のデバイスで OAR が前面に開いている可能性があります。その場合、すべてのデバイスへの通知が止まります。そのデバイスで OAR を閉じるか非表示にし、少し待ってください。 |
| 別のデバイスで OAR を開いているのに通知が届く | リレーがデバイスをアクティブとみなすのは、ページが表示されていて、過去 90 秒以内に報告があった間だけです。開いているが非表示のタブ、ロックされたスマートフォン、切断された接続はアクティブとみなされません。 |
| 通知に会話のテキストがない | Message preview が既定の None (generic text) になっています。Truncated または Full text を選んでください。 |
| ターンが終わったのに Turn completed が届かない | そのターンは別のエージェントが開始したか、リレーイベントに応答したものです。または、そのデバイスで Turn completed がオフになっています。 |
| 回答のボタンがない | 質問に選択肢がない、選択肢が 120 文字を超えている、またはデバイスが表示できるボタンの数が少ない、のいずれかです。通知をタップして OAR で回答してください。 |
コントロールの一覧は Settings(設定)を、一時停止したターンの通知については上限での一時停止を参照してください。