# 定时任务：让 Agent 到点自己跑

一条定时任务 = 一句话 + 一个时间。到点平台替你新建一个对话，把这句话原样发进去，就像你自己打完按了发送。

所以它不是一个"简化版"的执行环境：跑出来的就是一次完整的对话，Agent 能做的事一件都不少。

## 入口

侧栏的 **Schedule**（排在 Explore 和 Shop 中间），或直接打开 [Schedule](#/schedule)。

列表七列：ID、标题、状态、执行时间、执行历史、提示词检查、操作。标题列只展示标题，不展示执行内容；状态是单独一列（**生效中** / **已暂停**），不塞在执行时间下面。

## 新建一条

点 **+ 新建定时任务**，弹窗分两步：

1. **标题**（选填）——留空就取执行内容的前 32 个字；**时区**——下面的时间按这个时区填写；**执行时间**——选 **每天**、**工作日** 或 **每周**（每周要挑周几），然后填时、分、秒，24 小时制
2. **执行内容**——和新建对话的输入框一样支持 `@` 引用应用，但**不支持上传附件**：这段话会跑很多次，今天传的静态文件明天就和"昨天的数据"对不上了，要用数据就在执行内容里写清从哪儿取。这一步弹窗会拉高，输入框跟着视口变高。

保存就生效，不需要再启动一次。

**"工作日"就是周一到周五**，按你在弹窗里选的那个时区算。它**不认各地的法定节假日和调休**：国庆、春节、感恩节当天照样会跑，需要停就自己在列表里点 **暂停**。

## 保存之后先给你检查一遍提示词

新建成功后，平台会顺手开一个对话，把你刚写的执行内容检查一遍。这是一轮**对话**，不是一份点评：

1. 它先挑出这段执行内容里到点跑的时候会卡住的地方——目标不明确、没说产物要什么形式放在哪、数据从哪来、该动哪个应用没指定、没有"算做完了"的标准
2. 凡是**换个答案、你拿到的东西就明显不一样**的，它发一张卡片问你：既包括只有你知道的事实（"我最喜欢的明星"到底是谁、数据在哪张表、这份东西给谁看），也包括看多长时间窗口、每天给几条、产物要 Markdown 还是网页报告、放在哪这类口径——一天 12 条和一天 3 条是两个东西，不该由它替你定。都是你张口就能答的业务问题，能给选项就给选项，每题都可以不填、不填就按它推荐的走
3. 只影响它怎么做、不影响你拿到什么的（文件命名、临时文件放哪、去重和排序怎么实现、失败重试几次）**不会来烦你**，直接按最合理的定下来，最后告诉你它定了什么
4. 你答完之后，它给出一段**可以整段复制回"执行内容"**的完整提示词，并告诉你保存时勾上"跳过检查"

这一步单独安排在保存之后，是因为**只有你还坐在屏幕前的时候，缺口才补得掉**。任务真正执行时多半是半夜，那会儿它问不到你，只能自己猜一个——现在问你，正是为了让它到点时不用问你。

**改写执行内容后也会再检查一次。** 提示词换了就等于换了一条新任务，它同样要能在半夜自己跑完。只改时间、标题或 `@` 引用时不会——那几项动了不影响提示词写得完不完善。

**已经检查过的提示词可以跳过。** 弹窗写执行内容那一步下面有个 **这段执行内容已经检查过了，跳过检查**，勾上保存就不再开新对话。把检查给你的那一版复制回来保存时勾它——同一段文字检查第二遍只会把同一份结论说一遍，还多花一次用量。它只对这一次保存有效，下次再改写执行内容照样会检查。

**页面不会自己跳走。** 保存之后弹一个窗告诉你检查对话已经开好了，去不去看你自己定，点 **稍后再看** 就留在列表上。

想回去看的时候，列表的 **提示词检查** 那一列就是入口：显示最近一次检查对话的 chatId 和它当时的状态（等待 / 执行中 / 完成…），点一下跳进去。这一列只留**最近一次**——提示词一改，上次的结论说的就是另一段提示词了。状态是随列表一起取回来的快照，不会自己刷新，想看实时进展点进对话里看。

这个检查对话和普通对话一样算用量。不想要就直接关掉，任务已经保存好了，不受影响。

## 时间只存 UTC

规则在库里**只存 UTC**，没有时区字段。弹窗里那行「存为 UTC：…」会随你的输入实时刷新，填的时候就看得见真正存进去的是什么，而不是保存完才发现和自己以为的不是一回事。想直接按 UTC 填，在时区下拉里选 UTC 即可。

> 代价要说清楚：**跨夏令时的地区，本地看到的时刻会跟着挪一小时。** UTC 01:00 在纽约冬天是 20:00、夏天是 21:00。这是"时间只有一份、不会两处对不上"换来的，不是故障。

## 到点之后发生什么

平台新建一个 chat，把登记的那句话连同 `@` 引用一起发进去，之后就是一次正常的对话执行——该读代码读代码、该查日志查日志、该出报告出报告。执行步骤、产物、部署按钮都在那个新对话里，跟你手动发起的没有区别。

发进去的那条消息前面会多一段固定说明，写清这是定时任务触发的、你此刻多半不在。你点进那个对话就能看到它——**Agent 收到的是什么，你看到的就是什么**，没有藏起来的额外指令。

这段说明换掉的是一件事：**这一轮 Agent 不会停下来等你确认。** 定时任务常排在半夜，一句"请确认"只会让整轮白跑，你还要到早上才看得到。所以信息有缺口时它会取最合理的默认值继续做，把用了哪些假设写进报告；只有不确认就完全做不下去、且怎么假设都可能造成不可逆后果时才会停下来问。

发布上线、合并主干、删数据、往外发内容这类不可逆动作**仍然不会替你做**，除非执行内容里已经写明授权到哪一步——放开"不用确认"只是免掉那些问了也没意义的确认，不是把你的手放开。

每一轮如果出了交互报告，报告最后会多一节 **建议的定时任务提示词**（带一键复制）：这次卡在哪、只能靠假设推进的是哪几处，以及一段改进后的完整提示词。觉得合适就复制回任务里，下一次就不会再卡在同一个地方。这一节只在报告里，不会再贴进对话气泡——气泡里只留一两句结论。

**执行历史**列里点 **查看（N 次）** 能看到每一次的时间、状态和 **chatId**。点 chatId 跳进当时建出来的对话，看具体跑成了什么样。执行内容不在这里展示。

## 暂停、编辑、删除

- **暂停** 之后状态列显示 **已暂停**，规则留着，随时 **恢复**
- 编辑可以改时间也可以改内容，改完从下一次开始按新规则走
- 删除只删规则，**已经跑出来的对话不会被删掉**

## 排任务时躲开额度峰值

页面顶部一直挂着一句提醒：把定时任务分散到不同时间段，不要全排在同一个点上。

原因是用量按 5 小时的滚动窗口算，几条任务挤在同一时刻触发会互相抢额度。这句提醒只放在这一页，因为**只有配置的时候看到才来得及分散**，配完再提醒已经晚了。

## 适合交给它的事

- 每天早上把昨天的数据整理成一份日报
- 每天固定时刻检查线上应用有没有报错——把应用 `@` 上，Agent 会去查日志
- 每周一出一版本周的内容排期或选题清单
- 定期巡检某个页面或接口，有异常就在对话里写清楚

判断标准很简单：**这件事你愿意每天自己打一遍同样的话，它就适合做成定时任务。**

## 常见疑问

**Q：执行内容该怎么写？**
A：当成你在 new chat 里发的第一句话来写——说清做什么、结果要什么形式、涉及哪个应用就 `@` 上。到点没有人在旁边补充说明，所以一次说清比什么都重要。写完不用自己反复推敲：保存后的检查对话会直接告诉你漏了什么，并给你一版改好的。

**Q：检查说的和我想要的不一样怎么办？**
A：它只是给建议，不会改你的任务。卡片里的问题答得不对也没关系，直接在对话里说清楚，让它重出一版。要采纳就把它最后给的那段复制回"执行内容"（编辑那条任务、粘贴、勾上 **这段执行内容已经检查过了，跳过检查**、保存）。不采纳就直接关掉，任务照原样跑。

**Q：错过的时刻会补跑吗？**
A：**不补跑**，只往后排到下一个时刻。补跑会在恢复的那一瞬间集中建出一批对话，比漏一次更糟。

**Q：能精确到秒吗？**
A：时、分、秒都能填，但调度是每 30 秒扫一轮，实际触发会在设定时刻附近，不保证秒级对齐。要卡整点整分完全够用。

**Q：定时任务跑出来的对话算我的用量吗？**
A：算，和你手动发起的对话一样。订阅过期或额度耗尽不会拦在触发这一层——任务照常建出对话，错误会在那个对话里报出来，点进去就看得到。

**Q：能让它到点自动发布上线吗？**
A：不能。定时任务做的是"替你发一句话"，它不会替你点发布。可以让它到点跑一遍检查并把结论写清楚，发布仍然由你在那个对话里确认，见 `04-publish.md`。

下一步推荐：`09-multi-target.md`
