Claude Code Schedule 技能
定时代理与远程代理完整使用指南
一、技能概述
Schedule 是 Claude Code 内置的一项强大技能,允许用户创建、更新、列出和运行按 Cron 调度执行的远程代理(Routines)。这些代理在云端独立运行,无需本地终端保持连接,是实现定时自动化任务的核心工具。
通过 Schedule 技能,开发者可以将重复性工作(如代码审查、报告生成、数据抓取、定时部署)交由远程代理自主完成,大幅提升工作效率。
核心能力:
- 在远程服务器上创建持久化代理
- 使用 Cron 表达式精确控制调度频率
- 查看和管理所有已创建的调度代理
- 支持一次性执行和周期性执行两种模式
二、什么是远程代理
远程代理(Remote Agent / Routine)是 Claude Code 在 Anthropic 云端基础设施上运行的自包含任务单元。与本地会话不同,远程代理具有以下特征:
远程代理的特点
- 独立运行: 脱离本地终端环境,在云端沙箱中执行
- 持久化存储: 代理状态和文件保存在远程存储中,跨多次执行持久存在
- 定时触发: 通过 Cron 调度器自动唤醒执行
- 安全隔离: 每个代理运行在独立的沙箱环境中,互不干扰
- 日志记录: 每次执行的结果和输出自动保存,可供查阅
远程代理非常适合无需人工干预的自动化场景。用户只需定义任务指令和调度规则,代理就会按照预定计划自主执行。
三、Cron 调度机制
Schedule 技能使用标准的 Cron 表达式来定义代理的执行时间规则。Cron 表达式由 5 个字段组成,分别表示分钟、小时、日期、月份、星期。
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ 星期 (0-7, 0和7都表示周日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日期 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)
常用 Cron 示例
*/5 * * * * 每 5 分钟执行一次
0 * * * * 每小时整点执行
0 9 * * * 每天上午 9:00 执行
0 0 * * * 每天午夜执行
0 0 * * 1 每周一凌晨执行
0 0 1 * * 每月 1 号凌晨执行
*/30 9-18 * * * 每天 9:00-18:00 每 30 分钟执行
提示:Claude Code 使用的 Cron 调度基于 UTC 时间。如果需要特定时区的触发时间,请根据 UTC 偏移量计算相应的 Cron 表达式。
四、创建定时代理
使用 /schedule create 命令创建新的定时代理。创建时需要提供代理的任务描述和 Cron 调度表达式。
基本语法
/schedule create "每 30 分钟检查一次 GitHub PR 状态" --cron "*/30 * * * *"
创建成功后,Claude Code 会返回代理的唯一 ID,可用于后续的管理操作。
创建时的最佳实践
任务指令编写要点
- 明确指定代理的目标和输出要求
- 包含必要的上下文信息(如仓库路径、API 密钥等)
- 设置清晰的成功/失败判定标准
- 指定执行结果的输出方式(日志、文件、通知等)
- 考虑执行超时和错误处理策略
五、管理定时代理
Schedule 技能提供完整的代理生命周期管理功能,包括查看、更新和删除操作。
列出所有代理
/schedule list
该命令会显示所有已创建的代理列表,包括每个代理的 ID、任务描述、Cron 表达式、上次执行时间和下次执行时间。
更新现有代理
/schedule update <agent-id> --cron "0 9 * * *"
可以更新代理的调度频率或任务指令,无需重新创建。支持修改以下属性:
- --cron:更新调度表达式
- --prompt:更新任务指令
删除代理
/schedule delete <agent-id>
删除指定代理后,其关联的远程存储数据也会被清理。
提示:代理 ID 是管理代理的唯一标识,建议在创建后及时记录。可以通过 /schedule list 随时查看所有代理的 ID。
六、运行与监控代理
创建定时代理后,代理会在指定时间自动触发。用户也可以通过命令手动触发一次立即执行。
手动触发执行
/schedule run <agent-id>
该命令会立即执行指定代理,不考虑其预定的 Cron 调度。适用于:
- 测试代理是否按预期工作
- 在紧急情况下提前执行任务
- 调试和验证任务指令的正确性
查看执行结果
每次执行的结果会自动保存,可以通过以下方式查看:
- 执行日志:代理执行的完整输出记录
- 退出状态:成功(0)或失败(非0)状态码
- 执行时间:每次执行的开始和结束时间戳
- 错误信息:执行失败时的详细错误描述
七、持久化与会话代理对比
理解持久化代理与会话代理的区别,对于正确使用 Schedule 技能至关重要。
持久化代理(Persistent Agent)
- 状态持久保存在云端存储中
- 每次执行之间保留文件系统状态
- 支持增量更新和累计数据
- 适合长期运行的数据收集和监控任务
- Cron 调度触发,无需人工介入
会话代理(Session-Only Agent)
- 状态仅在单次执行中有效
- 每次执行从干净环境开始
- 执行结束后所有数据被清理
- 适合不需要跨次持久化的独立任务
- 需要保持终端连接才能运行
选择建议:如果任务需要积累历史数据或维护跨次状态(如日志聚合、增量备份),选择持久化代理。如果任务是幂等的且每次独立(如定时健康检查、一次性报告生成),会话代理更简单安全。
八、典型使用场景
代码仓库自动化
/schedule create "检查仓库 main 分支是否有新的 PR,如果有则自动运行测试并评论结果" --cron "0 */2 * * *"
定时报告生成
/schedule create "汇总最近 24 小时的项目活动:新 issue、合并的 PR、发布版本,生成 Markdown 报告并保存到 reports/ 目录" --cron "0 9 * * *"
数据抓取与监控
/schedule create "访问目标网站检查页面变化,如有更新则下载新内容并记录变更日志" --cron "*/15 * * * *"
定时部署与维护
/schedule create "执行数据库备份脚本,将备份文件上传到 S3 存储桶,保留最近 7 天的备份" --cron "0 3 * * *"
场景共性:
- 任务可完全自动化,无需人工决策
- 执行频率固定,有明确的时间规律
- 失败可重试或降级,不影响核心业务
- 输出结果便于后续审计和追溯
九、最佳实践
1. 任务指令要精确
远程代理没有人工交互机会,任务指令必须包含所有必要的上下文、决策规则和异常处理逻辑。指令越精确,代理执行越可靠。
2. 合理设置调度间隔
避免过于频繁的调度(如每分钟执行),这不仅消耗 Token 配额,还可能触发 API 限流。根据任务性质选择合理的执行间隔。
3. 实现幂等性
设计任务时确保重复执行不会产生副作用。例如,使用"如果已处理则跳过"的逻辑,而不是无条件重复操作。
4. 添加通知机制
对关键任务,在代理指令中加入通知逻辑(如发送 Slack 消息或邮件),确保在任务失败或异常时能够及时获知。
5. 定期审查代理
定期使用 /schedule list 审查所有代理的运行状态,清理不再需要的代理,更新过时的任务指令。
注意:远程代理执行会产生 Token 消耗,请关注使用配额。Anthropic 的 API 使用政策可能会有更新,建议定期查阅官方文档了解最新限制。
十、核心要点总结
- Schedule 技能:Claude Code 内置的定时代理管理工具,支持创建、更新、列出和运行远程代理
- 远程代理:在 Anthropic 云端独立运行的自动化任务单元,脱离本地终端环境
- Cron 调度:使用标准 5 字段 Cron 表达式精确控制执行时间和频率
- 生命周期管理:通过
/schedule create | list | update | delete | run 命令完整管理代理
- 持久化 vs 会话:持久化代理保留跨次状态,会话代理每次独立执行,按需选择
- 典型场景:代码自动化、定时报告、数据监控、定时备份部署
- 最佳实践:指令精确、合理间隔、幂等设计、通知机制、定期审查
- 注意事项:关注 Token 消耗和 API 使用配额,UTC 时间调度