RaydoRaydo Book

计划任务

按时间触发受控任务,并理解本地调度、交付、失败治理和无人值守边界。

功能状态:预览

计划任务仍在完善。不要让预览功能无人值守地执行付款、删除、公开发布或其他不可逆动作。

这页不只讲“怎么创建一个计划任务”。

这页更重要的是讲清楚:

  • 计划任务适合做什么,不适合做什么
  • 它和 Chat、Workflow、WorkPack、Runs、Inbox 是什么关系
  • 用户表面看不到,但会直接影响结果的后台规则是什么
  • 为什么有些任务明明“到点了”,却没有按你想象的方式执行

先用一句话理解

计划任务适合做的是:

在确定时间,用稳定输入,触发一条可控任务,然后把结果送回 Chat、Inbox 或指定渠道。

它不是“万能自动驾驶”。

如果一件事需要多步编排、分支、审批链、复杂重试,应该优先进入 工作流 或 WorkPack,而不是硬塞进计划任务。

它最适合什么场景

更适合的场景:

  • 每天固定时间生成简报、清单、提醒或 handoff note
  • 每周固定节奏做项目回顾、风险汇总、例会准备
  • 每隔几小时做一次轻量 follow-up
  • 让一个稳定的一步任务按时运行
  • 让一个已验证的 workflow / WorkPack 在固定时间触发

不适合的场景:

  • 需要很多分支判断的流程
  • 需要多人审批串联的流程
  • 一旦失败就必须自动恢复很多步的流程
  • 第一次就直连真实外部发布、真实客户群、真实生产系统
  • 你自己都还没手动跑顺的任务

入口

切换到完整工作台,在「推进处理」中打开「计划任务」。

如果你当前在浏览器只读模式,通常只能查看,不能创建、切换或手动触发计划任务。真正的创建、启停和运行,主要依赖桌面端。

计划任务和其他板块是什么关系

这是最容易混的地方。

板块你可以把它理解成什么和计划任务的关系
Chat一次对话式执行入口计划任务可以触发轻量 Chat 执行,也可以把结果送回 Chat
Workflow多步骤执行方案计划任务可以定时触发 workflow,但 workflow 仍然是执行方案本体
WorkPack可复用、可绑定角色与入口的工作包计划任务可以定时触发某个 WorkPack 实例
Runs每次真正发生的执行记录每次计划触发后,最终都应该落成一条 run
Inbox需要后续处理的地方失败、待跟进结果或交付后续可以送到 Inbox
Channels外部消息或交付去向计划任务可以把结果发往已配置的渠道

一句话说:

计划任务是“什么时候触发”,不是“怎么执行”的全部答案。

你在界面里能看到什么

通常你会看到这几类信息:

  • 任务名称
  • 触发方式
  • 执行模式
  • 下一次运行时间
  • 最近一次状态
  • 最近运行记录
  • 可选交付去向

表面上看很简单。

但真正决定它是否靠谱的,往往是下面这些“用户不一定第一眼能看到”的东西。

用户不一定看得到,但会直接影响结果的后台规则

这是这页最重要的部分。

1. 计划记录和执行方案不是一回事

如果你是从 Workflow 或 WorkPack 发起定时:

  • 计划任务页面里保存的是“定时记录”
  • 真正的执行逻辑仍然在 workflow / WorkPack 那边

也就是说,计划任务负责“到时间触发”,Workflow 负责“这次到底怎么跑”。

所以你改 schedule,不等于你改了流程本体。

反过来,你改了 workflow,也不代表所有历史计划记录都会自动变成你想象中的样子。

2. 某些上下文是“关联进去”,不是“整段复制进去”

当计划任务来自项目上下文或对话上下文时,Raydo 更倾向于把源内容作为 metadata 关联进去,而不是把原始上下文整段复制进任务里。

这会带来两个直接结果:

  • 好处是更安全,减少原始内容被不必要扩散
  • 代价是如果原上下文本身不完整,定时任务也不会凭空变完整

所以不要以为“我当时聊过一次,后面计划任务就永远什么都懂了”。

不一定。

3. 桌面端是否可用,会直接影响本地调度

Raydo 当前有明显的本地调度特征。

对用户来说最实用的理解是:

  • 桌面端更像真正的计划任务执行主场
  • 浏览器模式更偏只读查看
  • 本地 Runtime、桌面调度可用性、应用在线状态,都会影响触发

所以“时间到了没跑”时,第一怀疑对象不该只是 prompt。

更应该先查:

  • 桌面端当时是否可用
  • 本地调度是否正常
  • 设备是否休眠、断网或被系统中断

4. 到点触发,不一定只有一种原因

同一条计划任务的运行,后台可能来自不同触发原因,例如:

  • 正常到点触发
  • 你手动点了 Run
  • 系统在恢复之前错过的触发

这会影响你怎么看一条 run。

比如你以为是“自动准点触发”,其实那次是人工补跑。

再比如你以为是“重复执行”,实际上可能是一条补偿运行和一条手动运行叠在了一起。

5. 结果交付成功,不等于执行全都没问题

计划任务可能有两层成功:

  • 执行本身成功
  • 结果交付成功

比如内容已经生成了,但发外部渠道失败了。

这时不是“什么都没做成”,而是:

  • run 可能已经完成
  • 只是 delivery 失败

这就是为什么你要同时看 run 状态和交付去向。

不能只看最后有没有发出去。

6. Raydo 会尽量保留红线,而不是默默帮你赌

对外部渠道、审批、授权、验证这类高风险链路,Raydo 更应该做的是:

  • 阻塞
  • 等审批
  • 记录失败
  • 送入 Inbox

而不是在结果不明确时偷偷重发。

这点很重要。

尤其是消息发送、表单提交、公开分发这类动作,宁可让你多看一眼,也不要让系统替你赌第二次。

什么时候该用计划任务,什么时候该升到 Workflow

这是实际使用里最值钱的判断。

用计划任务就够了

  • 一步执行
  • 输入稳定
  • 输出稳定
  • 没有复杂分支
  • 不需要很多审批
  • 失败后人工判断比自动恢复更安全

应该升到 Workflow / WorkPack

  • 已经开始出现多步骤
  • 已经开始出现“如果 A 失败走 B”
  • 已经需要审批点
  • 已经需要重试、分叉、留痕、交付链
  • 已经不只是“定时提醒我做事”,而是“定时驱动一个完整工作过程”

如果你已经在计划任务里塞了太多补丁逻辑,通常就说明该升级了。

创建前的准备

在你点击创建前,建议先完成这 5 件事:

先手动成功跑过同一任务,确认输入、模型、连接和输出稳定。
先决定这条任务到底是单步自动化,还是应该升级成 workflow。
先想清楚结果要回到哪里,Chat、Inbox 还是外部 Channel。
如果会触发外部发送或写入,先准备测试目标,不要先连生产目标。
给任务起一个以后回头看也能认出来的名字。

创建时最关键的 5 个决定

1. 执行模式

计划任务当前通常会落到几类执行模式:

  • Chat execution
  • Role execution
  • Workflow execution
  • Work Pack execution
  • Media capability execution

实用理解:

  • 轻量单步任务,适合 Chat execution
  • 需要角色路由,适合 Role execution
  • 多步骤编排,适合 Workflow execution
  • 要复用现成工作包,适合 Work Pack execution
  • 直接图片 / 视频生成,适合稳定的 media capability execution

其中 direct capability 这一路,当前更适合稳定媒体能力,不建议把它理解成“所有能力都能直接定时调用”。

2. 触发方式

当前常见有 3 种:

触发方式适合什么
Once只跑一次,比如会议前提醒
Interval每隔一段时间跑一次,比如每 2 小时检查一次
Cron固定节奏重复,比如每天 9 点、每周一 10 点

如果你用 cron,当前更适合把它当成五段式 cron。

如果团队里不是每个人都熟 cron,优先用更直观的日 / 周 / 间隔表达,不要为了“技术上更灵活”把维护成本抬高。

3. 交付去向

结果通常可以送到:

  • Chat
  • Inbox
  • Channel

实用建议:

  • 想自己先看结果,优先送 Chat
  • 想后续有人继续跟,优先送 Inbox
  • 想发到外部渠道,才考虑 Channel

如果 Channel 没配好、没有默认目标,或者连通性本身有问题,结果可能保住了,但 delivery 会失败。

所以“交付去向”不是随便填一下就行。

4. 项目绑定

如果一条任务和某个项目明确相关,尽量绑到项目。

好处很直接:

  • 回头更容易追 run
  • 更容易看输出属于哪个工作上下文
  • 更容易交给别人复盘

5. 名称和描述

计划任务特别容易在一个月后变成“这条到底是干什么的”。

命名建议直接写清:

  • 对象
  • 节奏
  • 结果

比如:

  • 工作日 AI 项目简报
  • 每周五 handoff note
  • 每 2 小时 focus check-in

而不是:

  • 自动任务 1
  • 运营计划
  • daily run

运行状态怎么读

任务状态

任务本身常见状态:

  • Active
  • Paused
  • Completed
  • Disabled

实用理解:

  • Active:会继续等下一次触发
  • Paused:记录还在,但先别继续跑
  • Completed:一次性任务跑完,生命周期自然结束
  • Disabled:当前不参与触发

单次运行状态

单次 run 常见状态:

  • Queued
  • Running
  • Success
  • Failed
  • Skipped

其中最容易误判的是:

  • Failed 不是都一样,要继续看失败发生在执行还是交付
  • Skipped 不一定是坏事,可能是因为条件不满足、预算收口或人为暂停策略

计划任务真正要看的,不只是“下一次运行时间”

很多人只看 next run。

其实更该一起看的是:

  • next run 对不对
  • last run 是什么状态
  • failure count 有没有上涨
  • 最近 run 的 output 在哪里
  • 有没有送到 Chat / Inbox / Channel

如果只盯着“下一次时间没问题”,其实不够。

高风险任务应该怎么控

如果计划任务会碰下面这些动作:

  • 外部发消息
  • 发到群或频道
  • 浏览器提交
  • 写回外部系统
  • 公开发布

建议至少做这几件事:

  1. 第一轮只用测试目标
  2. 保留审批或人工收口
  3. 设置最小发送范围
  4. 明确失败后不要自动赌重发
  5. 首次成功后马上回看 run 与实际外部结果

如果你们团队后面会把计划任务接入更正式的外部分发,这一条尤其不能省。

一个更稳的使用顺序

推荐这样推进:

先在 Chat 或 Workflow 里手动跑通。
确认输出结构和交付位置。
创建计划任务,只设测试目标。
先跑一次手动 Run,确认计划记录和执行模式匹配。
等第一次自动触发,再看 Runs、Inbox、Chat 或 Channel 实际结果。
稳定后再决定是否切到真实交付目标。

计划任务背后的“隐形检查”

用户不一定都能直接看到,但从产品设计上,你应该默认计划任务至少会被这些问题影响:

  • 能力路由有没有真正解析出来
  • 渠道目标有没有选中
  • 本地调度是否可用
  • 项目上下文是不是足够
  • 执行预算和失败预算是否合理
  • 停止条件和验证路径是否清楚

如果这些东西没有对齐,计划任务最容易出现的不是“完全不能创建”,而是“能创建,但跑起来不稳”。

这类问题最难排,因为表面看起来像是偶发。

实际上往往是建模阶段就没收口。

和 Inbox 的关系

Inbox 不只是“失败箱”。

它更像是计划任务的人工接力区。

典型情况包括:

  • 结果需要你确认
  • 交付失败需要你补处理
  • 高风险动作不该静默继续
  • 任务跑完了,但还需要人工下一步

所以如果你们团队真的开始用计划任务做实际工作,Inbox 要一起看,不要只看 Scheduled Tasks 页面。

和 CLI 的关系

如果你需要更精确地看本地调度状态,或者桌面 UI 看不够细,可以配合 CLI。

常见命令包括:

raydo scheduled-tasks list
raydo scheduled-tasks runs
raydo scheduled-tasks run-due
raydo scheduled-tasks daemon
raydo scheduled-tasks daemon-status
raydo scheduled-tasks daemon-repair
raydo scheduled-tasks daemon-stop

这组命令更适合:

  • 查本地调度是不是活着
  • 看到期任务有没有被捞到
  • 手动触发 due run
  • 修本地 daemon

如果你们后面要做更正式的运维文档,这块还可以继续拆一页 CLI 专题。

常见问题

成功标志

一条计划任务真正“成熟”的标志,不只是能创建成功。

而是同时满足这几件事:

  • 下一次运行时间正确
  • 首次自动触发按预期执行
  • 运行结果回到正确位置
  • 失败时能在 Runs 或 Inbox 被及时发现
  • 不会因为重试、补跑或交付不确定而造成重复外部影响

做到这里,计划任务才算是真的能托付一点工作。