TwKit
正在载入
TwKit

建议收藏,用到时照着做。做完你能得到一个“定时盯梢员”:让 Qwen Code 每隔几分钟自己去查一次部署、构建或 PR,你不用一直盯着。 这是通义千问 Q… · @swordBluesy · TwKit

@swordBluesy

建议收藏,用到时照着做。做完你能得到一个“定时盯梢员”:让 Qwen Code 每隔几分钟自己去查一次部署、构建或 PR,你不用一直盯着。 这是通义千问 Qwen Code 官方文档《Run Prompts on a Schedule》一页,页面标注最后更新 2026 年 10 月 24 日。先说结论:想让 AI 定时干活,不用另装任何调度软件,输入一行 /loop 加间隔加任务就行;但有三个坑官方写得很清楚,不看会白等。 第一个坑:在终端里建的定时任务,只活在当前这个 Qwen Code 进程里,退出就全没了,官方说什么都不会写到磁盘上。第二个坑:循环任务默认 7 天后自动过期。第三个坑:不是准点触发,有随机延迟。 先说清词。 定时任务(Scheduled Tasks),是让 Qwen Code 按间隔反复把同一段提示词再跑一遍。 cron 表达式(cron expression),是一串五个字段的时间写法,依次是分钟、小时、日、月、星期,比如 0 9 * * * 就是每天早上 9 点。 闸门(gate),是任务触发前先跑的一条 shell 命令,不经过大模型:没输出就跳过这一次,有输出才叫醒 AI 干活。 抖动(jitter),是调度器故意加的一点小偏移,避免所有人的任务在同一秒一起打 API。 先把话说全: 官方说终端里建的任务属于会话级,只在 Qwen Code 开着并且空闲时才会触发,关掉终端就全部取消。 官方说错过的触发不会补,如果到点时 Qwen Code 正忙着长回答,它空下来以后只会触发一次,不会把错过的每一次都补跑。 官方说所有时间按你本机的时区算,0 9 * * * 是你所在地的早上 9 点,不是 UTC。 官方说消息渠道(比如微信、钉钉)用的是另一套可持久化的调度器,命令不同,不在这篇范围里。 一、第一步:确认功能开着 官方说定时任务默认就是开启的。想关掉,在设置里把 experimental.cron 设为 false,或者设环境变量 QWEN_CODE_DISABLE_CRON 为 1。一般不用动。 二、第二步:用 /loop 建一个循环任务 最快的办法是打一行:/loop 5m check if the deployment finished and tell me what happened。意思是每 5 分钟检查一次部署有没有完成。官方说 Qwen Code 会把间隔转成 cron 表达式,建好任务,告诉你频率和任务编号,然后立刻先跑一次,不用等第一次触发。你也可以用中文写任务内容。 三、第三步:认清间隔怎么写 官方给了三种写法:开头写间隔,比如 /loop 30m 检查构建,是每 30 分钟;结尾写 every,比如 /loop 检查构建 every 2 hours,是每 2 小时;什么都不写,默认每 10 分钟。单位有四个:s 秒、m 分钟、h 小时、d 天。秒会向上取整到分钟,因为 cron 最小就是一分钟。像 7m、90m 这种除不尽的,会取整到最近的整齐间隔,Qwen Code 会告诉你它选了什么。 四、第四步:让它循环跑别的命令 任务内容也可以是一条命令或技能,比如 /loop 20m /review-pr 1234。每次触发,Qwen Code 就当你亲手输入了 /review-pr 1234。适合把你已经打包好的流程定时重跑。 五、第五步:试试不带任务的自动模式 只输入 /loop,不写任务,就是自主循环:官方说它像一个管家,接着对话里已经定下的事往前推,比如收尾你开头的活、盯着进行中的 PR、处理评审意见、修失败的 CI、解决冲突。官方强调它只做对话里已经有的活,不会凭空发明新活,没有明确授权也不会做不可逆的事,比如推送、删除、发送,所有事都安静了它就停。想固定节奏,写 /loop 10m。 六、第六步:设一次性提醒 一次性提醒不用 /loop,直接用大白话说,比如 remind me at 3pm to push the release branch,或者 in 45 minutes, check whether the integration tests passed。官方说它会建一个只触发一次的任务,触发完自动删除,并告诉你几点触发。 七、第七步:用闸门,只在有变化时才叫醒 AI 循环任务可以带闸门。官方说闸门是每次触发时先跑的一条 shell 命令,不走大模型:命令没输出且退出码为 0,这一次直接跳过,不会开新一轮对话;有输出,才把输出当作数据附上去,再跑任务提示词。官方示例是:every 2 minutes, run ./check-pr.sh 15057 as a gate; when it prints something, handle the events it lists。适合平时很安静的盯梢,能省下很多无谓的模型调用。官方还说闸门必须在前台跑完,命令里用 & 放后台会被拒绝,bash -c 这种包一层的写法也会被拒绝,闸门运行超过 60 秒算失败。复杂命令写成脚本再当闸门。 八、第八步:查看和取消 用大白话问:what scheduled tasks do I have?或者说:cancel the deploy check job。输入 /loop list 列出所有任务和编号,输入 /loop clear 一次取消全部。底层是三个工具:CronCreate 建任务,CronList 列任务,CronDelete 按编号删。官方说每个任务有 8 位编号,一个会话最多同时挂 50 个任务。 九、第九步:想要准点,避开整点和半点 官方说循环任务最多晚触发周期的 10%,上限 15 分钟,每小时一次的任务可能在 :00 到 :06 之间触发。一次性任务如果设在整点或半点,最多提前 90 秒触发。要准时,就选不是 :00 和 :30 的分钟,比如写 3 9 * * * 而不是 0 9 * * *。 十、第十步:想让任务活得更久 官方说循环任务默认建好 7 天后过期,最后触发一次然后自己删掉,防止忘掉的循环一直跑。想改,设置里改 experimental.cronRecurringMaxAgeDays,或设环境变量 QWEN_CODE_CRON_MAX_AGE_DAYS,环境变量优先。设成 0 就永不过期,官方说适合长期运行的守护进程,比如每日报告和持续监控。一次性任务不会按时间过期。 常见坑 3 条 一,关掉终端任务就没了,要长期跑就得让 Qwen Code 一直开着。二,整点任务会被抖动,想准时就避开 :00 和 :30。三,想设 7 分钟、90 分钟,会被取整,别当成精确值。 收藏版:5 步速查 一,输入 /loop 5m 加你的任务 二,没写间隔默认 10 分钟 三,一次性提醒直接用大白话说 四,平时很安静的盯梢加一个闸门命令 五,输入 /loop list 看任务,/loop clear 全清 参考:通义千问 Qwen Code 官方文档 Scheduled Tasks(S1哥 整理) S1哥观点 这篇文档最值得看的,是它没吹“AI 永远在后台替你盯着”,反而老老实实写了:关掉终端就没了,7 天自动过期,错过的不补。很多人以为设了定时任务就万事大吉,其实它只是个会话里的闹钟。 真正的信号是闸门这个设计:平时安静,有变化才叫醒大模型。给弱者设计的流程,强者穿上就是紧身衣,但盯梢这种活,让便宜的命令先挡一道,再让贵的模型上场,才是正解。 就像小区门口的保安,不会每五分钟敲你家门问一次有没有事,只有出事了才上门。同系列前几篇在我主页。

曝光 187 · 评论 3 · 点赞 1 · 书签 0

查看原帖