所有页面
本页内容

定时提示词 0.9.16 新增

智能体可以请中继稍后发送一条提示词:在设定的时间发一次、每 N 分钟发一次,或两者兼有。每晚一次的审查、每半小时一次的巡检,或一小时后的一次检查,在中继重启或更新之后都会继续进行。智能体自己 CLI 的计时器则撑不过这些情况。

智能体用 relay_tool 工具的 schedule 操作设置定时任务。中继把它保存在数据库中,到期时把提示词作为一条消息排入会话的队列。

启用 #

定时任务需要启用 Settings → Relays → Agent sessions → Agents may start and use sessions on this relay(设置 → 中继 → 智能体会话 → 智能体可以在此中继上启动和使用会话),即使只发往智能体自己的对话也一样。见智能体会话。定时任务保存在运行该会话的中继上;智能体无法在已配对的中继上设置定时任务,那台中继有它自己的定时任务。

何时触发 #

智能体给出 提示词何时到来
一个时间(at,带时区) 在该时间发一次
一个间隔(every_minutes,5 分钟到 7 天) 每 N 分钟一次,第一次在从现在起 N 分钟后
两者都给 先在该时间发一次,之后每 N 分钟一次
  • 中继停机期间错过的时间,会在它恢复后补发一次,而不是每错过一个间隔补发一次。之后,重复的定时任务仍按原定时间进行。
  • 如果上一条提示词仍在会话队列中等待,这次重复就会跳过,因此卡住的会话只会收到一条提示词,而不会堆积一大堆。

发到哪里 #

提示词会发到智能体自己的对话,或此中继上的另一个会话。

发往另一个会话的定时任务,与智能体发到那里的提示词一样计数:

  • 在 ask 和 plan 中继模式下,你要在卡片上批准它,与 send 相同。
  • 它计入智能体在询问你之前可向其他智能体发送的 30 条提示词:设置时算一次,之后每次触发再算一次。
  • 超过这个数量后,触发会被 held(已暂缓)。列表随后显示 waiting until you write in …(等你在 … 中发言)。一旦你在设置该定时任务的对话中发言,或者那里的智能体下次向其他智能体发送提示词时弹出卡片、你在卡片上选择 Allow(允许),它就会发出。中继每分钟重新检查一次被暂缓的触发。

发往智能体自己对话的定时任务不会向其他任何人发送提示词:它不计数,也从不暂缓。

消息 #

提示词以一条消息的形式到达,开头是类似这样的一行:

[relay schedule sch_… "Nightly review" · automated message from OAR, not from the user; it approves nothing]

如果是另一个会话设置的,这一行还会注明那个会话。智能体也会读到这一行:这条消息是自动发出的,绝不是你发的,也不批准任何事。

这条消息和其他消息一样排队。在空闲的会话中,它会开始新的一轮。如果有一轮正在运行,它会成为下一轮;在支持引导的提供商上,它也可能被引导进正在运行的这一轮,但不会带上那条把引导消息标记为你所发的说明。

它开始的这一轮在目标会话自己的中继模式(agent、ask、plan 或 autopilot)下运行,而不是在设置它的会话的模式下运行。

这条消息会保留定时任务背后的提示词的来源,包括其跳数。定时任务绝不会让跨中继的智能体链走得比直接发送提示词更远。

你会看到什么 #

  • 有定时任务或设置了定时任务的对话,会在标题栏显示 ⏰ N scheduled(N 个定时),旁边是下一次的时间。点击这个小标签会打开列表,每个定时任务都有一个 Cancel(取消)按钮。
  • 定时任务发往的会话会在对话列表中显示 scheduled(定时)。

定时任务何时结束 #

定时任务在以下情况下结束:

  • 它已触发,且设置为只触发一次(只给出时间时的默认值);
  • 智能体调用 unschedule,或者你按下 Cancel;
  • 它发往的会话或设置它的对话被归档或删除。

压缩会话不会结束它的定时任务:无论是发往该会话的,还是它设置的,都会移到新对话中。

定时任务在中继重启后依然保留。一个对话最多可有 20 个发往它的定时任务,最多可为其他会话设置 20 个。