Cell - Ta Cron
Ta 自带的 pi 包(默认开启,可在 Web 客户端的 设置 → 扩展 关闭):定时任务。把一段提示词和一条时间规则交给 Ta,到点后 Ta 服务在一个新对话里运行它,运行结束给你看总结。适合定时检查 CI、汇总提交、写日报、到点提醒这类事。
text
/loop 30m 检查 main 分支的 CI 是否通过
/loop @daily 汇总昨天的提交
/loop "0 18 * * 1-5" 根据今天的提交写日报 --name 日报
/remind in 45m 提醒我检查发布
/remind at 15:30 看一下生产环境的告警
/schedule # 列出任务
/schedule show <任务> # 任务和最近的运行
/schedule run <任务> # 立即运行,不改时间
/schedule enable|disable <任务>
/schedule set <任务> --model openai/gpt-5 --notify always # 值写 - 表示清除
/schedule remove <任务>
/schedule clear # 删除当前目录的任务
/schedule help也可以直接说"每天 9 点帮我汇总昨天的提交":Ta 用工具 schedule_task 建任务。Web 客户端左侧导航的"定时任务"页列出所有任务:时间规则、下次运行、开关,展开看提示词和每次运行的总结,点"打开对话"进入那次运行的对话;也能在这里新建、编辑、立即运行和删除;新建和编辑时从可搜索的列表里选这个任务用的模型(输入名字、模型 id 或提供方即可筛选,方向键和回车选择;任务所在目录的设置里有凭据的模型,包括 pi 包提供的,如外部 Agent)和思考级别,不选就用设置里的默认值。
时间规则
- 一次:
/remind in 45m、/remind at 15:30(今天已过就是明天)、/remind at 2026-12-01 08:15。 - 间隔:
30m、2h、1d、1h30m,最短 1 分钟。 - cron:五个字段(分 时 日 月 周),支持
*、范围、列表、步长和jan、mon这类名字,以及@hourly、@daily、@weekly、@monthly、@yearly;日和周都限定时,任一个匹配即可(与 cron 相同)。表达式里有空格时要加引号。
时间都按 Ta 服务所在机器的本地时间。命令末尾可以带 --name、--notify always|error|never、--model <provider>/<model>、--thinking <级别>、--cwd <目录>。
怎么运行
- 由三部分组成,都不改 Ta 的核心:
- 服务端(
pi.host,web-src/host.ts):调度器。Ta 服务启动时运行,只有一个计时器,睡到最近一个任务的时间(最长一分钟后再看一次,以便跟上系统时间的变化和休眠)。任务和运行记录存在包数据里(agent 目录的extension-data/@celljs/ta-cron.json),每个任务保留最近 20 次运行。 - pi 扩展(
pi.extensions,web-src/extension.ts):/loop、/remind、/schedule和工具schedule_task。命令的回答是对话里的一张卡片,不进入模型的上下文。 - Web 扩展(
pi.web,web-src/index.tsx):"定时任务"页、命令回答的卡片、运行结束时的通知。
- 服务端(
- 一次运行,一个对话:每次运行打开一个新会话(归在
ta-cron分组下),工作目录是任务的目录(默认是创建它的对话的目录,可以是ssh://远程目录),可单独指定模型和思考级别。追加的系统提示告诉 Ta 没人在看、不要提问、最后写一段总结;最后一条回答就是这次运行的总结。运行结束后会话关闭(有人正在看时等看完再关),对话文件保留。 - 运行里不能再建定时任务:运行的对话里没有
schedule_task工具,命令也会拒绝,避免任务自我繁殖。 - 不重叠:到点时上次运行还没结束,就跳过这次,等下一个时间。最多同时运行 3 个任务,其余排队。
- 超时:一次运行超过 30 分钟会被停止并记为失败。
- Ta 服务没在运行时:重复任务错过的时间合并成一次,服务启动后立即补跑一次;一次性任务晚了 5 分钟以上记为"错过",不再运行,需要的话手动运行;服务停止时正在跑的运行在下次启动时记为失败。
- 通知:运行结束时,开着的 Web 页面按任务的通知级别提示(页面在后台且已授权时用系统通知)。默认一次性任务每次都通知,重复任务只在失败时通知。
限制
- 只在 Ta 服务(
ta serve,Ta 桌面版会自动启动它)运行时调度;单独运行ta(终端)时命令和工具会提示需要 Ta 服务。 - 不能限定一次运行可用的工具:运行和普通对话一样,用你的设置和项目里的扩展、技能。
- 没有邮件、Webhook 之类的外部通知渠道,也没有导入导出。