计划任务
Ankole 提供两种平级的计划工具:
- Cron 反复执行一项任务,例如每天生成简报、每周检查项目进度,或每隔 30 分钟巡检一次。
- Checkback 只唤醒当前会话一次,适合 Agent 等待一段时间后回来继续检查。
Cron
Cron 管理需要重复执行的工作。它既支持按日历时间运行,也支持从某个时间点开始,按固定间隔运行。
直接让 Agent 创建
正常情况下,不必打开 Console。直接在希望接收结果的聊天会话中告诉 Agent 要做什么、什么时候执行,以及使用哪个时区。Agent 会创建计划任务,并把后续结果发回当前会话。
请创建一个计划任务:每个工作日上午 9 点整理昨天的工作进展、
当前阻塞和今天要跟进的事项,并把结果发到当前会话。
时区使用 Asia/Shanghai。创建后先立即运行一次,
让我确认内容和投递位置。
高级:从控制台创建计划任务
创建计划任务前,先在目标聊天会话中与 Agent 对话一次,并确认路由规则可以正常收发消息。
- 打开 Console 的计划任务。
- 选择 Agent,再选择要延续的会话。若下拉列表中没有目标会话,可以粘贴已知的会话 ID。
- 打开 Cron 标签页,选择新建计划任务。
- 选择用于投递结果的路由规则,并填写容易辨认的名称。
- 选择计划类型,填写执行时间。
- 填写投递渠道;需要固定回复到某个话题或线程时,再填写投递线程。
- 保存后选择立即运行。先确认任务内容和投递位置正确,再让它按计划运行。
选择时间规则
Cron(表达式) 适合按日历执行,例如每个工作日上午 9 点。表达式可以使用 5 个字段,也可以使用带秒的 6 个字段。
时区使用 IANA 名称,例如 Asia/Shanghai;不要用 UTC+8 这类易产生歧义的写法。
0 9 * * 1-5
上例表示周一至周五上午 9 点。Console 会按照这条计划填写的时区计算时间,而不是按照浏览器或 Worker 所在机器的时区。
间隔(周期) 适合“每隔一段时间执行一次”,例如每 30 分钟检查一次。间隔以毫秒填写;锚点决定周期从什么时刻开始。没有固定日历含义的轮询任务更适合这种方式。
任务内容和投递位置
计划任务默认唤醒已有会话,因此 Agent 会沿用该会话的上下文。任务内容只需要说明这一次要做什么,不必重复 Agent 的角色、语气和长期规则。
投递渠道和投递线程来自聊天平台。请使用目标会话对应的渠道 ID;若希望每次结果都回到同一个话题或线程,再填写线程 ID。
第一次配置后务必使用立即运行验证,避免任务按时执行却发到错误的位置。
暂停、恢复和删除
- 暂停会保留配置,但不再按时触发,适合节假日或临时停用。
- 恢复会重新计算下一次执行时间。
- 立即运行只额外执行一次,不会改变原来的时间表。
- 删除会移除计划任务。需要保留配置时,请使用暂停。
打开一条计划任务,可以查看最近运行记录。排查问题时,先看是否真的触发,再判断是时间、Agent 运行还是消息投递出了问题。
Checkback
Checkback 是 Agent 在工作过程中为自己设置的一次性回访,例如“30 分钟后再检查部署是否完成”。默认情况下,时间到了系统会唤醒同一个会话,让 Agent 从原有上下文继续工作。
它和 OpenClaw 的 heartbeat 用途相近:都能让 Agent 在没有新消息时主动回来检查。
Heartbeat 会按固定周期唤醒 Agent,由模型反复判断是否有事要处理,更接近 pull(拉取)。
Checkback 更接近 push(推送):Agent 只在确实需要回访时登记一次,系统到点后再推送唤醒事件。
两次检查之间不会为了轮询而调用模型。对于已经知道下次检查时间的任务,这种方式减少了空转,执行效率更高,也更省 token。
直接在对话中说明多久后回来、要检查什么,以及什么情况下需要通知。例如:
30 分钟后回来检查这次部署是否完成。
如果失败、遇到阻塞或状态发生变化,请告诉我;没有变化就保持静默。
Console 的 Checkbacks 标签页会列出当前会话中还未触发的提醒。你可以查看到期时间、原因和投递规则,也可以取消不再需要的提醒。
机械检查交给 Automation Job
Cron 或 Checkback 默认写入事件并唤醒所选 Agent 会话。如果处理过程只是确定性的获取、比较、解析或预定动作,可以让 Agent 创建 automation job,再用它的 automation_job_id 绑定触发器。触发事件保持不变,但系统会创建持久脚本 run,而不是启动 Agent turn。脚本可以静默结束,也可以在需要判断时用 emitEvent 唤醒归属会话。
例如,每五分钟检查一次价格可以只运行脚本,价格高于阈值时保持静默;跌破阈值时再发射当前价格与来源事实。每次触发都需要记忆、判断或对话时,继续直接唤醒 Agent。
Automation Job 的 SDK、测试边界、失败规则与命令见 Worker CLI 能力。取消 automation job 前,先取消指向它的 Cron、Checkback 或 webhook endpoint。
常见问题
- 没有按时触发:确认任务处于启用状态,并检查 Cron 表达式、时区和“下次触发”时间。
- 已经触发但没有收到结果:检查运行记录,然后确认路由规则、投递渠道和目标 Agent 都可用。
- 时间总是偏几个小时:使用正确的 IANA 时区,并检查实例时区设置。
- 结果发到了错误的会话:修改投递渠道或线程,再用立即运行验证。
- Checkback 没有回来:在 Console 的 Checkbacks 中确认它仍然存在,并检查到期时间和原会话的投递规则。
更复杂的失败记录和恢复方法见计划任务故障排查。