长任务监控器 V2:管理持久 AI 智能体工作流 - Openclaw Skills
作者:互联网
2026-03-30
什么是 长任务监控器 V2?
此技能实现了一种先进的 Worker-Monitor 架构 (V2),专为管理 Openclaw Skills 生态系统中超过典型会话超时的任务而设计。通过利用 hook-logger 插件,系统将任务执行 (Worker) 与状态跟踪 (Monitor) 分离,确保每 10 分钟记录一次进度并报告回主会话。
这种方法为开发人员提供了一种可靠的方式来监督模型训练、数据处理或大规模部署等复杂操作。它通过在主会话中使用轮询机制,解决了子智能体会话持久性的限制,使其成为需要持续监督而不阻塞主要用户界面的高可靠性智能体工作流的必备工具。
下载入口:https://github.com/openclaw/skills/tree/main/skills/scotthuang/long-task-monitor
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install long-task-monitor
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 long-task-monitor。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
长任务监控器 V2 应用场景
- 运行需要持久监控的长时间 AI 模型训练或微调会话。
- 监督长达数小时的数据抓取或密集型数据处理流水线。
- 跟踪需要智能体持久性和日志审计的复杂基础设施部署。
- 管理需要通过 Announce 进行定期状态更新且不干扰主对话流程的后台任务。
- 用户通过 CLI 初始化任务,这将创建一个唯一的任务 ID 和专用工作区目录。
- 生成一个 Worker 智能体来执行主要的长时运行命令或计算脚本。
- 捕获 Worker 会话密钥并在任务配置中更新,以实现特定的日志过滤。
- 生成一个独立的 Monitor 智能体,通过读取 hook-logger 插件提供的日志来跟踪 Worker 的进度。
- Monitor 定期(每 10 分钟)进行检查,将基于轮次的报告写入文件系统并向主会话通报状态。
- 在检测到任务完成或失败时,系统触发清理流程以关闭活动会话并完成数据报告。
长任务监控器 V2 配置指南
此技能需要 hook-logger 插件才能正常运行。使用以下命令进行安装:
# 安装所需的 hook-logger 插件
openclaw plugins install @scotthuang/hook-logger
# 进入技能目录并安装依赖项
cd ~/.openclaw/workspace/skills/long-task-monitor
npm install
确保 hook-logger 已更新到支持 sessionKey 记录的版本,以便为特定的 Openclaw Skills 工作线程过滤日志。
长任务监控器 V2 数据架构与分类体系
该技能将所有与任务相关的数据组织在 ~/.openclaw/workspace/long-tasks/ 目录下,结构如下:
| 文件/文件夹 | 用途 |
|---|---|
task.json |
存储核心元数据,包括 workerSessionKey、monitorSessionKey 和当前状态。 |
status.json |
包含任务标记为完成后的最终结果和退出描述。 |
monitor-rounds/ |
包含每个监控间隔的 JSON 文件的目录(例如 round-1.json)。 |
current-round.json |
保存当前活动监控周期的实时状态。 |
name: long-task-monitor
description: 长任务监控方案 V2。实现 Worker-Monitor 架构,Monitor 通过 hook-logger 日志监控 Worker 状态,每轮 10 分钟通过 Announce 汇报。采用主会话轮询机制(因子代理 sessions_send 限制)。推荐 OpenClaw 2.21+。触发词:长任务、监控任务、任务监控。
注意:本 Skill 依赖 hook-logger 插件读取 Worker 状态,必须先安装。
当用户说"长任务"、"监控任务"、"执行训练"等需要长时间运行任务时使用此技能。
功能
实现长任务监控方案(V2):
- 创建 Worker 执行长任务
- 创建 Monitor 监控 Worker 状态(每轮 10 分钟)
- 主会话轮询处理 Monitor 汇报
- 任务完成时自动清理 Worker/Monitor sessions
English Description
Long-running task monitoring solution (V2). Implements Worker-Monitor architecture: Monitor tracks Worker status via hook-logger logs, reports to main session every 10 minutes via Announce. Uses main session polling mechanism due to subagent sessions_send limitation. Recommended for OpenClaw v2.21+.
Note: This skill is primarily designed for Chinese users, but the monitor/worker mechanism can be implemented independently by referring to long-task-monitor-plan.md in the skill folder.
Trigger: "长任务", "监控任务", "任务监控"
使用前提
1. 安装 hook-logger 插件
本方案依赖 hook-logger 插件读取 Worker 状态,必须先安装:
# 安装 hook-logger 插件
openclaw plugins install @scotthuang/hook-logger
# 或手动安装
cd ~/.openclaw/extensions/hook-logger
npm install
注意:确保 hook-logger 已更新到支持 sessionKey 记录的版本(用于过滤特定 Worker 的日志)。
2. 无需额外权限配置
- Monitor → 主会话:Announce(自动)
- 主会话 → Worker:sessions_send(parent→child 默认允许)
使用方式
启动长任务流程
# 1. 创建任务
node ~/.openclaw/workspace/skills/long-task-monitor/long-task.js start "任务描述" "worker命令"
# 2. 启动 Worker(获取 session key 后)
sessions_spawn(task="...", label="worker-xxx", cleanup="keep")
# 3. 更新 Worker Session Key
node long-task.js update worker ""
# 4. 启动 Monitor
sessions_spawn(task="...", label="monitor-xxx", cleanup="delete")
# 5. 更新 Monitor Session Key
node long-task.js update monitor ""
# 6. 任务完成时手动清理
node long-task.js complete "结果描述"
快捷命令
# 创建任务
node long-task.js start "描述" "worker任务"
# 更新 Worker Session Key
node long-task.js update worker ""
# 更新 Monitor Session Key
node long-task.js update monitor ""
# 生成 Worker 启动命令
node long-task.js worker-command "worker任务"
# 生成 Monitor 启动命令
node long-task.js monitor-command 1
# 标记任务完成并清理 sessions
node long-task.js complete "结果描述"
# 查看任务状态
node long-task.js status
任务文件夹结构
~/.openclaw/workspace/long-tasks//
├── task.json # 任务信息(包含 workerSessionKey, monitorSessionKey)
├── status.json # 最终状态(完成后)
└── monitor-rounds/ # Monitor 轮次记录
├── current-round.json # 当前轮次记录
└── round-1.json # 第一轮记录
task.json 字段说明
{
"taskId": "task-xxx",
"description": "任务描述",
"workerTask": "pip install torch",
"workerSessionKey": "agent:main:subagent:xxx",
"monitorSessionKey": "agent:main:subagent:yyy",
"createdAt": "2026-02-22T10:00:00Z",
"status": "running",
"monitorRound": 1,
"workerRestartCount": 0
}
Monitor 行为
- 定期记录 - 写入 monitor-rounds/current-round.json(注:实际取决于执行频率)
- 10 分钟到 - Announce 返回结果
- 检测完成 - 发现 Worker agent_end 事件时返回
- 检测挂掉 - 超过 5 分钟无日志时返回
轮询逻辑
| 轮次 | 行为 |
|---|---|
| 1-5 | 自动继续下一轮监控 |
| 6+ | 询问用户是否继续 |
注意事项
1. 任务完成时需要手动清理
当前版本需要手动执行 complete 命令清理 sessions:
node long-task.js complete "结果描述"
2. Monitor 轮次日志
Monitor 尝试每分钟记录状态,但实际频率取决于 Worker 执行速度。如果 Worker 执行很快,可能只记录 1-2 次。
3. Session Key 更新
spawn Worker/Monitor 后,必须手动更新 task.json:
- 获取 Worker Session Key → 更新
- 获取 Monitor Session Key → 更新
4. 任务完成判断
- Monitor 会检测
agent_end事件判断 Worker 是否完成 - 如果 Worker 已完成,Monitor 会返回"已完成"状态
- 主会话收到后需要手动执行
complete清理
已知限制
- complete 命令有 bug - 当前版本可能报 ReferenceError,需手动清理 sessions
- 无法自动检测 Worker 完成 - 需要等待 Monitor 下一轮汇报
- Session Key 需要手动更新 - 无法自动获取
发布更新
如果修改了 skill:
cd ~/.openclaw/workspace/skills/long-task-monitor
# 未来如有 npm 包需求
?? 安全说明
本 skill 已做安全加固:
- 使用
execFile+ 参数数组防止命令注入 - 所有用户输入经过过滤(只允许安全字符,包含
:用于 session keys) - 依赖
hook-logger插件,请确保来源可信
?? 已知限制
- Monitor Agent 需要使用 exec 工具执行 shell 命令(写入监控日志),这是架构固有限制
- Session Key 必须包含
:字符(如agent:main:subagent:xxx),已修复过滤函数允许此字符
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
信号管道:自动化营销情报工具 - Openclaw Skills
技能收益追踪器:监控 Openclaw 技能并实现变现
AI 合规准备就绪度:评估与治理工具 - Openclaw Skills
FOSMVVM ServerRequest 测试生成器:自动化 API 测试 - Openclaw Skills
酒店搜索器:AI 赋能的住宿与位置情报 - Openclaw Skills
Dub 链接 API:程序化链接管理 - Openclaw Skills
IntercomSwap:P2P BTC 与 USDT 跨链兑换 - Openclaw Skills
spotplay:macOS 原生 Spotify 播放控制 - Openclaw Skills
DeepSeek OCR:AI驱动的图像文本识别 - Openclaw Skills
Web Navigator:自动化网页研究与浏览 - Openclaw Skills
AI精选
