自动化任务

了解如何设置和管理定时执行的任务

自动化任务

自动化任务功能让您可以设置按计划自动执行的任务。本文档介绍自动化任务的配置和使用方法。

功能概述

自动化任务可以:

  • 按固定时间间隔执行

  • 在指定时间点执行

  • 使用 Cron 表达式配置

  • 自动触发 AI Agent 执行

  • 响应系统事件自动触发(事件回调)

自动化任务列表

Cron 表达式限制

空间周期任务仅支持五位 Cron 表达式:分 时 日 月 周,最小调度粒度为分钟。例如,*/5 * * * * 表示每五分钟触发,30 8 * * 1 表示每周一 08:30 触发。

<br />

使用场景

定期报告

每天/每周自动生成报告:

每周一 9:00 生成项目进度报告

数据同步

定时同步数据:

每小时同步一次数据统计

提醒通知

定期提醒:

每天 17:00 提醒整理当日工作

自动维护

定期执行维护任务:

每周日凌晨清理临时文件

事件驱动自动化

当系统内发生特定事件时,自动触发 Agent 处理:

当新任务创建时,自动分析任务优先级并添加标签 当对话出错时,自动通知管理员并记录错误日志 当成员加入工作空间时,自动发送欢迎消息

详细说明请参考 事件回调 Hook

Webhook 回调自动化

允许外部系统(如性能压测系统、监控告警系统)通过 HTTP 请求触发 AI 对话:

外部监控系统检测到异常 → POST /api/v1/webhook/{taskId} → AI 自动分析并处理

配置方式:

  1. 创建自动化任务时,选择类型为 Webhook。
  2. 配置 Prompt 模板,可使用 Webhook 变量({{query}}、{{body}}、{{headers}}、{{method}}、{{sourceIp}}、{{timestamp}})来引用外部系统传入的数据。
  3. (可选)配置 IP 白名单,限制只有指定来源 IP 才能触发。

使用方式:

外部系统向 Webhook URL 发送 HTTP 请求即触发 AI 对话:

# POST 方式 curl -X POST "https://your-host/api/v1/webhook/TASK_ID?_jvs_token=YOUR_PAT" \ -H "Content-Type: application/json" \ -d '{"status": "failed", "message": "Service timeout"}' # GET 方式(使用 query 参数传递数据) curl "https://your-host/api/v1/webhook/TASK_ID?_jvs_token=YOUR_PAT&status=failed"

系统收到请求后会立即返回 202 Accepted,AI 对话在后台异步执行。

认证方式:支持通过 URL 查询参数 _jvs_token 或 Authorization: Bearer 请求头传递 PAT(个人访问令牌)进行认证。

webhook任务

指定执行人

自动化任务默认以触发事件的用户身份或任务创建者身份执行。但在某些场景下,您可能需要指定一个固定的执行人,确保任务始终以特定用户的身份运行。

为什么需要指定执行人?

场景说明
权限隔离某些操作需要管理员权限,而事件触发人可能是普通成员(如 Viewer),指定管理员为执行人可确保任务不会因权限不足而失败
上下文一致性任务访问的知识库、文件或资源与特定用户相关(如个人笔记目录),需要以该用户身份执行才能正确访问
责任追溯自动化任务产生的操作记录(如自动评论、状态变更)需要归属到明确的责任人,而非不固定的触发人
代理执行团队负责人需要以自己身份自动处理下属触发的事件(如自动审核、自动分配),而当下属可能没有相应权限

执行人优先级规则

系统按以下优先级确定任务的实际执行人:

优先级身份来源说明
1(最高)指定执行人任务配置中明确指定的执行人
2事件触发人事件回调场景下,触发该事件的用户
3手动触发人点击"立即执行"按钮的当前登录用户
4(最低)任务创建者以上都为空时,回退到任务创建者

提示:如果指定执行人不存在或已离职,系统会自动回退到下一优先级的执行人,不会导致任务失败。

配置方法

在创建或编辑自动化任务时,展开"高级配置",在"指定执行人"下拉框中选择目标成员。选择"自动(默认)"则不指定固定执行人,按上述优先级规则自动决定。

指定执行环境

如果任务需要在某台本地执行机的固定目录中运行(例如读取本机代码仓库、调用本机工具),可以为"Agent 委派"类任务指定执行环境,无需再在 Prompt 中写明机器和目录。

  • 配置方法:创建或编辑任务时,在"执行环境(可选)"中选择当前空间已绑定的执行机和目录,选项显示为"机器名 · 目录摘要"。选择"默认环境"则保持原有的执行方式。
  • 可选范围:只列出当前空间已启用、目录校验通过、初始化已完成、执行机在线,并且你有使用权的执行环境(与对话中切换执行环境看到的列表一致);执行环境由空间管理员在执行机绑定中维护,可用范围见执行机。
  • 权限要求:只有对该执行环境有使用权的空间管理员或编辑者(环境为"全部成员可用"、本人是负责人或在授权名单中)才能指定它。修改已指定该环境的任务时,编辑者也需要有使用权;空间管理员可以直接修改(例如调整提示词、触发时间或更换执行人),但改选其他环境或把执行人设为自己时,仍需要对应环境的使用权。执行人同样需要有该环境的使用权;未指定执行人时,定时触发以任务创建者身份执行,因此创建者也需要有使用权。事件回调任务指定执行环境时必须同时指定执行人。
  • 权限变化后:如果之后负责人被转让、授权被撤销或可用范围被收紧,导致执行人不再有使用权,触发时本次执行会直接失败并写明原因,不会自动重试;请联系空间管理员重新授权,或由有权限的成员、空间管理员编辑任务,改选其他环境或更换执行人。
  • 初始化中的环境:通过"从空间拷贝"等方式初始化的执行环境,在初始化完成前不能被任务选中;如果触发时环境仍在初始化或初始化失败,本次执行会失败并写明原因。
  • 执行机离线:保存任务时不要求执行机在线;但触发时如果执行机离线,本次执行直接失败并在执行历史中写明原因,不会改用默认环境,也不会自动重试,等下一次触发再执行。
  • 执行环境被解绑:执行环境被解绑或执行机被删除后,引用它的任务会自动禁用,任务列表和详情中会显示"执行环境已解绑"。此时需要编辑任务重新选择执行环境(或改回默认环境),然后再启用;解绑状态下也不能手动运行。

提示:之前在 Prompt 中写明"在某台机器、某个目录执行"的任务,建议改为选择执行环境,并删掉 Prompt 中的位置说明。Prompt 中的文字不会真正改变任务的执行位置。

任务类型

系统支持三种任务类型:

类型说明触发方式
一次性任务在指定时间点执行一次到达执行时间自动触发
周期性任务按 Cron 表达式周期执行按周期自动触发
事件回调监听系统事件,事件发生时触发事件驱动自动触发
Webhook 回调外部系统通过 HTTP 请求触发外部系统主动调用

事件回调类型的详细配置和使用请参考 事件回调 Hook

创建自动化任务

步骤 1:进入任务管理

  1. 进入工作空间
  2. 点击侧边栏"任务"
  3. 切换到"自动化任务"标签

步骤 2:新建自动化任务

点击"新建自动化任务"按钮。

步骤 3:配置任务

填写任务配置:

字段说明示例
任务名称任务的显示名称每周项目报告
任务描述任务的详细说明生成本周的项目进度报告
执行计划执行时间配置每周一 9:00
任务内容要执行的指令请生成本周项目进度报告

步骤 4:保存并启用

  1. 检查配置
  2. 点击保存
  3. 确保任务状态为"启用"

执行计划配置

简单模式

使用预设的时间选项:

选项说明
每小时每小时执行一次
每天每天指定时间执行
每周每周指定日期和时间执行
每月每月指定日期和时间执行

高级模式(Cron 表达式)

使用 Cron 表达式进行精细配置:

分钟 小时 日 月 周几

Cron 示例

表达式说明
0 9 * * 1每周一 9:00
0 0 1 * *每月 1 号 0:00
*/30 * * * *每 30 分钟
0 9,18 * * *每天 9:00 和 18:00
0 9 * * 1-5工作日每天 9:00

Cron 字段说明

字段允许值特殊字符
分钟0-59* , - /
小时0-23* , - /
日1-31* , - /
月1-12* , - /
周几0-6 (0=周日)* , - /

任务内容

文本指令

直接输入要执行的指令:

请生成本周的项目进度报告,包含: 1. 完成的工作 2. 进行中的任务 3. 下周计划

使用模板

可以使用变量模板:

请生成 {{date}} 的数据统计报告

支持的变量:

变量说明
{{date}}当前日期
{{time}}当前时间
{{workspace}}工作空间名称

管理自动化任务

查看任务列表

在"自动化任务"标签查看所有自动化任务:

字段说明
名称任务名称
执行计划Cron 表达式
下次执行下次执行时间
状态启用/禁用
上次执行上次执行时间和结果

启用/禁用任务

点击状态开关启用或禁用任务。

禁用的任务:

  • 不会按计划执行

  • 配置保留

  • 可以随时重新启用

编辑任务

  1. 找到目标任务
  2. 点击编辑按钮
  3. 修改配置
  4. 保存

删除任务

  1. 找到目标任务
  2. 点击删除按钮
  3. 确认删除

手动执行

可以手动触发任务执行:

  1. 找到目标任务
  2. 点击"立即执行"按钮
  3. 任务开始执行

任务处于禁用状态时仍可手动执行一次。禁用状态只停止自动调度;手动执行会正常生成执行历史,且执行完成后任务继续保持禁用,不会恢复后续自动调度。

执行历史

查看历史

点击任务名称查看执行历史:

字段说明
执行时间任务开始执行的时间
执行状态成功/失败
执行结果执行的输出或错误信息
耗时执行所用时间

异常执行收敛

当执行记录长期停留在"等待执行"或"执行中",且已超过任务配置的执行超时时间和系统缓冲时间后,执行历史会标记为"疑似异常"。管理员可在执行历史中将该记录人工标记为"成功"或"失败",并填写处理原因;原因会写入该执行记录的错误信息,便于后续追溯。

如果后端服务在自动化任务执行过程中重启,系统会在服务启动恢复阶段自动检查已超时的运行中记录,并将其收敛为失败,避免执行历史长期停留在运行中。

历史保留

执行历史默认保留 30 天。

最佳实践

1. 合理安排执行时间

  • 避免高峰时段

  • 考虑时区差异

  • 错开多个任务的执行时间

2. 控制执行频率

✅ 合理:每天 1 次、每周 1 次 ❌ 过于频繁:每分钟执行

3. 清晰的任务内容

✅ 好: 请生成本周({{date}})的销售报告,包含: - 总销售额 - 同比增长 - TOP 10 产品 ❌ 不好: 生成报告

4. 监控执行结果

  • 定期检查执行历史

  • 关注失败的任务

  • 及时调整配置

限制说明

执行频率限制

  • 最小间隔:5 分钟

  • 每天最多执行:288 次(每 5 分钟一次)

执行超时

  • 单次执行最大时长:默认 30 分钟,最大可配置为 2 小时(7200 秒)

  • 超时任务会被标记为失败

常见问题

Q:自动化任务没有执行怎么办?

A:检查以下几点:

  • 任务是否已启用

  • Cron 表达式是否正确

  • 是否超过配额限制

Q:可以设置一次性任务吗?

A:可以。创建任务时选择"一次性任务"类型,设置执行时间即可。

Q:可以根据事件自动触发任务吗?

A:可以。创建任务时选择"事件回调"类型,配置监听事件和触发条件即可。详见 事件回调 Hook。

Q:任务执行失败会重试吗?

A:会。可以在高级配置中设置最大重试次数和重试间隔。

Q:如何临时暂停任务?

A:使用禁用功能临时暂停任务,需要时再启用。

Q:事件回调任务监听了多个事件,一次操作只触发多次自动化任务吗?

A:不会,只会触发一次。因为有系统有内置的操作级去重机制。当一次操作(如修改任务状态)同时产生多个事件(如 task.updated 和 task.status_changed)时,系统会自动识别它们来自同一次操作,确保每个回调任务只执行一次,避免重复处理。详见 事件回调 Hook。

Q:跨工作空间的事件会触发回调任务吗?

A:不会。事件回调任务只响应同一工作空间内产生的事件,不同工作空间之间的事件互相隔离。

Q:Webhook 任务如何保证安全性? A:Webhook 通过 PAT(个人访问令牌)进行认证,支持 IP 白名单限制。只有持有有效 token 且 IP 在白名单内(如果配置了白名单)的请求才能触发任务。Webhook 任务的 UUID 不可猜测,配合 PAT 认证提供双重安全保障。

Q:Webhook 的请求数据如何传递给 AI? A:你可以在 Prompt 模板中使用变量(如 {{body}}、{{query}}、{{method}} 等)引用外部系统的请求数据。系统会根据 Content-Type 自动处理请求体(支持 JSON、表单、纯文本格式)。

相关文档