一、固定间隔模式详解
基本语法
# 固定间隔模式:在 /loop 后跟时间参数
/loop 5m <prompt> # 每 5 分钟执行一次
/loop 30s <prompt> # 每 30 秒执行一次
/loop 2h <prompt> # 每 2 小时执行一次
工作原理
固定间隔模式是最直观的循环执行方式。用户通过向 /loop 命令传递一个明确的时间参数(如 5m、30s、2h),指示系统严格按照指定的时间间隔重复执行指定的 prompt 或命令。每次执行完成后,系统等待固定的时间窗口,然后自动触发下一轮执行,如此循环往复,直到用户手动停止或满足终止条件。
核心特性
- 严格按时间间隔触发:执行节奏完全由用户预设的时间参数决定,不受任务状态或输出结果影响。每一轮之间的间隔是恒定不变的。
- 行为可预测且易于管理:由于执行频率是固定的,资源消耗、输出流量、API调用次数等都可以提前估算。团队协作时,固定间隔的行为模式更容易被理解和约定。
- 适合需要稳定频率的场景:在系统监控、定期数据采集、健康检查、持续集成轮询等场景中,稳定的执行频率是刚需,固定间隔模式天然匹配这些需求。
- 实现简单直接:底层实现只需一个定时器机制,无需额外的决策逻辑。这也是该模式最可靠、最不易出错的原因之一。
典型适用场景
系统健康监控
每 30 秒检查一次服务器存活状态,按固定频率采集 CPU、内存等指标,确保异常能被及时感知。
定时数据同步
每小时执行一次数据同步任务,将增量数据从源系统复制到目标系统,保持数据一致性。
定期报告生成
每天固定时间生成业务报告,以稳定节奏输出日报、周报等周期性文档。
二、动态模式详解
基本语法
# 动态模式:不传递时间参数
/loop <prompt> # AI 自主决定执行时机
工作原理
动态模式(也称为自主调度模式)不要求用户提供固定的时间间隔参数。AI 通过分析前次执行的结果、当前任务的整体状态以及任务的进度,自主决定下一次执行应该在多长时间之后发生。这种模式下,AI 拥有调度控制权,能够根据实际情况灵活调整执行节奏,实现"做完了再等,没做完就快跟"的智能调度策略。
核心特性
- AI 根据任务状态自行决定执行时机:系统不预设任何固定间隔,而是让 AI 基于当前上下文判断"什么时候应该再次检查或执行"。这使得执行节奏与任务进展深度绑定。
- 间隔动态调整:AI 可以根据任务进展的不同阶段调整检查频率。例如,当任务刚开始时可以采用较长的间隔让外部系统处理,当任务接近完成时大幅缩短间隔以快速捕获最终结果,避免不必要的等待。
- 适合需要 AI 判断"何时需要再次检查"的场景:当任务的完成时间不确定、进度不可预测时,固定间隔要么太频繁(浪费资源)要么太稀疏(延迟响应),而动态模式可以自适应调整。
- 资源效率更高:在大多数情况下,动态模式可以比固定间隔模式更少地执行不必要的检查,同时更及时地响应关键状态变化,实现资源消耗与响应速度之间的动态平衡。
典型适用场景
构建/部署监控
CI/CD 流水线执行时间不确定,AI 可以在构建进行中时密集检查,完成后立即通知结果。
异步任务追踪
提交给外部系统的长时间运行任务,AI 根据任务的预期完成进度动态调整轮询频率。
渐进式工作流
需要分阶段执行的复杂任务,AI 在每个阶段结束后判断下一步的时机和策略。
三、模式对比表格
以下表格从多个维度对固定间隔模式与动态模式进行全面对比,帮助理解两者的本质差异和各自的优势区间。
| 对比维度 |
固定间隔模式 |
动态模式 |
| 控制方式 |
用户预设时间参数,完全由用户控制节奏 |
AI 基于任务上下文自主调度,由智能体控制节奏 |
| 触发节奏 |
严格按固定时间间隔触发,节奏恒定 |
动态变化,节奏根据任务状态自适应调整 |
| 适用场景 |
需要稳定执行频率的场景(监控、定期采集) |
执行时间不确定、需要智能判断的场景(CI/CD、异步任务) |
| 资源消耗 |
可预测且恒定,但可能因过于保守而浪费 |
动态优化,通常更高效,但峰值消耗难以精确预估 |
| 可预测性 |
高,行为完全可预期,便于审计和管理 |
中低,执行时间点和频率不确定,需要信任 AI 判断 |
| 灵活性 |
低,更改间隔需要用户手动调整参数 |
高,AI 可以在每次执行后根据结果灵活调整 |
| 响应速度 |
受限于预设间隔,可能错过关键状态变化 |
在关键时刻可加速检查,响应更及时 |
| 实现复杂度 |
低,简单的定时器即可实现 |
高,需要 AI 具备调度决策能力和状态评估机制 |
| 用户介入程度 |
高,用户需要精确指定间隔参数 |
低,用户只需描述任务目标,调度由 AI 完成 |
四、动态模式的 AI 决策机制
核心技术:ScheduleWakeup
动态模式的核心调度能力通过 ScheduleWakeup 工具实现。AI 在执行循环体的每轮操作时,可以通过调用 ScheduleWakeup 并传入 delaySeconds 参数来控制下一次执行的时间间隔。这个参数就是 AI 进行自主调度的"控制手柄"。
# AI 内部决策伪代码
def decide_next_interval(current_state):
if current_state == "in_progress":
return 30 # 构建进行中,30 秒后再次检查
elif current_state == "completed":
return -1 # 构建完成,停止循环
elif current_state == "error":
return 120 # 遇到错误,2 分钟后重试
elif current_state == "pending":
return 60 # 任务排队中,1 分钟后检查
else:
return 300 # 默认 5 分钟后检查
决策逻辑详解
AI 的调度决策遵循一个持续的分析-决策-执行的闭环流程:
- 分析前次执行结果:每轮执行完成后,AI 会分析操作返回的数据、状态码、日志输出等信号,综合判断当前任务的进展阶段。
- 评估当前任务状态:结合历史执行记录和当前上下文,AI 评估任务是否取得进展、是否遇到瓶颈、是否需要外部干预。
- 决定下次执行时机:基于上述分析,AI 计算合适的 delaySeconds 值,通过 ScheduleWakeup 提交调度请求。
- 持续优化调度策略:AI 会记录每次调度决策的效果,在后续轮次中不断修正和优化自己的调度策略,形成自适应的调度模型。
典型决策场景示例
场景一:构建进行中
AI 提交构建请求后,检测到构建状态为"in_progress"。此时 AI 判断构建通常需要 2-5 分钟完成,于是设置 delaySeconds=30(30 秒),采用较密集的检查频率以便在构建完成时立即捕获结果。
场景二:构建完成
AI 在第 4 轮检查时发现构建状态变为"completed"。此时任务目标已经达成,AI 不再需要继续循环,于是停止 ScheduleWakeup,并输出构建结果报告。
场景三:遇到可恢复错误
AI 检测到构建失败但属于临时性问题(如网络超时、资源暂时不可用),判断需要等待后重试。AI 设置 delaySeconds=120(2 分钟),给予系统足够时间恢复后再尝试。
场景四:长时间无进展
AI 连续多轮发现任务状态没有变化(如始终处于"queued"状态),AI 会逐渐增大 delaySeconds(退避策略),避免无效的频繁检查浪费资源。
核心要点:动态模式下的 AI 调度策略本质是一个 反馈驱动的自适应控制系统。AI 不是随机决定间隔,而是基于对任务状态的结构化分析,做出有信息支撑的调度决策。这种机制结合了人类工程师的管理经验和 AI 的实时分析能力,实现了远超固定间隔模式的调度效率。
五、模式选择指南
选择使用固定间隔模式还是动态模式,需要根据具体任务的特性和需求来决定。以下指南可以帮助你做出合理的选择:
选择固定间隔模式的情况
- 明确需要固定频率:业务需求明确要求"每 5 分钟检查一次"、"每小时执行一次",时间约束是硬性要求。
- 行为可预测性优先:在审计、合规或团队协作场景中,需要精确预知执行时间和频率。
- 简单可靠的场景:任务逻辑简单,不需要复杂的调度策略,固定间隔足以满足需求。
- 初始搭建阶段:对任务的整体行为模式还不熟悉时,先用固定间隔模式建立基线。
选择动态模式的情况
- 需要 AI 智能判断:任务的进展不可预测,需要 AI 根据实时状态调整执行节奏。
- 追求资源效率:希望在不影响响应速度的前提下,尽可能减少不必要的执行次数,降低 API 成本和资源消耗。
- 复杂工作流:任务包含多个阶段,不同阶段需要不同的检查频率和调度策略。
- 不确定性高的场景:任务的完成时间范围很大(从几秒到几小时不等),固定间隔难以兼顾效率和及时性。
推荐实践路径
实践建议:
第一步:对于新任务,建议先从固定间隔模式开始。选择一个保守的间隔参数(如 30s 或 1m),观察任务的典型执行时长和行为模式。
第二步:在积累足够的执行数据后,分析不同阶段的合理检查频率。了解任务在什么阶段进展快、什么阶段需要等待。
第三步:尝试切换到动态模式,让 AI 基于前两步积累的经验来优化调度策略。对比两种模式下的资源消耗和响应延迟,验证改进效果。
第四步:根据实际效果持续调整。即使是动态模式,也可以通过 prompt 中的任务描述来间接影响 AI 的调度倾向,例如明确告知 AI 预期的任务时长和关键检查点。
注意事项:
动态模式虽然在大多数情况下效率更高,但也存在一些潜在风险:AI 可能做出不符合预期的调度决策(如检查过于频繁触发限流,或间隔过长延误关键操作)。建议在关键任务中设置最大/最小间隔约束,并为动态模式设定合理的终止条件,防止循环无限持续。