所有頁面
本頁內容

推播通知

推播通知會在 OAR 沒有開在你眼前時,告訴你 agent 需要你或已經完成:有提問在等待、回合已結束、計畫已就緒。它們預設關閉,而且要在每一台裝置上分別開啟。

通知由你自己的中繼透過你瀏覽器廠商的推播服務送到你的裝置,使用標準的 web push 函式庫和中繼自己的 VAPID 金鑰。過程中不經過任何 OAR 伺服器。中繼在第一次啟動時建立這些金鑰,並保存在它的資料庫中,所以重新啟動後依然有效。通知的文字只包含你在通知顯示的內容中允許的部分:預設是一行不含任何對話文字的通用說明。

你需要什麼 #

  • 安全的頁面。透過 HTTPS 或在 localhost 上開啟 OAR。在其他任何位址上,瀏覽器都不提供推播,Notifications(通知)設定會顯示「Push requires a secure context. Open the app over HTTPS (or localhost) to enable notifications on this device.」。同樣的規則見安裝成 App。
  • 支援 web push 的瀏覽器。它需要 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 設定會告訴你。

啟用 #

在每一台要接收通知的裝置上都這樣做。這個設定依裝置分別儲存,所以在筆電的瀏覽器中開啟它,對你的手機不會有任何作用。

  1. 開啟 Settings → Notifications(設定 → 通知)。
  2. 開啟 Enable push notifications on this device(在此裝置上啟用推播通知)。
  3. 瀏覽器詢問時,允許通知。這個提示只會在你點選開關之後出現,絕不會在頁面載入時出現。
  4. 狀態列會顯示「Push notifications are enabled on this device. They are only sent while no device has the app open.」,其他控制項也會解除鎖定。(確切的規則是沒有任何裝置把 OAR 顯示在前景;見不會傳送通知的情況。)
  5. 選擇事件以及通知要顯示的內容(見下文)。

沒有測試通知的按鈕。要確認它有效,把 OAR 留在背景(或關閉它的分頁),然後讓一個短回合完成。

再次關閉開關後,裝置會保留在清單中,標示為 disabled(已停用),中繼也會停止對它傳送。重新開啟會立即生效。

裝置清單 #

分頁底部的 Devices(裝置)列出在此中繼上訂閱的每一台裝置,最近變更的排在最前面。每一列顯示:

  • 裝置名稱,依瀏覽器和系統選定,例如 Android Chrome,或為 Unnamed device(未命名裝置);你自己的裝置帶有 (this device)(此裝置),已關閉的裝置則帶有 disabled;
  • Last delivery(上次傳送):通知上次送達它的時間,或 never(從未);如果上次嘗試失敗,還會附上最後一個錯誤。

Rename(重新命名)會要求輸入新名稱(最多 80 個字元)。Revoke(撤銷)會要求確認,把裝置從中繼移除;在你正在使用的裝置上,也會從瀏覽器移除它的訂閱。你從這裡撤銷的其他裝置會立即停止接收,但這裡無法通知它的瀏覽器:該瀏覽器會保留自己的訂閱,直到你在那邊移除。在那台裝置上開啟 Settings → Notifications;開關會顯示為關閉。重新開啟它即可再接收通知,或者在該瀏覽器的網站設定中移除這個網站的通知權限,永久移除訂閱。

事件 #

每個事件在 Notify about(通知項目)下都有自己的開關。這些開關屬於裝置,所以你的手機和筆電可以設定得不同。

開關 預設 通知標題 觸發時機
Questions from the agent(agent 的提問) 開啟 Copilot needs your input(Copilot 需要你的輸入) agent 向你提出問題,並有提問卡片等待回答。
Turn completed(回合已完成) 開啟 Turn completed 回合結束(併入已在執行中之回合的訊息,不會另外傳送通知)。見回合執行期間。
Turn failed(回合失敗) 開啟 Turn failed 回合失敗。你停止的回合也算失敗。
Boards (plan reviews)(看板,計畫審閱) 開啟 Plan ready for review(計畫已就緒,待審閱) agent 張貼計畫看板供審閱。
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 needs your input」,包括不是 Copilot 的 agent。

不會傳送通知的情況 #

  • 有裝置把 OAR 放在前景時。只要你的任何一台裝置在螢幕上顯示 OAR,就不會對任何裝置傳送通知。可見的頁面每 30 秒向中繼回報一次,中繼會在裝置最後一次回報後的 90 秒內把它視為作用中。頁面被隱藏時會立即回報。如果中繼無法判斷,就不會傳送。
  • 由其他 agent 啟動的回合。當另一個中繼上的 agent(或由 agent 啟動的 session)向某個 session 傳送提示時,該回合不會傳送 Turn completed,也不會傳送 Turn failed:在等待的是那個 agent,它會自己向你回報。見 agent 註記。提問仍會送達你。
  • 回應中繼事件的回合。由中繼事件啟動的回合基於同樣的理由,兩者都不會傳送;回應事件的監看者會在有重要的事時自行推播。提問不受影響。
  • 該裝置上你關閉的事件,或已關閉的裝置。

無法立即送達的通知,推播服務最多會保留 12 小時。

通知顯示的內容 #

有三項設定(同樣依裝置分別儲存)決定對話中有多少內容會離開中繼。

設定 預設 選項
Include conversation title(包含對話標題) 關閉 開啟時,標題為「Turn completed — conversation title」,完整標題在 120 個字元處截斷。
Message preview(訊息預覽) None (generic text)(無,通用文字) None (generic text)、Truncated(截斷)、Full text(全文)。
Preview length (characters)(預覽長度,字元) 80 20 到 500。只在選擇 Truncated 時使用,截斷時會加上「…」。

當 Message preview 設為 None (generic text) 時,內文是固定的一行:

事件 無預覽時的內文
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 個字元處截斷。

通知還帶有 App 開啟正確對話所需的幾個識別碼(對話、問題、看板或訊息)。不論預覽設定為何,問題的簡短選項也會隨通知一起傳送,因為它們會變成按鈕(見從通知回答)。

有三個事件不理會預覽設定。CLI went offline 一律顯示它固定的那一行。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 已在某個視窗中開啟,該視窗會移到前面並顯示該對話;否則會開啟新視窗。每個事件都有自己的通知:它們會堆疊起來,不會互相取代。

從通知回答 #

提問通知可以帶有對應問題選項的按鈕:

  • 最多三個選項,而且按鈕數不會超過你的裝置能顯示的數量;
  • 超過 120 個字元的選項不會有按鈕,按鈕的標籤會縮短為 40 個字元(送出的答案是完整的選項);
  • 只要問題仍在等待,且瀏覽器已登入中繼,點一下按鈕就會把該答案送到中繼,不需要開啟 OAR。

如果答案沒有送達(問題已在別處回答、已到期,或你處於離線狀態),點一下就會改為開啟該對話,讓你看到原因。見提問卡片。

多台裝置、過期的訂閱、新的位址 #

  • 多台裝置。每一台你已開啟通知的裝置,都會收到它已開啟之事件的每則通知。前景規則同時套用到所有裝置。
  • 已過期的訂閱。當推播服務回報某個訂閱已不存在時,中繼會自行把該裝置從清單中移除。因其他原因持續失敗的裝置,會在連續 8 次傳送失敗後被移除。在那台裝置上再次開啟設定,即可重新訂閱。
  • 中繼位址變更後。訂閱屬於你開啟它時所在的頁面。在每台裝置上以新位址開啟 OAR,並查看 Settings → Notifications:在那裡尚未訂閱的裝置,開關會顯示為關閉。舊的項目會留在清單中,直到你 Revoke 它,或推播服務回報它已不存在。中繼在重新啟動後仍保有推播金鑰,所以在相同位址上重新啟動,不需要重新設定。

疑難排解 #

問題 原因與解決方式
開關呈灰色,狀態顯示推播需要安全環境 頁面不在 HTTPS 或 localhost 上。透過 HTTPS 開啟中繼,例如經由反向 proxy 或 tunnel。
狀態顯示瀏覽器不支援 web push 或 service worker 使用支援它們的瀏覽器。在那之前,開關會保持關閉。
沒有出現權限提示 提示只會在你點選開關之後出現。如果狀態顯示「Notifications are blocked for this site」,請在瀏覽器的網站設定中允許這個網站的通知,然後重新開啟 Settings 對話框。
通知不再送達 檢查裝置清單中的 Last delivery 和最後一個錯誤。確認裝置沒有標示為 disabled、事件開關已開啟,而且瀏覽器仍允許通知。如果裝置已從清單中消失,請再次開啟設定。
設定已開啟卻什麼都沒收到 可能有另一台裝置把 OAR 開在前景;這會讓所有裝置都收不到通知。關閉或隱藏它,再稍等一下。
OAR 在另一台裝置上開著,通知卻仍然送達 中繼只在裝置的頁面可見、而且在最近 90 秒內回報過時,才把它視為作用中。開著但被隱藏的分頁、已鎖定的手機,或已中斷的連線都不算。
通知中沒有對話文字 Message preview 設為 None (generic text),這是預設值。選擇 Truncated 或 Full text。
回合已結束,卻沒有收到 Turn completed 該回合是由其他 agent 啟動的,或是在回應中繼事件,或者該裝置上的 Turn completed 是關閉的。
沒有回答按鈕 問題沒有選項、選項超過 120 個字元,或你的裝置能顯示的按鈕較少。點一下通知,在 OAR 中回答。

另見 Settings(設定) 中的控制項清單,以及用量上限暫停,了解暫停的回合如何通知。