状态:已实施(2026-10-27)。
用户在对话中说"每个工作日早上 9 点帮我汇总前一天的销售数据",AI 创建一个定时任务,当前会话或工作组就成为"定时会话 / 定时工作组",之后由服务端按时自动执行,结果留在同一个会话或工作组的时间线中。
schedule_create,把时间转成结构化的时间表(§3),把要做的事写成到时候可以独立执行的完整指令。【定时任务「标题」· 11月3日 周一 09:00】 + 指令,AI 照常执行。AI 填写结构化的时间表,服务端校验并计算下次执行时间,不依赖 AI 记时间:
| kind | 字段 | 说明 |
|---|---|---|
once |
at:YYYY-MM-DD HH:mm |
只执行一次,执行后结束 |
daily |
time:HH:mm |
每天 |
weekdays |
time |
周一到周五 |
weekly |
days(1=周一 … 7=周日)、time |
每周的某几天 |
monthly |
day(1–31)、time |
每月某天;超过当月天数时取最后一天 |
interval |
hours |
从创建时起每 N 小时 |
schedules.timezone(默认 Asia/Shanghai)。schedules.minIntervalHours(默认 1 小时),只约束 interval。普通会话和工作组中的所有机器人都有这组工具(工具列表固定,Codex 沿用第一次连接时的工具列表也不受影响):
| 工具 | 说明 |
|---|---|
schedule_create(title, prompt, schedule) |
创建;显示确认卡片,用户确认后生效 |
schedule_list() |
本会话 / 本工作组的定时任务 |
schedule_update(schedule_id, title?, prompt?, schedule?, status?) |
修改时间表或指令需要确认;只暂停或恢复不需要 |
schedule_delete(schedule_id) |
删除 |
schedules.maxMinutesPerRun(默认 60 分钟),超时中断。schedules.maxCostUsdPerRun(默认 $2):一轮结束后超出时暂停这个定时任务并记录原因,避免持续超支。limits.interactionTimeoutSec(默认 10 分钟)后按超时拒绝,时间线中留有记录。| 设置 | 默认 |
|---|---|
schedules.maxPerTarget:每个会话 / 工作组的定时任务数 |
5 |
schedules.minIntervalHours |
1 |
schedules.maxMinutesPerRun |
60 |
schedules.maxCostUsdPerRun |
2 |
schedules.timezone |
Asia/Shanghai |
schedules:id、目标(session_id 或 team_id)、创建者(工作组中的机器人 id)、标题、指令、时间表、时区、状态(active / paused / ended)、下次执行时间、上次执行时间与结果、执行次数。schedule_runs:每次执行的时间、结果、Run id、成本、说明。| API | 接口 |
|---|---|
| Agent API | GET /v1/sessions/:id/schedules;PATCH /v1/schedules/:id({ status });DELETE /v1/schedules/:id;GET /v1/schedules/:id/runs |
| Bot API | GET /bot/v1/teams/:id/schedules;PATCH、DELETE /bot/v1/teams/:id/schedules/:scheduleId;GET …/runs |
| 后台 | GET /admin/v1/schedules(全部,带目标信息);修改、删除、执行记录同上 |
SDK:AgentClient.sessions.schedules、AgentClient.schedules.*、BotClient.teams.schedules 等;<AgentChat> 与 <TeamChat> 顶部显示定时任务栏。
<AgentChat>、<TeamChat>:有定时任务时顶部显示定时任务栏,可以展开查看、暂停、恢复、删除。sleep 120 等待,没有使用工具:MCP 工具在 Claude 中按需搜索,模型不知道它存在。once 除了 at,还可以填 after_minutes(多少分钟后),用于"两小时后"这类相对时间,模型不需要知道当前时间。schedule_list 的结果中带有当前时间。