跳转到内容

用 /loop 重复任务

/loop 让模型给自己安排下一轮,从而在当前会话里反复跑一个任务,不需要你每次都重新输入。

/loop 5m check the deploy
/loop keep refining the draft until it reads cleanly

/loop 后面跟的是 [interval] <task>

  • 带间隔/loop 5m …/loop 30s …/loop 2h …)——固定间隔模式:任务按这个固定 节奏跑,直到被停掉。
  • 不带间隔/loop keep polling until the build is green)——动态模式:模型自己决定 每次的间隔,也自己决定循环什么时候该结束。

底层两种模式用的是同一个 schedule_wakeup 工具:一轮结束、会话进入空闲后,延迟一到就把任务 当作一条新的用户消息重新跑一遍。每一次的延迟都被限制在 60 秒到 1 小时之间。

循环不会把你挡在会话外面——循环跑着的时候你照样可以跟模型说话(问个问题、给个补充指示), 循环会继续跑;一条普通消息不会打断它。

  • 动态模式会自己停:模型一旦判断任务做完了(或者卡住了),就不再安排下一次唤醒, 并告诉你原因。
  • 固定间隔模式每次都会重新安排下一次,所以要明确说一句(比如“停掉这个循环”)才能结束它。
  • TUI 里按 Ctrl+C,或者在 IM 渠道里发 /stop,都能立刻硬停掉任何循环。
  • 不管怎样,每个循环跑满大约 12 小时总时长后都会自动停——这是给忘了手动停的循环兜底的 安全上限,不能拿它当成不用自己去停的理由。

/loop 活在单个对话里:启动成本很低,你说停就停,关掉会话它也就没了,自己不带持久化。 如果需要一个能扛得住重启、或者没人盯着也要按时触发的计划——比如每日报告、周期性健康 检查——用定时的 cron 任务才对;那是 octo serve 跑着的一套 独立、持久的机制,不是靠一个没人管的 /loop 撑着。

下一步:会话目标用的是同一套底层唤醒机制,只不过应用在单个持久 目标上,而不是一条重复的 prompt。