第 03 模块 · 2 节

Scheduled Automations:定时自动化

《Orca 生产级工程》03 编排与自动化 · 本节时长 24 分钟

让 prompt 自己上班Orca automations 按计划从 CLI 跑 prompt——周期性的 triage、review、维护任务不用你手动开工作树。本课目标是:创建一个 disabled 的自动化、检查它、再启用并手动触发一次。

安全起步:先 --disabled

调 prompt 与目标时先禁用状态创建,避免误触发:

orca automations create \
  --name "Weekday triage" \
  --trigger weekdays \
  --time 09:00 \
  --prompt "Triage new issues and summarize blockers" \
  --provider codex \
  --repo my-repo \
  --disabled \
  --json

--trigger 支持预设:hourly / daily / weekdays / weekly,也接受 cron 表达式RRULE 字符串;用 --timezone <tz> 指定 IANA 时区而非运行时默认。


跑在哪里

参数 行为
--repo <selector> 每次 run 在仓库里创建或选择工作
--workspace <selector> 在既有 Orca 工作树内运行(如 active
都不传 从当前 shell 目录解析所在工作树
orca automations create --name "Nightly status" --trigger "0 18 * * 1-5" \
  --prompt "Summarize today's changes" --provider claude --workspace active --disabled

门控与会话复用

  • --precheck:每次 run 前跑一条廉价 shell 探测;非零退出会跳过本次并记录 skipped run
orca automations create --name "PR review" --trigger hourly \
  --precheck "gh pr list --json number -q '.[0].number'" \
  --prompt "Review requested PRs" --provider codex --repo my-repo --disabled --json
  • --reuse-session:针对既有工作树的自动化,后续 run 复用上一次的自动化终端而不是每次空白启动:
orca automations create --name "Inbox digest" --trigger hourly \
  --prompt "Summarize unread mail" --provider codex --workspace active \
  --reuse-session --disabled

orca automations edit <id> --fresh-session --json 切回每次新终端。


管理与维护

orca automations list --json
orca automations show <automationId> --json
orca automations edit <automationId> --enabled --json
  • 桌面端自动化列表可搜索:name / project / prompt 文本
  • SSH 主机上的外部自动化在主机断连时仍可管理(含删除)——不需要活跃 SSH 会话就能移除计划
  • 项目级目标:--project <id> + --host <id>--project-host-setup <id> 精确定位

落地练习:完整生命周期

  1. 创建一个 disabled 的每日自动化(triage prompt + precheck)
  2. automations list / show 检查配置正确
  3. automations edit <id> --enabled 启用
  4. 手动触发或等下一个窗口,确认 run 落地(含 skipped run 记录)
  5. 跑完改回 --disabled 或删除,清理干净

怎么判断做对了?——你能说出 --disabled、--precheck、--reuse-session 三个参数各自防什么坑,并完成一次创建→启用→触发的闭环。

卡住了怎么办? 没按计划跑:检查时区(--timezone)与 precheck 是否非零退出;误触发风险大就先保持 disabled 调好再启用。


小结

  1. 创建先 --disabled,trigger 支持预设 / cron / RRULE
  2. --repo / --workspace 决定 run 落在哪;都不传解析当前目录
  3. --precheck 非零退出跳过并记录 skipped run
  4. --reuse-session 复用自动化终端;可切回 --fresh-session
  5. 管理:list / show / edit --enabled;SSH 断连也能管理

下一节,Computer Use 与 Worktree Checkpoints。