Install
openclaw skills install long-task-monitor长任务监控方案 V2。实现 Worker-Monitor 架构,Monitor 通过 hook-logger 日志监控 Worker 状态,每轮 10 分钟通过 Announce 汇报。采用主会话轮询机制(因子代理 sessions_send 限制)。推荐 OpenClaw 2.21+。触发词:长任务、监控任务、...
openclaw skills install long-task-monitor注意:本 Skill 依赖 hook-logger 插件读取 Worker 状态,必须先安装。
当用户说"长任务"、"监控任务"、"执行训练"等需要长时间运行任务时使用此技能。
实现长任务监控方案(V2):
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: "长任务", "监控任务", "任务监控"
本方案依赖 hook-logger 插件读取 Worker 状态,必须先安装:
# 安装 hook-logger 插件
openclaw plugins install @scotthuang/hook-logger
# 或手动安装
cd ~/.openclaw/extensions/hook-logger
npm install
注意:确保 hook-logger 已更新到支持 sessionKey 记录的版本(用于过滤特定 Worker 的日志)。
# 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 <task_id> worker "<sessionKey>"
# 4. 启动 Monitor
sessions_spawn(task="...", label="monitor-xxx", cleanup="delete")
# 5. 更新 Monitor Session Key
node long-task.js update <task_id> monitor "<sessionKey>"
# 6. 任务完成时手动清理
node long-task.js complete <task_id> "结果描述"
# 创建任务
node long-task.js start "描述" "worker任务"
# 更新 Worker Session Key
node long-task.js update <task_id> worker "<sessionKey>"
# 更新 Monitor Session Key
node long-task.js update <task_id> monitor "<sessionKey>"
# 生成 Worker 启动命令
node long-task.js worker-command <task_id> "worker任务"
# 生成 Monitor 启动命令
node long-task.js monitor-command <task_id> <worker_session_key> 1
# 标记任务完成并清理 sessions
node long-task.js complete <task_id> "结果描述"
# 查看任务状态
node long-task.js status
~/.openclaw/workspace/long-tasks/<task-id>/
├── task.json # 任务信息(包含 workerSessionKey, monitorSessionKey)
├── status.json # 最终状态(完成后)
└── monitor-rounds/ # Monitor 轮次记录
├── current-round.json # 当前轮次记录
└── round-1.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
}
| 轮次 | 行为 |
|---|---|
| 1-5 | 自动继续下一轮监控 |
| 6+ | 询问用户是否继续 |
当前版本需要手动执行 complete 命令清理 sessions:
node long-task.js complete <task_id> "结果描述"
Monitor 尝试每分钟记录状态,但实际频率取决于 Worker 执行速度。如果 Worker 执行很快,可能只记录 1-2 次。
spawn Worker/Monitor 后,必须手动更新 task.json:
agent_end 事件判断 Worker 是否完成complete 清理如果修改了 skill:
cd ~/.openclaw/workspace/skills/long-task-monitor
# 未来如有 npm 包需求
本 skill 已做安全加固:
execFile + 参数数组防止命令注入: 用于 session keys)hook-logger 插件,请确保来源可信: 字符(如 agent:main:subagent:xxx),已修复过滤函数允许此字符