Skip to main content

什么是定时任务

定时任务是一种在适当时机触发 Agent 的机制,可以:
  • 在指定时间触发(例如每天早上 7 点)
  • 按固定间隔触发(例如每 30 分钟)
  • 在特定事件发生时触发(例如文件发生变化)
这样,即使你没有主动与 Agent 交互,Agent 也能异步执行任务。

定时任务类型

定时任务主要分为三种类型:

Heartbeat(按间隔执行)

按照固定时间间隔重复运行任务。
  • 配置时间间隔(例如每 30 分钟)
  • 执行 HEARTBEAT.md 中定义的所有任务
  • 适用于:
    • 定期检查
    • 监控工作流
    • 批量处理

Scheduled Task(按时间/事件执行)

在指定时间或触发条件满足时运行任务。
  • 按时间触发的选项
    • 每日、每周、每月
    • 单次执行
    • 自定义间隔
  • 按事件触发
    • File Watch(添加、修改或删除文件时触发)

Webhook(由外部事件触发)

Webhook 允许外部系统通过 HTTP POST 请求触发 Agent 任务。 Webhook 任务不会按照时间自动运行,而是在外部服务向生成的 Webhook 端点发送请求时执行。 常见使用场景:
  • 系统事件发生后触发 Agent 工作流
  • 将 CodeBanana 与外部服务连接
  • 根据第三方事件自动执行工作流
示例:
  • CI/CD 系统触发 Agent 审查部署结果
  • 监控系统发送警报,并要求 Agent 分析问题
  • 外部应用触发报告生成工作流

如何选择

  1. 这是一次性任务或提醒吗?
    • 是 → 使用 Scheduled Task
    • 否 → 继续判断
  2. 任务需要在准确时间运行吗?
    • 是 → 使用 Scheduled Task
    • 否 → 继续判断
  3. 该任务可以与其他周期性检查合并吗?
    • 是 → 使用 Heartbeat(将任务添加到 HEARTBEAT.md
    • 否 → 使用 Scheduled Task
  4. 任务由文件变化或事件触发吗?
    • 是 → 使用 Scheduled Task(File Watch)
    • 否 → 继续判断
  5. 任务由外部事件触发吗?
    • 是 → 使用 Webhook
    • 否 → 按照上述规则选择

配置

Heartbeat
  1. 打开右侧面板中的开关,启用 Heartbeat
  2. 设置执行间隔(例如每 10 分钟、每 30 分钟等)
  3. 系统会在每个时间间隔自动执行 HEARTBEAT.md 中定义的所有任务
任务管理:
  • 点击 HEARTBEAT.md 旁的 Edit 修改任务
  • 点击 Reset 恢复默认配置
1

打开 Cron Job 面板

Cron Job 入口
2

创建 Heartbeat 任务

Heartbeat
Scheduled Task
  1. 点击 Create New Task 创建任务
  2. 定义决定任务何时运行的触发条件
    • Scheduled(按时间触发),可以选择:
      • Daily — 每天在指定时间运行
      • Weekly — 每周在指定日期和时间运行
      • Monthly — 每月在指定日期和时间运行
      • Once — 只运行一次
      • Every — 按固定间隔运行
    • File Watch(按事件触发),所选目录发生变化时触发:
      • 创建文件
      • 修改文件
      • 删除文件,例如:从文件夹中删除 Excel 文件时触发任务
  3. 配置执行流程
    • 选择执行任务的模型,之后可以修改
    • 定义任务触发后 Agent 应执行的操作
    • 可以设置任何由 Agent 处理的自动操作或工作流
定时任务
Webhook Task
  1. 选择 Webhook 作为触发类型
  2. 点击 Create Webhook Task
  3. 配置:
    • 任务名称
    • 模型
    • 执行流程
创建 Webhook 任务
端点收到 HTTP POST 请求后,Agent 会自动开始执行已配置的工作流。
Webhook 任务