Skip to content

cron-task 技能

定时任务管理技能,用于创建、查看、启用/禁用、删除定时任务。

概述

当用户需要设置周期性提醒、定时执行任务、或管理工作日/特定时间触发的自动化操作时使用此技能。

核心概念

概念说明
task-id定时任务的唯一标识,创建后自动生成
name任务名称,用于识别和管理
scheduleCron 表达式,定义执行时间
message任务触发时发送给智能体的消息内容
target目标规则链 ID(默认 main
agent-id目标智能体 ID(默认 main

Cron 表达式格式

格式:秒 分 时 日 月 周

┌───────────── 秒 (0-59)
│ ┌───────────── 分 (0-59)
│ │ ┌───────────── 时 (0-23)
│ │ │ ┌───────────── 日 (1-31)
│ │ │ │ ┌───────────── 月 (1-12)
│ │ │ │ │ ┌───────────── 周 (0-6, 0=周日)
│ │ │ │ │ │
* * * * * *

特殊字符

字符含义示例
*任意值* * * * * * = 每秒
/间隔*/5 = 每 5 单位
-范围1-5 = 1 到 5
,列举1,3,5 = 1、3、5

常用表达式

表达式描述
0 0 8 * * *每天早上 8 点
0 0 9 * * 1-5工作日早上 9 点
0 */5 * * * *每 5 分钟
0 0 */2 * * *每 2 小时
0 30 12 * * *每天中午 12:30
0 0 18 * * 1,3,5周一、三、五下午 6 点
0 0 9 1 * *每月 1 日早上 9 点

命令参考

列出定时任务

bash
tpclaw cron list               # 列出所有定时任务
tpclaw cron list -a <agent-id> # 列出指定智能体的定时任务

创建定时任务

bash
tpclaw cron create <name> -s <cron> -m <message> [options]

参数说明:

参数必须说明
<name>任务名称
-s, --scheduleCron 表达式
-m, --message任务消息内容
-t, --target目标规则链 ID(默认 main
-a, --agent-id目标智能体 ID(默认 main

查看任务详情

bash
tpclaw cron get <task-id>

启用/禁用任务

bash
tpclaw cron enable <task-id>   # 启用任务
tpclaw cron disable <task-id>  # 禁用任务

删除任务

bash
tpclaw cron delete <task-id>

使用场景

场景 1:每日提醒

创建每天早上 8 点的提醒任务:

bash
tpclaw cron create "每日提醒" -s "0 0 8 * * *" -m "早上好!今天有什么计划?"

场景 2:工作日打卡提醒

创建工作日早上 9 点的打卡提醒:

bash
tpclaw cron create "打卡提醒" -s "0 0 9 * * 1-5" -m "该打卡上班了!发送到最新活跃通道"

场景 3:周期性状态检查

创建每 5 分钟执行一次的检查任务:

bash
tpclaw cron create "定时检查" -s "0 */5 * * * *" -m "检查系统状态,并发送到我飞书"

场景 4:指定智能体的定时任务

为特定智能体创建定时任务:

bash
tpclaw cron create "工作提醒" -s "0 0 9 * * 1-5" -m "开始工作" -a my-agent

场景 5:下班提醒

创建工作日下午 6 点的下班提醒:

bash
tpclaw cron create "下班提醒" -s "0 0 18 * * 1-5" -m "下班时间到了,记得整理今天的工作"

任务管理流程

┌─────────────────────────────────────────────────────────────┐
│  1. 创建任务(tpclaw cron create)                            │
│     ↓                                                        │
│  2. 任务自动启用,按计划执行                                  │
│     ↓                                                        │
│  3. 可选:禁用任务(tpclaw cron disable)                      │
│     ↓                                                        │
│  4. 可选:重新启用(tpclaw cron enable)                       │
│     ↓                                                        │
│  5. 不再需要时删除(tpclaw cron delete)                       │
└─────────────────────────────────────────────────────────────┘

最佳实践

1. 命名规范

使用有意义且易于识别的任务名称:

  • 每日早报提醒
  • 工作日打卡提醒
  • 周报生成任务
  • task1
  • 提醒

2. 消息内容

消息内容应该清晰明确,便于智能体理解任务意图:

  • 请生成今日早报并发送到我的飞书
  • 检查服务器状态,如有异常发送告警到我的飞书
  • 早报
  • 检查

3. 时间设置

  • 避免设置过于频繁的任务(如每秒执行)
  • 考虑时区影响
  • 工作日任务使用 1-5 而非手动列举

4. 任务维护

  • 定期检查任务列表,清理不再需要的任务
  • 使用 disable 暂时停用而非直接删除
  • 重要任务建议记录备份

常见问题

Q: 任务没有按时执行?

检查步骤:

  1. 确认任务已启用:tpclaw cron list
  2. 验证 Cron 表达式是否正确
  3. 确认智能体正在运行

Q: 如何修改已创建的任务?

目前需要删除后重新创建:

bash
tpclaw cron delete <old-task-id>
tpclaw cron create "新任务名" -s "新表达式" -m "新消息"

Q: 任务消息可以包含复杂指令吗?

可以。消息内容会被发送给智能体,可以包含任意指令:

bash
tpclaw cron create "早报任务" -s "0 0 8 * * *" -m "请执行以下操作:1. 获取今日天气 2. 查看日程安排 3. 生成早报并发送"

与消息发送技能配合

定时任务可以与消息发送技能配合使用,例如:

  • 发送通知:定时触发后使用 message send 发送消息到最新活跃通道
  • 飞书消息:定时发送消息到飞书群
  • 数据处理:定时执行数据分析和报告生成
  • 系统监控:定时检查系统状态并发送告警
bash
# 定时发送飞书消息示例
tpclaw cron create "每日报告" -s "0 0 18 * * *" -m "使用 feishu-api 技能,发送今日工作总结到群组 oc_xxx"

相关文档

基于 Apache-2.0 许可发布