定时与后台任务
TIP
本节介绍三种容易混淆的异步机制:按时间或条件触发的「定时任务」、因耗时较长转入后台的「后台任务」,以及角色自主约定的「稍后回来」。
这三种机制都是「不在当前回合中完成」的工作,区别在于由谁发起、何时执行、结果如何回到对话:
- 定时任务:由用户、插件或模型创建,在指定时间、固定周期或某个条件成立时触发。
- 后台任务:在当前对话中启动,耗时较长时转入后台,完成后再通知。
- 角色自己的唤醒:角色根据对话语境,约定在某个契机重新发言。

定时任务
前往「观测 → 定时任务」页面管理所有任务。除了管理员手动创建,模型和插件也可以注册任务。每个任务包含:
- 触发方式:何时触发。
- 执行内容:触发后做什么。
- 重复规则:单次、重复指定次数,或在截止时间前持续重复。
- 状态:活跃、暂停、完成或失败。
- 宽限时间:因系统繁忙未能准时执行时,在宽限时间内仍会补发;超过则跳过,避免发送过期消息。
触发方式
- 时间点:在指定时间执行一次,例如「今天下午 3 点提醒开会」。
- 固定间隔:按固定时长循环,例如每 2 小时检查一次更新。间隔过短会触发审批。
- cron:按日历规则触发,例如工作日早上 9 点发早报,支持指定时区。
- 关注条件:持续评估条件表达式,成立时触发,可以读取新消息、发言人、群聊沉默时长等数据。
执行内容
- 唤醒:相当于有人呼叫机器人,发起一次对话回合。可以附带触发原因(例如「早晨定时唤醒」),模型会据此生成发言。
- 运行提示词:在后台用指定的模型或子代理运行一段提示词,结果可以「发送」到目标会话、作为「通知」推送到控制台,或「不发送」。
限制
为避免循环调用和资源滥用,定时任务插件内置了以下限制,均可在插件配置中调整:
- 每个会话同时活跃的任务上限。
- 每个会话排队中的一次性唤醒上限。
- 每个会话每日触发次数上限。
- 周期任务的最短触发间隔,低于该值需要管理员审批。
- 允许补发的最大延迟。
WARNING
定时任务通常无人值守运行,提示词要清晰、可重复执行,不要依赖即时语境。任务中调用写入或命令执行等敏感工具时,权限检查和审批照常生效。
关注条件
关注条件适合「等待某件事发生」,例如等某人回复、等群聊冷场、等消息量达到阈值、等工作时间开始。条件表达式可以读取最新消息、发言人、沉默时长、当前时间和历史触发次数。
只依赖消息内容的条件在每次收到新消息时计算;依赖时间或沉默时长的条件按固定周期轮询。条件写得越简单,越容易排查。
意图判定
对于「群友是否在讨论聚餐」这类无法用关键词判断的场景,可以启用意图判定:由轻量模型结合最近的聊天记录回答一个是/否问题。意图判定会调用模型,因此有严格的频率限制和每日额度。
后台任务
定时任务等待未来某个时机开始;后台任务则立即开始,只是因为耗时较长而转入后台。
后台任务通常由工具调用触发。工具可以声明同步等待的超时时间和是否允许转后台;耗时达到阈值时,对话中先返回一个占位结果,完成后再把最终输出回传给会话。常见的有:
- 耗时超过同步上限的终端命令或脚本。
- 大文件下载、解压、转码或项目构建。
- 需要持续轮询外部状态的监听任务。
- 复杂的子代理流程。
后台任务有独立的状态(运行中、停止中、完成、失败、取消),可以实时查看进度和日志,并随时取消。完成后的结果可以立即打断当前对话发送、排队到下一回合汇报,或只在管理界面记录。
输出与日志
后台任务的输出分为两路:
- 模型可读的输出:结构化内容,完成或汇报时注入对话上下文。
- 人类可读的日志:执行细节、标准错误和耗时统计,只在控制台展示。
日志缓冲区有上限,超出部分会被截断并标注。查看日志时支持按偏移量增量读取。
角色自己的唤醒
在伪装引擎下,角色可以自主约定重新发言的契机,例如提问后等群友回复、群聊冷场后再开新话题、按作息在早晚问候,或注册关注条件观察群聊走势。
唤醒可以配置:
- 最早可醒时间:在此之前不会被唤醒。
- 醒来条件:等他人回复、等沉默达到某时长、到达指定时刻,或消息累积到指定条数。
- 最大唤醒次数与最小间隔:防止过于频繁地发言。
- 最长等待时间与超时处理:超时后放弃,或直接发言。
- 主动说话后自动取消:等待期间如果因其他原因(例如被 @)已经发言,是否取消这次等待。
唤醒默认只生效一次;默认最长等待时间是最早可醒时间之后的 10 分钟。
WARNING
唤醒是条件触发,不是准时的定时器。条件太宽会频繁打扰,太窄则可能永远不触发。建议从「等回复」或「等沉默」这类简单条件开始。
页面怎么用
「观测 → 定时任务」页面中:
- 任务列表:按状态、目标会话和创建者(人工、插件、模型)筛选。
- 新建任务:点击右上角的新建按钮,依次选择触发方式、填写参数、指定执行内容和目标会话,周期任务再配置重复规则。
- 任务详情:下次执行时间、已执行次数、最近一次结果和错误信息。
- 历史记录:按时间线查看每次触发的状态、结果和耗时。
- 快捷操作:暂停、恢复、删除,或「立即执行」进行测试。

「观测 → 后台任务」页面列出所有运行中的后台任务,可以展开查看实时进度和日志,或直接取消。
推荐配置
| 场景 | 建议 |
|---|---|
| 日常提醒 | 用「时间点」或「cron」;提示词写明目标(例如「播报今天的天气和日程」);宽限时间设为 5–15 分钟 |
| 群活跃维护 | 用「关注条件」,例如沉默达到 45 分钟;务必设置每日上限和最小间隔,并配合角色作息 |
| 长任务 | 封装为支持后台的工具,同步等待超时设为 5–10 秒,短请求仍同步返回 |
| 多群 | 不要用一个任务向所有会话广播;为每个群单独创建任务,按各群节奏配置 |
常见问题
任务没有按时执行:确认状态是「活跃」,检查下次执行时间、时区和服务器时间,以及是否达到每日上限。系统负载高且宽限时间太短时,任务可能被跳过。
任务执行了但没发消息:检查执行内容的投递方式是否为「不发送」或「通知」。通知只出现在控制台,不会发到对话。
关注条件一直不触发:检查表达式中的变量名,以及依赖时间的条件的轮询周期。先用单一条件(例如只看沉默时长)测试通过,再逐步组合。
后台任务一直在运行:在后台任务页查看日志是否仍在更新,判断是在处理还是卡死,需要时点击「取消」。取消后结果不再回传给对话,底层资源在作业退出后释放。
角色频繁醒来:唤醒条件太宽,或次数上限、最小间隔太小。缩短最长等待时间、调大间隔,或把条件限定为特定用户回复。
任务费用很高:主要来自频繁的意图判定和「运行提示词」。降低意图判定频率、设置每日额度;规则明确的场景改用时间或消息条数这类不调用模型的条件。