任务中心
任务中心解决的是"这些能力如何按计划持续运行"。如果说 Workflow 回答怎么做、Agent 回答谁来做,Workspace 回答产物放在哪里,那么任务中心回答的就是"什么时候跑、以什么方式跑、失败后怎么处理、结果推送到哪里"。
任务中心适合把一次已经跑通的会话、Agent 或 Workflow,升级成长期运行的安全运营能力。平台从此不只是接到指令才行动,而可以围绕巡检、研判、报表、监控和通知等目标持续工作。
1. 功能定位
1.1 任务中心解决什么问题
任务中心承载 Flocks 的长期运行能力,当前主要覆盖:
- 任务队列:把一次性任务排队执行,支持优先级、状态跟踪、取消、重试和重跑。
- 定时任务:按一次性指定时间或 Cron 周期触发 Agent / Workflow。
- API 服务:集中查看由 Workflow 发布出来的 API 服务。
- 执行记录:保留每次运行的输入快照、状态、耗时、结果摘要和错误信息。
- 恢复与排障:服务重启后可恢复队列状态,便于定位"任务有没有跑、跑到哪一步、为什么失败"。
可以把任务中心理解为 Flocks 内置的"轻量 SOAR 调度器":把一条可用 Workflow 或一个成熟 Agent 配上触发规则,就得到一条可以持续运行的数字员工。
1.2 任务中心与其他模块的关系
| 模块 | 关系 |
|---|---|
| 对话管理 | 用户可以在会话中让 Rex 创建、调整、触发或排查任务。 |
| Agent 智能体 | 任务可以调用指定 Agent 执行,适合步骤灵活、需要专业判断的长期任务。 |
| Workflow 工作流 | 任务可以调用指定 Workflow 执行,适合流程固定、输入输出稳定的长期任务。 |
| Workspace | 任务的输入快照、中间数据、报告和最终产物通常落到当前 Workspace outputs/。 |
| 通道管理 | 任务结果、失败通知和摘要可以推送到企微、飞书、钉钉、IM 等通道。 |
| Flocks CLI | flocks task ... 可用于命令行创建、查看、取消、重跑任务。 |
| Flocks / 斜杠命令 | /tasks、/queue 可用于会话内查看任务中心和队列状态。 |
2. 适用场景
2.1 适合放进任务中心的情况
- 周期巡检:每天 08:00 做设备巡检,输出摘要和异常清单。
- 定时研判:每小时拉取最新 NDR / EDR / HIDS 告警并自动研判。
- 日报周报:定期汇总告警、资产、漏洞、工单或通道消息,生成报告。
- 批量处理:把一批 IOC、资产或告警加入队列,由 Agent / Workflow 逐批处理。
- 长期监控:需要持续运行,并在失败、异常或高危结果出现时通知值班人员。
- API 服务运维:查看和停止由 Workflow 发布的 API 服务。
2.2 不适合放进任务中心的情况
如果任务还在探索阶段、执行方式不稳定,或者需要反复追问用户补充信息,建议先在会话里和 Rex 跑通一次;等输入、输出、工具依赖和验收标准清楚后,再放进任务中心。
简单判断原则:
- 流程最固定,优先做 Workflow,再配置任务。
- 任务灵活但属于稳定问题域,优先指定 Agent,再配置任务。
- 只是一次探索,不必创建任务,直接在会话中执行。
3. 创建任务的方式
3.1 方式一:在会话中用自然语言创建
最常见的方式是在会话里直接告诉 Rex:
把刚才那条 NDR 告警研判工作流配成定时任务:
- 每小时执行一次
- 执行结果通过企微通道推送
- 目标是值班运营群
- 如果失败,把错误摘要也发出来或者:
帮我把设备巡检 Agent 配成每天 08:00 执行,结果发到飞书运营群。Rex 会解析执行对象、触发方式、输出通道、任务补充信息和失败处理策略,并在任务中心生成任务。
3.2 方式二:从一次成功执行中沉淀
如果 Rex 已经在会话里跑通了一次任务,可以继续说:
把刚才这套巡检过程创建成每天执行的任务。
执行前重新拉取最新设备状态,执行后把摘要推送到值班群。这种方式适合"做一次 → 常态化":先验证 Agent / Workflow / 工具链是否可用,再让任务中心长期调度。
3.3 方式三:在任务中心页面创建
侧栏进入 AI 工作台 → 任务中心,点击创建任务。页面会要求填写:
- 标题和描述:让人能快速看懂任务目标。
- 类型:任务队列、立即执行、一次性定时任务、循环定时任务。
- 执行模式:Agent 或 Workflow。
- 执行对象:Agent 名称或 Workflow ID。
- 调度规则:执行时间、Cron 表达式、时区、周期说明。
- 优先级:紧急、高、普通、低。
- 任务补充信息:执行时给 Rex / Agent 的具体说明。
- Workflow 参数:当执行对象是 Workflow 时,以 JSON 对象作为 workflow inputs。
定时任务执行时会创建新的 Rex 会话,不再继承创建任务时的父会话。因此,任务描述和补充信息应尽量自包含,把数据来源、筛选条件、输出格式、通道目标和异常处理写清楚。
3.4 方式四:通过 CLI 创建和管理
命令行适合批量操作、脚本化运维或在 WebUI 不方便访问时使用:
flocks task dashboard
flocks task list --status running
flocks task create "每日巡检" --type scheduled --cron "0 8 * * *" --prompt "执行设备巡检并发送摘要"
flocks task create "告警研判" --mode workflow --workflow ndr-alert-triage --prompt "处理这批告警"
flocks task retry <taskID>
flocks task rerun <taskID>完整命令见 Flocks CLI。会话中的 /tasks、/queue 见 Flocks / 斜杠命令。
4. WebUI 操作流程
4.1 确认已有可运行对象
任务中心的前提是存在一个可以稳定运行的 Agent 或 Workflow:
- 要跑的 Workflow 已在 Workflow 工作流 中通过单节点测试和全流程集成测试。
- 要跑的 Agent 已在 Agent 智能体 中手动验证过一次。
- 模型、工具、设备、通道等依赖已经配置完成。
- 输出位置、推送目标和失败通知规则已经明确。
4.2 进入任务中心
侧栏进入 AI 工作台 → 任务中心。页面通常包含三个标签:
- 任务队列:查看一次性任务、排队任务、运行中任务、失败任务和历史执行。
- 定时任务:查看周期任务、一次性定时任务、下次执行时间、启停状态和最近运行记录。
- API 服务:查看由 Workflow 发布出来的 API 服务、服务状态、API Key 和快速调用示例。

4.3 查看任务队列
任务队列用于观察当前和历史执行。常见操作包括:
- 按状态筛选:全部、已完成、失败等。
- 查看任务来源:用户会话、定时触发、系统生成。
- 查看执行方式:Agent 或 Workflow。
- 取消运行中或排队中的任务。
- 对失败任务执行重试。
- 对历史任务执行重跑。
- 批量取消或批量删除。
任务详情中会展示 Workflow ID、输入参数、执行结果、错误信息、执行时间和运行状态。对排障来说,先看任务详情通常比直接翻日志更高效。
4.4 配置定时任务
定时任务支持一次性运行和循环运行:
- 立即执行:创建后马上加入队列。
- 指定时间执行一次:适合预约某个时刻运行。
- 循环执行:适合日报、每小时告警研判、工作日巡检等场景。
- 自定义 Cron:适合复杂周期,例如每月 1 日、工作日 09:00、每 15 分钟等。
配置时建议同时填写时区。国内部署一般使用 Asia/Shanghai。
4.5 配置执行对象
任务支持两类执行模式:
| 执行模式 | 配置项 | 适合场景 |
|---|---|---|
| Agent | Agent 名称、任务补充信息、可选 Skills | 巡检、调查、分析、报告生成等需要灵活判断的任务。 |
| Workflow | Workflow ID、Workflow 参数 JSON | 固定流程、结构化输入输出、需要可测试和可发布的任务。 |
如果执行对象是 Workflow,Workflow 参数 必须是合法 JSON 对象,并会作为 workflow inputs 传入。
4.6 查看 API 服务
Workflow 发布为 API 后,可以在任务中心的 API 服务 标签统一查看。这里通常可以看到:
- 服务名称和运行状态。
- 发布时间。
- API Key 显示 / 隐藏。
- 快速调用
curl示例。 - 停止服务入口。
API 服务的发布过程在 Workflow 工作流 中完成,任务中心负责集中运维和查看。
4.7 调整、停用和重跑
任务创建后仍可以继续调整:
- 在任务中心页面编辑标题、描述、优先级、执行对象、Cron、补充信息等。
- 对定时任务执行启用、停用、立即运行一次、删除。
- 对任务执行记录执行取消、重试、重跑、删除。
- 也可以直接在会话中告诉 Rex:"把告警研判任务改成每 30 分钟跑一次"。
5. 运行机制
5.1 任务调度和执行记录
任务中心把"任务定义"和"执行记录"分开:
- 任务定义:保存任务标题、描述、执行模式、触发规则、执行对象、优先级和 Workspace 目录。
- 执行记录:保存某一次运行的状态、输入快照、sessionID、结果摘要、错误信息和耗时。
同一个定时任务会产生多条执行记录。排查问题时,优先看最近一次失败执行的详情。
5.2 任务队列与优先级
任务队列按优先级和创建时间调度。优先级包括紧急、高、普通、低。高优先级适合应急处置、重要巡检或需要快速出结果的任务;普通优先级适合常规日报、周报和非紧急批处理。
队列可以暂停和恢复。暂停后,新任务可以继续进入队列,但不会继续被调度执行;恢复后再按队列规则处理。
5.3 任务恢复和失败处理
任务中心会维护运行状态,服务重启后可以恢复排队任务。失败任务不会自动变成成功,需要用户查看失败原因后重试或重跑。
常见失败来源包括:
- 默认模型不可用或超时。
- Workflow 参数不是合法 JSON。
- Agent 名称或 Workflow ID 填错。
- 工具、MCP、设备或第三方 API 凭据失效。
- 通道目标不可达。
- Workspace 目录权限或 Docker 挂载异常。
5.4 与 sessionID 和通道的衔接
任务结果经常需要推送到固定 IM 对话。每个 IM 对话在 Flocks 中都有对应的 sessionID。可以先在目标 IM 对话里问:
你的 sessionid 是什么?然后在创建任务时明确说明:
把结果推送到 sessionID: *******这种方式适合多群、多通道和定时任务场景。相比在每次任务里重新描述目标对话,直接使用 Flocks 的 sessionID 更容易跨 WebUI、任务中心、Workflow 和 IM 会话传递。
5.5 与 Workspace 的衔接
任务执行时通常会把输入快照、中间数据、报告和最终产物写入当前 Workspace 的 outputs/。长期任务建议按日期、任务名或执行 ID 归档,便于后续对比和审计。
如果是 Pro 多账号环境,每个用户有自己的私有 Workspace 目录;任务执行时要注意创建者、执行者和目标 Workspace 是否符合预期。
6. CLI 与对话命令
6.1 CLI 常用命令
| 命令 | 用途 |
|---|---|
flocks task | 显示任务中心概览。 |
flocks task dashboard | 查看任务中心统计。 |
flocks task list | 列出任务执行或调度。 |
flocks task show <taskID> | 查看任务详情。 |
flocks task create <title> | 创建任务。 |
flocks task queue | 查看或控制任务队列。 |
flocks task scheduled | 列出定时任务。 |
flocks task cancel <taskID> | 取消任务。 |
flocks task retry <taskID> | 重试失败任务。 |
flocks task rerun <taskID> | 重新运行任务。 |
6.2 对话中的 / 命令
| 命令 | 用途 |
|---|---|
/tasks | 查看任务中心概览。 |
/queue | 查看任务队列状态。 |
/help | 查看当前会话可用的 / 命令。 |
/new | 清理当前对话历史,重新开始对话。 |
不同 Workspace、自定义命令和 MCP Prompts 可能会提供更多 / 命令,以 /help 实际展示为准。
7. 运行、验证与调整
7.1 创建前先试跑
正式创建长期任务前,建议先让 Rex 在会话中跑一次完整流程。重点确认:
- 数据源能获取到样例数据。
- Agent / Workflow 能独立完成任务。
- 结果格式符合预期。
- 产物能写入 Workspace。
- 通道能收到摘要或失败通知。
7.2 首次执行后验收
任务创建后,建议立即运行一次或等待第一次定时触发,并检查:
- 执行状态是否为成功。
- 执行耗时是否可接受。
- 输入快照是否正确。
- 结果摘要是否清晰。
- Workspace 产物是否完整。
- 通道推送是否到达正确的
sessionID。
7.3 失败排查顺序
按下列顺序排查通常最快:
- 在任务中心查看最近一次执行详情。
- 检查 Agent 名称、Workflow ID、Workflow 参数 JSON。
- 确认默认模型和单独指定模型可用。
- 检查工具、设备、MCP、第三方 API 和通道配置。
- 检查 Workspace 路径和 Docker 挂载。
- 必要时运行
flocks status,并查看后端日志。
7.4 持续优化任务
任务不是一次创建后就不能动。执行结果不理想时,可以在会话里明确告诉 Rex:
优化一下每日设备巡检任务:
- 增加高危端口暴露检查
- 报告里把变化项放在最前面
- 失败时只推送错误摘要,不推送完整日志Rex 可以根据历史执行、任务定义、产物和错误信息,帮助你调整 Agent Prompt、Workflow 节点、任务补充信息或调度策略。
8. 真实案例:NDR 告警研判每小时任务
8.1 一次性运行
用户先在会话中输入:
从 NDR 抓 5 条最新告警,逐条做研判,JSON 产出,摘要发企微值班群。Rex 依次完成:
- 获取原始告警并写入 Workspace
outputs/。 - 委派告警研判 Agent 或运行 NDR 告警研判 Workflow。
- 输出结构化 JSON 和 Markdown 摘要。
- 通过企微通道推送摘要到目标
sessionID。
8.2 转为定时任务
同一会话继续:
把这套告警研判过程配成定时任务,每小时执行一次。
结果发到刚才的企微值班群,失败时也发错误摘要。Rex 在任务中心创建:
- 执行方式:Workflow 或 Agent。
- 调度规则:每小时。
- 结果位置:当前 Workspace
outputs/。 - 通知目标:企微值班群对应的
sessionID。
8.3 持续运营效果
从此不再需要人工手动触发。每小时平台自动拉取告警、完成研判、落盘 JSON、推送摘要。后续如果希望把每小时结果汇总成日报,只需要再创建一个日报任务,读取当天的 Workspace 产物即可。
9. 常见问题
9.1 任务没有按时执行怎么办?
先看任务中心页面:任务是否启用、下次执行时间是否正确、最近一次执行是否失败、队列是否暂停。然后再检查 flocks status、模型、工具、通道和 Workspace 权限。
9.2 任务产出在哪里?
通常在 Workspace 的 outputs/ 下。如果任务执行的是 Workflow,会按 Workflow 的产出约定存放;如果执行的是 Agent,Agent 通常会根据任务上下文选定输出文件位置并写入。
9.3 一个任务失败会影响其他任务吗?
任务之间独立调度。但如果多个任务依赖同一个模型、通道、工具或设备配置,同一个依赖故障可能造成多条任务同时失败。
9.4 任务能手动触发一次吗?
可以。在定时任务列表中点击"一次性执行",或者在会话里对 Rex 说"帮我手动跑一次某某任务"。
9.5 任务执行时会继承创建任务的会话历史吗?
不会。定时任务执行时会创建新的 Rex 会话,因此任务描述必须自包含。不要依赖"刚才那批数据"这类只存在于创建会话里的上下文。
9.6 能不能让任务失败时自动通知我?
可以。创建任务时明确说明失败通知规则,例如"如果执行失败,把错误摘要发到某个 sessionID"。
10. 相关模块
- 对话管理:任务通常从一次成功会话中沉淀出来。
- Workflow 工作流:周期任务最常见的执行对象。
- Agent 智能体:任务步骤较灵活时的执行对象。
- Workspace:任务产物、输入快照和报告的落盘位置。
- 通道管理:任务结果和失败通知的外发通道。
- Flocks CLI:任务相关终端 CLI。
- Flocks / 斜杠命令:任务相关
/命令。