跳到主要内容

自动化 Crons

AIME Chat 内置了自动化 Crons 功能,可以让 AI 按照固定时间计划自动执行任务。你可以为任务配置提示词、绑定项目上下文,并指定使用的 Agent、模型、工具和子 Agent。

从源项目实现来看,自动化功能包含:

  • 独立的 自动化页面(侧边栏入口为“自动化”)
  • 基于 Cron 表达式 的定时调度
  • 任务的 创建、编辑、启用、停用、删除
  • 绑定 项目上下文Agent模型工具子 Agent
  • 选择 复用同一个聊天线程每次执行创建新线程
  • 保存 最近执行时间结束时间执行结果

自动化能做什么

Crons 适合以下场景:

  • 定时生成日报、周报或项目摘要
  • 定时巡检项目文件、代码目录或日志内容
  • 定时执行知识整理、内容汇总、信息采集类任务
  • 按固定时间触发 AI 分析与结果回传
  • 让某些重复性 AI 工作从“手动触发”变为“计划执行”

功能结构

自动化任务的核心信息包括:

字段说明
名称任务名称,需唯一
Prompt定时触发时提交给 AI 的提示词
Cron调度表达式
Project可选,绑定到某个项目上下文
reuseThread是否复用上一次运行产生的聊天线程
Description可选,任务描述
submitOptions执行时使用的模型、Agent、工具、子 Agent
isActive是否启用
lastRunAt最近一次开始执行时间
lastRunEndAt最近一次执行结束时间
lastRunResult最近一次执行结果

调度方式

自动化页面内置了一个 Cron Builder,支持以下几种常见模式:

  • 每隔分钟:例如每 5 分钟执行一次
  • 每小时:例如每小时第 0 分钟执行
  • 每天:例如每天 09:00 执行
  • 每周:例如每周一、三、五 09:30 执行
  • 自定义:手动输入完整 cron 表达式

Cron 表达式示例

*/5 * * * *

表示每 5 分钟执行一次。

0 * * * *

表示每小时整点执行。

30 9 * * *

表示每天 09:30 执行。

30 9 * * 1,3,5

表示每周一、三、五 09:30 执行。

提示

如果你的需求只是常见的分钟、小时、每天、每周触发,优先使用内置 Builder,会比手写 cron 表达式更直观。

创建一个自动化任务

在自动化页面中,新建任务时通常需要填写以下内容:

  1. 名称
  2. 所属项目(可选)
  3. Cron 计划
  4. Prompt 提示词
  5. 模型 / Agent / 工具 / 子 Agent 配置
  6. 线程模式:复用同一聊天线程,或每次创建一个新线程
  7. 描述(可选)
  8. 是否启用

创建后,如果任务处于启用状态,系统会立即注册对应的调度任务。

执行上下文

自动化任务不仅仅是一个定时文本发送器。源项目实现中,它会在触发时构造一次完整的 AI 提交请求,并带上你配置的执行上下文。

可配置内容

配置项作用
Model指定自动化任务使用的模型
Agent指定由哪个 Agent 处理任务
Tools控制任务运行时可调用哪些工具
Sub Agents为复杂任务启用子 Agent 协作
Project将任务与项目资源上下文关联
Thread Mode控制多次执行之间是否共用同一个聊天线程

这意味着你可以把自动化任务设计成:

  • 一个只做摘要的轻量任务
  • 一个带项目上下文的定时分析任务
  • 一个可调用指定工具的执行型任务
  • 一个多 Agent 协作的复杂任务入口

运行机制

从主进程实现来看,自动化任务的大致流程如下:

到达计划时间

CronsManager 触发对应任务

记录 lastRunAt

解析或创建执行线程与上下文

提交 Prompt 到模型 / Agent / 工具系统

保存 lastRunResult 与 lastRunEndAt

应用启动时,系统还会自动恢复已启用的定时任务,因此已保存并启用的自动化配置不会因为重启应用而丢失。

线程模式

自动化任务可以选择两种线程模式:

模式行为适合场景
复用同一个聊天线程优先使用上一次执行保存的聊天线程;如果该线程不存在,则自动创建新线程需要延续上下文的日报、持续巡检、长期跟进任务
每次创建一个新线程每次触发都创建独立线程希望每次结果互不影响的报告、一次性检查、批处理任务

复用线程时,系统会保存最近一次运行对应的聊天线程 ID。下一次触发会先尝试读取该线程,读取失败时不会中断任务,而是回退为创建新线程。

页面能力

源项目中的自动化页面支持:

  • 查看所有已创建的自动化任务
  • 查看名称、cron 表达式、Prompt、绑定项目、启用状态、最近执行时间
  • 配置线程复用模式
  • 切换任务启用 / 停用状态
  • 编辑任务配置
  • 删除任务

推荐实践

1. 先让任务目标足够单一

一个自动化任务最好只做一件事情,例如:

  • 生成日报
  • 汇总最近变更
  • 统计某类信息
  • 检查某个目录或数据源

目标越单一,结果越稳定,也更容易排查问题。

2. 为自动化任务配置专用 Agent

自动化和手动聊天的交互方式不同,建议单独为自动化任务配置 Agent:

  • 回复更结构化
  • 输出更稳定
  • 限制无关工具
  • 明确执行边界

3. 谨慎开放高权限工具

如果自动化任务可以调用文件写入、命令执行、数据库写操作等能力,请务必确认:

  • Prompt 足够稳定
  • 工具权限最小化
  • 执行目标明确
  • 风险操作有额外保护
注意

自动化任务默认是不需要人工逐次确认的,因此不建议一开始就赋予高风险写操作能力。更推荐从只读分析、摘要、检索和通知类任务开始。

4. 先低频测试,再提高频率

建议先用较低频率验证任务行为,例如每天一次或每小时一次,确认输出稳定后,再改成更高频的调度方式。

适合的任务示例

项目日报

请总结当前项目目录中今天的重要变更,输出为三部分:
1. 关键改动
2. 风险提醒
3. 明日建议

定时知识整理

请整理最近导入知识库的内容,提取 5 条最重要的信息,并输出简短摘要。

周期性巡检

请检查指定项目中的配置文件与关键目录,识别潜在异常,并以列表形式返回。

常见问题

自动化任务会在应用重启后失效吗?

不会。已启用任务会在应用启动时自动恢复并重新注册。

自动化任务能绑定项目吗?

可以。源项目实现中支持将任务与项目 ID 关联,从而带上对应项目上下文执行。

自动化任务可以选择模型和 Agent 吗?

可以。任务的 submitOptions 中可配置模型、Agent、工具和子 Agent。

自动化任务会保存执行记录吗?

会。系统会记录最近一次开始时间、结束时间以及执行结果。

下一步

如果你准备使用自动化功能,建议按下面的顺序尝试:

  • 先创建一个低风险、低频率任务
  • 明确 Prompt 输出格式
  • 绑定合适的 Agent 与工具集合
  • 观察几次执行结果后再逐步提高复杂度