Install
openclaw skills install ops-frameworkA 0-token jobs + monitoring framework for OpenClaw: run long-running read tasks via scripts, checkpoint/resume safely, and send periodic progress + immediate alerts to Telegram. Write jobs are blocked by default and must be explicitly approved and verified.
openclaw skills install ops-framework目标:把“长任务执行 / 断点续跑 / 进度汇报 / 异常告警”做成 0-token 的可复用能力。
这套技能由两部分组成:
ops-monitor.py:一个纯本地脚本,负责跑 status / 检测卡住 / 发送 Telegram 快报ops-jobs.json:一个声明式 job 配置(包含 kind/risk/命令/策略)推荐作为“外挂”存在:长任务尽量用脚本跑,避免让模型持续盯进度烧 token。
ACTION REQUIRED / ALERT or fail.~/.openclaw/net/tools/ops-monitor.py~/.openclaw/net/config/ops-jobs.json~/.openclaw/net/state/ops-monitor.json (auto-created)You can also run the script from any directory as long as OPENCLAW_HOME points to your OpenClaw state dir (default ~/.openclaw).
ops-jobs.example.jsonpython3 ops-monitor.py validate-config --config-file ~/.openclaw/net/config/ops-jobs.json
python3 ops-monitor.py selftest
python3 ops-monitor.py tick --print-only
kind is one of:
long_running_readone_shot_readone_shot_write (never auto-executed by ops-monitor)risk is one of:
read_onlywrite_localwrite_externalRules (MVP):
long_running_read may auto-resume only when risk=read_only and policy.autoResume=true.one_shot_read may run explicitly or via queue (read-only only).one_shot_write is always blocked from auto-run; it exists as a declarative “approval + verification chain” placeholder.Your commands.status must print JSON to stdout, with at least:
running (boolean)completed (boolean)Recommended:
pid (number)stopReason (string)progress (object)progressKey (string) — stable key used for stall detectionlevel (ok|warn|alert)message (string)# Validate config
python3 ops-monitor.py validate-config --config-file ~/.openclaw/net/config/ops-jobs.json
# Print current statuses (no Telegram)
python3 ops-monitor.py status --config-file ~/.openclaw/net/config/ops-jobs.json
# One monitoring tick
python3 ops-monitor.py tick --config-file ~/.openclaw/net/config/ops-jobs.json
# Explicitly start/stop a long job
python3 ops-monitor.py start <job_id> --config-file ~/.openclaw/net/config/ops-jobs.json
python3 ops-monitor.py stop <job_id> --config-file ~/.openclaw/net/config/ops-jobs.json
# Run one one_shot_read job explicitly
python3 ops-monitor.py run <job_id> --config-file ~/.openclaw/net/config/ops-jobs.json
OPS_FRAMEWORK.md