用途:building-schedules 为 Amp 的某个线程设置或管理 schedule(计划任务),让 Amp 在之后一次性或重复运行保存的任务,用于提醒、稍后跟进、监控和通知。仅在用户明确要求计划、稍后跟进、监控或通知时才设置,任务听起来可重复并不构成自动化授权。
构成与运行模式:schedule 含三部分——保存的提示词(每次运行遵循的指令)、触发器(RFC 5545 RRULE,如 RRULE:FREQ=WEEKLY;BYDAY=MO)、宿主线程(每个 schedule 属于且仅属于一个线程,默认是当前线程)。run mode 决定运行位置:existing(默认)向宿主线程发送唤醒消息,由其调用 get_schedule 读取提示并在完整历史中执行;fresh 新建宿主子线程,以提示为初始消息,无历史、不回传宿主。除用户明确要求 fresh 外一律用 existing。
工具:get_schedule(读取提示、触发器和状态)、set_schedule(创建或替换,参数 title、prompt、schedule、schedule_label、可选 run_mode、可选 thread)、update_schedule(只改提供的字段,enabled:false 暂停,true 恢复)、clear_schedule(永久移除)。默认作用于当前线程,仅在用户明确要求或需托管 fresh 时用 thread 参数指定其他线程。
触发规则:把频率翻译成 RRULE 与简明标签,不要让用户写 RRULE 语法,不得用 FREQ=SECONDLY。重复任务默认省略 DTSTART(按用户浏览器时区当前本地时间锚定);仅在精确钟点重要时设 BYHOUR/BYMINUTE。一次性任务加 COUNT=1 并先查当地日期时间;若请求指明具体本地日期或时刻,用浮动 DTSTART:<YYYYMMDDTHHMMSS>。仅指定其他时区时用 DTSTART;TZID=<zone>:<YYYYMMDDTHHMMSS>,先用 TZ=<zone> date '+%Y%m%dT%H%M%S %A %Z' 查当前时间。
提示词与限制:保存的提示应写成每次运行遵循的指令,含动作、要检查的证据、报告或不变时行为及终止条件;频率写在触发器中。监控节奏应不高于数据源可变化的速度,条件满足时由运行清除 schedule。等待当前任务依赖的 CI、合并队列或部署属于任务本身,不应改用 schedule。fresh 要求宿主是项目中的 orb 线程,且提示词自包含。set_schedule 成功后才能告知用户;目标线程下次运行超过 72 小时才可询问是否 snooze,且必须确认。