自动化
用 CLI cron daemon 或桌面端自动化页创建一次性、周期性和可立即触发的 CrabCode 任务。
是什么
CrabCode 的自动化由 crabcode-cron daemon 执行,CLI 和 GUI 共享同一套本地能力。你可以创建「某个时间执行一次」的任务,也可以创建 cron 表达式驱动的周期任务,并让任务唤起管家执行一段自然语言动作。
桌面端「自动化」页不是静态占位:它已经接入 App Server 的 cron/* 方法,能读取 daemon 状态、列任务、查最近运行、创建、更新、删除和立即触发任务。
GUI 使用
在桌面端左侧点「自动化」:
| 区域 | 作用 |
|---|---|
| daemon 状态 | 显示 cron daemon 是否可用、版本、任务总数、启用数 |
| 新建任务表单 | 填任务名、动作文本、一次性时间或 cron 表达式 |
| 任务列表 | 查看任务、启用/禁用、立即触发、删除 |
| 最近运行 | 展开单个任务,查看最近 fire-log |
新建任务的动作文本会作为管家任务的输入。建议写成可独立理解的一句话,例如:
每天检查 /Users/me/project 的 CI 状态,失败时总结失败原因和建议修复步骤。每天检查 /Users/me/project 的 CI 状态,失败时总结失败原因和建议修复步骤。CLI 使用
crabcode cron status
crabcode cron list
crabcode cron add --name "每日巡检" --schedule "0 9 * * *" --message "检查项目健康状态并总结风险"
crabcode cron add --name "下午提醒" --at "2026-05-27T15:00:00-07:00" --message "提醒我复查发布清单"
crabcode cron add --name "短间隔测试" --every-ms 60000 --message "检查一次任务队列"
crabcode cron edit <id> --name "新的名字"
crabcode cron disable <id>
crabcode cron enable <id>
crabcode cron run <id>
crabcode cron runs <id> --limit 20
crabcode cron rm <id>crabcode cron status
crabcode cron list
crabcode cron add --name "每日巡检" --schedule "0 9 * * *" --message "检查项目健康状态并总结风险"
crabcode cron add --name "下午提醒" --at "2026-05-27T15:00:00-07:00" --message "提醒我复查发布清单"
crabcode cron add --name "短间隔测试" --every-ms 60000 --message "检查一次任务队列"
crabcode cron edit <id> --name "新的名字"
crabcode cron disable <id>
crabcode cron enable <id>
crabcode cron run <id>
crabcode cron runs <id> --limit 20
crabcode cron rm <id>--schedule、--at、--every-ms 三选一。--at 表示一次性绝对时间;--schedule 使用 5-field cron 表达式;--every-ms 适合本地测试或非常明确的短间隔任务。
App Server 方法
桌面端通过这些本地方法访问自动化:
| 方法 | 说明 |
|---|---|
cron/status | daemon 探活和元数据 |
cron/list | 列出任务 |
cron/runs | 查询某个任务的最近运行 |
cron/add | 新建任务 |
cron/update | 更新启用状态、名称、描述或调度 |
cron/remove | 删除任务 |
cron/run | 立即触发一次 |
这些方法是本地能力,适合 GUI、IDE 或本机集成使用;跨机器执行请先确认远程控制和权限边界。
写任务的建议
- 写清楚目标目录或项目名,避免 daemon 执行时找不到上下文。
- 把期望输出写进动作文本,例如「只总结,不改文件」或「如果能自动修复,先给计划再等待审批」。
- 周期任务尽量保持幂等,避免每次运行都重复创建 PR、重复发送通知或重复写同一份文件。
- 对会执行命令、写盘或访问网络的任务,保留审批和沙盒限制。
排障
| 现象 | 处理 |
|---|---|
cron/status 显示不可用 | 检查 CRABCODE_DISABLE_CRON 是否为 1,重启桌面端或重新运行 CLI |
| GUI 自动化页无任务 | 先运行 crabcode cron list 确认 daemon 能返回任务 |
| 任务没有触发 | 检查 cron 表达式、时区、任务是否 enabled |
| 立即触发失败 | 用 crabcode cron run <id> 看 CLI 报错;确认任务仍存在 |
| 周期太短导致拥堵 | 拉长间隔,或把任务改成一次性/人工触发 |