核心用法
Schedule 是一个轻量级任务调度技能,采用用户驱动执行模型——用户明确指定"做什么"(WHAT)和"怎么做"的权限,技能仅负责"何时执行"(WHEN)。
创建定时任务流程:
1. 用户提出需求(如"每天早上总结邮件")
2. 技能询问具体时间并确认所需权限/技能
3. 用户显式授权后,任务以 JSON 格式存储于 ~/schedule/jobs.json
4. 到达触发时间时,Agent 执行用户定义的任务并记录日志
存储结构:
~/schedule/jobs.json:任务定义(含 cron 表达式、任务描述、所需技能列表)~/schedule/preferences.json:用户时区、偏好时间段~/schedule/history/:执行记录(按月归档)
显著优点
- 权限边界清晰:不预设任何外部服务访问权限,所有权限需用户显式授予
- 系统侵入性低:不修改系统 crontab 或 launchd,仅操作用户目录下的文件
- 可追溯性:完整的执行历史日志,便于审计和调试
- 智能偏好学习:自动记录时区和常用时间段偏好,减少重复询问
潜在缺点与局限性
- 依赖 Agent 在线:任务触发需要 Agent 处于运行状态,非系统级守护进程
- 权限管理开销:每个跨技能任务都需要用户确认,高频操作可能显得繁琐
- 无内建重试机制:执行失败仅记录日志,需用户手动处理或依赖其他技能
- 时区处理复杂度:跨时区旅行时,固定 cron 表达式可能产生预期外行为
适合人群
- 需要定期执行个性化工作流的知识工作者
- 对系统权限敏感、希望精细控制自动化范围的用户
- 已在使用其他技能(邮件、日历等)并希望编排定时场景的用户
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 权限扩散 | 长期任务可能累积过多权限 | 建议定期审计 `jobs.json` 中的 `requires` 字段 |
| 任务堆积 | Agent 离线期间错过的任务不会补执行 | 关键任务建议配合系统级定时器使用 |
| 时区混淆 | 夏令时切换可能导致 1 小时偏移 | 优先使用 IANA 时区标识符(如 Europe/Madrid)|