所有页面
本页内容

推送通知

推送通知会在 OAR 没有打开在你面前时,告诉你智能体需要你或已经完成:有提问在等待、一轮已结束、计划已就绪。它们默认关闭,你需要在每台设备上分别开启。

你自己的中继通过你浏览器厂商的推送服务把它们发送到你的设备,使用标准的 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.”。同样的规则见安装为应用。
  • 支持 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(智能体的提问) 开启 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 needs your input”,包括不是 Copilot 的智能体。

不发送通知的情况 #

  • 有设备在前台显示 OAR 时。 只要你的任何一台设备在屏幕上显示 OAR,就不会向任何设备发送通知。可见的页面每 30 秒告知中继一次,中继会在设备最后一次报告后的 90 秒内将其视为活动。页面被隐藏时会立即报告。如果中继无法判断,就不发送。
  • 另一个智能体启动的轮次。 当另一个中继上的智能体(或由智能体启动的会话)向某个会话发送提示词时,该轮不会发送 Turn completed,也不会发送 Turn failed:等待的是那个智能体,它会自己向你报告。见智能体之间的消息。提问仍会送达你。
  • 回应中继事件的轮次。 由中继事件启动的一轮出于同样的原因两者都不发送;回应事件的监视者会在有重要情况时自行推送。提问不受影响。
  • 你在该设备上关闭的事件,或已关闭的设备。

无法立即送达的通知,推送服务最多会保留 12 小时。

通知显示什么 #

三项设置(同样按设备)决定有多少对话内容离开中继。

设置 默认值 选项
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) 时,正文是固定的一行:

事件 无预览时的正文
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 个字符处截断。

通知还会带上应用打开正确对话所需的几个标识符(对话、问题、看板或消息)。无论预览设置如何,问题的简短选项也会随通知一起发送,因为它们会变成按钮(见从通知中回答)。

有三个事件忽略预览设置。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 打开中继,例如通过反向代理或隧道。
状态显示浏览器不支持 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 该轮由另一个智能体启动,或者回应的是中继事件,或者那台设备上的 Turn completed 已关闭。
缺少回答按钮 问题没有选项、选项超过 120 个字符,或你的设备显示的按钮较少。轻点通知,在 OAR 中回答。

控件列表另见 Settings(设置),暂停的一轮如何发送通知见用量上限暂停。