【OpenClaw】让openclaw根据需求创造自定义skill记录

本地服务器部署OpenClaw

计算卡:2张RTX3090

基础大模型:qwen3.5:27b

skill开发需求(示例)

智能体实时监控本地的服务器的应用的进程运行,给出需要关注的应用名称,如果应用进程关闭,则按照说明书要求重启进程,如果某应用进程被反复运行多个进程,则kill掉多余。

第一回合,直接提出需求

直接对openclaw纯文本输出即可(注意运行指令必须正确)

openclaw自动生成SKILL:

完成了!✅ 已为你创建完整的 agent-bootup 技能,包含以下文件:

复制代码
skills/agent-bootup/
├── SKILL.md              # 技能规格文档(含接口定义)
├── bootup_monitor.sh     # 核心监控脚本(可执行)✓
├── config.json           # 配置文件(进程列表/启动命令)
└── README.md             # 使用指南

下一步操作:

  1. 权限已设置 (chmod +x ✓)

  2. 测试运行一次检查:

    bash 复制代码
    bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check
  3. 启用定时任务(可选):

    bash 复制代码
    crontab -e  # 添加:* * * * * bash ~/..../bootup_monitor.sh check

OpenClaw 重启后会自动识别此技能(在 skills/ 目录下)。需要我帮你测试运行一次吗?🧠

然后在web可以识别到新生成的技能skill:

openclaw 生成的SKILL.md


name: agent-bootup

license: MIT
description: Process monitoring and auto-recovery skill. Handles rolo_simulator.py, ai_chat.py, and agent_collector.py process health checks with one-minute intervals.
metadata:
version: "1.0.0"
author: openclaw-team

agent-bootup - 进程监控与自恢复技能

功能定位: 常态化维护本地服务器上必要的进程维持运行,每分钟自动检测关键进程状态并执行恢复操作

📖 功能概述

为 OpenClaw 系统提供关键进程健康检查、自动重启、异常进程清理能力,支持以下场景:

核心能力

能力项 说明
process-health-check 每分钟轮询 rolo_simulator.py / ai_chat.py / agent_collector.py 进程状态
duplicate-process-kill 检测 rolo_simulator.py 多实例 → kill -9 删除多余进程
auto-restart-missing 检测到缺失进程 → 自动执行启动命令恢复服务
startup-command-execution 封装三个进程的独立启动脚本,支持 nohup 后台运行模式
monitoring-interval 默认 60 秒检查周期,可配置调整

🎯 监控目标与启动脚本

进程名称 检查条件 恢复动作
rolo_simulator.py 多实例 → kill -9 删除多余;缺失→重启 nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace/rolo_simulator.py &
ai_chat.py 缺失 → 重启 nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &
agent_collector.py 缺失 → 重启 chmod +x /home/tc/.openclaw/workspace-monitor/script/run_collector.sh && bash /home/tc/.openclaw/workspace-monitor/script/run_collector.sh

🔌 标准调用流程(JSON Schema)

Input Parameters(输入参数)

json 复制代码
{
  "action": "check|start|stop|status",                    // 操作类型:检查/启动监控/停止监控/查看状态
  "intervalSeconds": 60,                                  // 检查间隔秒数(默认 60 秒)
  "processes": [                                          // 需要监控的进程列表(可选,默认全部)
    "rolo_simulator.py",
    "ai_chat.py",
    "agent_collector.py"
  ],
  "autoRecovery": true,                                   // 是否启用自动恢复(默认开启)
  "logLevel": "info"                                     // 日志级别:debug/info/warning/error
}

Output Response(输出响应)

json 复制代码
{
  "status": "success|failed|partial",                     // 执行状态
  "timestamp": "2026-03-18T15:30:00+08:00",
  "processesStatus": {
    "rolo_simulator.py": {
      "running": true,
      "pid": [12345],
      "instanceCount": 1,
      "action": "none|killed_duplicates|started"
    },
    "ai_chat.py": {
      "running": true,
      "pid": [12346],
      "instanceCount": 1,
      "action": "none"
    },
    "agent_collector.py": {
      "running": false,
      "pid": [],
      "instanceCount": 0,
      "action": "started"
    }
  },
  "nextCheckAt": "2026-03-18T15:31:00+08:00",
  "monitoringActive": true,
  "errors": []
}

📂 文件结构

复制代码
agent-bootup/
├── SKILL.md                    # 本技能规范文档(含调用接口定义)
├── README.md                   # 快速使用指南 + 示例代码
├── config.json                 # 监控配置(进程列表/间隔/启动命令)
└── bootup_monitor.sh           # 核心监控脚本

🔄 技能调用流程示例

场景 1:初始化监控(首次启用)

bash 复制代码
# 执行检查并启动缺失进程
bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check

# 输出示例:
# [INFO] 2026-03-18 15:30:00 - Starting process health check...
# [CHECK] rolo_simulator.py: ✓ Running (PID: 12345)
# [CHECK] ai_chat.py: ✓ Running (PID: 12346)
# [CHECK] agent_collector.py: ✗ Not running → Starting...
# [START] agent_collector.sh started successfully
# [INFO] Next check scheduled at: 2026-03-18 15:31:00

场景 2:定时自动检测(每分钟)

bash 复制代码
# 作为 cron job 或 systemd timer 运行
* * * * * bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check

场景 3:清理多余 rolo_simulator 实例

bash 复制代码
# 检测到多个 rolo_simulator 进程
# [WARN] rolo_simulator.py: Found 3 instances (PIDs: 12345, 12347, 12349)
# [KILL] Terminating extra instances: 12347, 12349 (keeping 12345)
# [CHECK] rolo_simulator.py: ✓ Now running with single instance (PID: 12345)

⚙️ 配置说明

config.json 配置文件

json 复制代码
{
  "monitoring": {
    "enabled": true,
    "intervalSeconds": 60,
    "autoRecovery": true,
    "logLevel": "info",
    "logfile": "/home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.log"
  },
  "processes": [
    {
      "name": "rolo_simulator.py",
      "maxInstances": 1,
      "killExtraInstances": true,
      "startCommand": "nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace/rolo_simulator.py &"
    },
    {
      "name": "ai_chat.py",
      "maxInstances": 1,
      "killExtraInstances": false,
      "startCommand": "nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &"
    },
    {
      "name": "agent_collector.py",
      "maxInstances": 1,
      "killExtraInstances": false,
      "startCommand": "chmod +x /home/tc/.openclaw/workspace-monitor/script/run_collector.sh && bash /home/tc/.openclaw/workspace-monitor/script/run_collector.sh"
    }
  ],
  "paths": {
    "python3_env": "/home/tc/anaconda3/envs/openclaw/bin/python3",
    "workspace": "/home/tc/.openclaw/workspace",
    "workspace_monitor_script": "/home/tc/.openclaw/workspace-monitor/script"
  }
}

⚠️ 安全注意事项

进程清理策略

场景 处理方式 安全风险
rolo_simulator.py 多实例 保留 oldest PID,kill -9 其他 ⚠️杀错进程影响机器人服务
进程缺失自动重启 执行 startCommand 恢复 ✓无风险(nohup 后台运行)
启动命令失败 记录日志并告警 ✓仅记录不重试

异常处理机制

异常类型 触发条件 应对措施
进程不存在 ps aux 未找到进程 执行 startCommand 启动
多实例异常 rolo_simulator.py>1 个实例 kill -9 多余 PID
启动命令失败 startCommand 返回非 0 状态码 记录错误日志,不重试
配置加载失败 config.json JSON 解析错误 使用默认配置继续运行

日志管理

  • 日志位置 : /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.log
  • 日志级别: debug / info / warning / error (可配置)
  • 轮转策略: 每天自动切分,保留最近 7 天
  • 告警输出: 检测到异常时输出到 stderr 便于监控系统捕获

🚀 部署步骤

Step 1:创建技能目录和文件

bash 复制代码
mkdir -p /home/tc/.openclaw/workspace/skills/agent-bootup
cd /home/tc/.openclaw/workspace/skills/agent-bootup

Step 2:创建配置文件 (config.json)

json 复制代码
{
  "monitoring": {
    "enabled": true,
    "intervalSeconds": 60,
    "autoRecovery": true
  },
  "processes": [...]
}

Step 3:创建监控脚本 (bootup_monitor.sh)

bash 复制代码
chmod +x bootup_monitor.sh

Step 4:设置定时任务 (可选 - 系统级 cron)

bash 复制代码
# 编辑 crontab
crontab -e

# 添加每分钟检查和自动恢复
* * * * * bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check >> /var/log/agent-bootup.log 2>&1

Step 5:验证监控功能

bash 复制代码
# 手动执行一次检查
bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check

# 查看日志
tail -f /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.log

调用说明

  • 本技能设计为独立脚本运行,可通过 cron/systemd timer /OpenClaw heartbeat 触发
  • 无需 ACP session,直接执行 shell 命令即可完成进程检查和恢复
  • 与 rolo_simulator.py 协同:确保机器人模拟器服务始终在线
  • 支持集成到 OpenClaw:可通过 exec 工具调用 bootup_monitor.sh check 实现定时巡检

与现有技能的协作关系

  • rolo-audio-speaker:依赖 rolo_simulator.py (127.0.0.1:7777/speaker) 提供机器人语音服务
  • rolo-camera-shooter:依赖 rolo_simulator.py (127.0.0.1:7777/camera) 提供视觉采集能力
  • 本技能保障基础服务可用性,确保上述技能调用的后端服务始终在线

这个技能为 OpenClaw 消控系统提供进程级监控防护,确保核心业务连续性

openclaw自动生成README.md

复制代码
# Agent Bootup - 进程守护监测器

> **xxxxxx公司** | 消控系统自动化维护工具

## 📋 功能概述

`agent-bootup` 技能用于常态化维护本地服务器上的关键进程,确保以下三个核心服务持续运行:

- `rolo_simulator.py` - 机器人模拟器(仅限单实例)
- `ai_chat.py` - AI 聊天服务
- `agent_collector.py` - Agent 数据采集器

## ⚙️ 检测规则

### 1️⃣ rolo_simulator.py
- **检查**:每分钟扫描进程列表
- **策略**:
  - ❌ **多个实例** → `kill -9 PID` 删除多余进程
  - ✅ **单实例** → 保持不变
  - ❌ **无进程** → 自动启动
- **启动命令**:
```bash
nohup /home/tc/anaconda3/envs/openclaw/bin/python /home/tc/.openclaw/workspace-monitor/script//home/tc/.openclaw/workspace/rolo_simulator.py &

2️⃣ ai_chat.py

  • 检查:每分钟扫描进程列表
  • 策略
    有运行 → 保持不变
    未运行 → 自动启动
  • 启动命令
bash 复制代码
nohup /home/tc/anaconda3/envs/openclaw/bin/python /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &

3️⃣ agent_collector.py

  • 检查:每分钟扫描进程列表
  • 策略
    已运行 → 保持不变
    未运行 → 自动启动
  • 启动命令
bash 复制代码
chmod +x /home/tc/.openclaw/workspace-monitor/script/run_collector.sh && bash /home/tc/.openclaw/workspace-monitor/script/run_collector.sh

🚀 快速开始

方式一:手动运行(测试用)

bash 复制代码
cd /home/tc/.openclaw/workspace/skills/agent-bootup/scripts
python3 process_health_monitor.py

方式二:作为 Skill 调用(推荐)

  1. 已自动复制到系统路径~/.npm-global/lib/node_modules/openclaw/skills/agent-bootup/
  2. 通过天枢 Agent 触发该技能执行

方式三:Cron 定时任务(生产环境)

bash 复制代码
# 添加到 crontab
echo "* * * * * cd /home/tc/.openclaw/workspace/skills/agent-bootup/scripts && python3 process_health_monitor.py >> /tmp/agent_bootup.log 2>&1" | crontab -

# 验证安装
crontab -l | grep agent_bootup

📁 文件结构

复制代码
skills/agent-bootup/
├── SKILL.md              # OpenClaw 技能元数据(名称、描述、使用场景)
├── README.md             # 本文件,详细使用说明
├── .gitignore            # Git 忽略配置
└── scripts/
    └── process_health_monitor.py   # 核心监测脚本

⚠️ 重要说明

🔴 OpenClaw 技能注册路径

OpenClaw 系统加载的技能位于:~/.npm-global/lib/node_modules/openclaw/skills/

  • 已安装到系统目录~/.npm-global/lib/node_modules/openclaw/skills/agent-bootup/
  • 📝 工作区副本~/.openclaw/workspace/skills/agent-bootup/

如果修改了技能文件,需要重新复制到系统路径:

bash 复制代码
cp -r /home/tc/.openclaw/workspace/skills/agent-bootup ~/.npm-global/lib/node_modules/openclaw/skills/

🔍 日志输出示例

shell 复制代码
[2026-03-18 14:30:00] ============================================================
[2026-03-18 14:30:00] Agent Bootup - Health Check Starting
[2026-03-18 14:30:00] ============================================================
[2026-03-18 14:30:00] ROLO: rolo_simulator.py has 1/1 instance(s)
[2026-03-18 14:30:00] ROLO: rolo_simulator.py healthy
[2026-03-18 14:30:00] CHAT: ai_chat.py has 0/1 instance(s)
[2026-03-18 14:30:00] CHAT: Starting ai_chat.py
[2026-03-18 14:30:00] Started ai_chat.py
[2026-03-18 14:30:00] COLLECT: agent_collector.py has 1/1 instance(s)
[2026-03-18 14:30:00] COLLECT: agent_collector.py healthy
[2026-03-18 14:30:00] ============================================================

🛡️ 安全说明

  • ✅ 所有操作仅针对指定的三个 Python 脚本
  • ⚠️ kill -9 仅在发现 rolo_simulator.py 多实例时使用
  • 🔒 启动命令中添加了 chmod +x,无需额外权限配置

🐛 故障排查

Q1: 进程自动重启失败?

A : 检查日志输出(/tmp/agent_bootup.log),确认 Python 环境和路径是否正确。

bash 复制代码
# 查看日志
tail -f /tmp/agent_bootup.log

# 手动测试启动命令
/home/tc/anaconda3/envs/openclaw/bin/python /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &

Q2: Cron 任务不执行?

A: 确认 cron 服务正在运行,路径使用绝对路径。

bash 复制代码
# 检查 cron 状态
systemctl status cron

# 添加 PATH 环境到 crontab 头部
PATH=/usr/local/bin:/usr/bin:/home/tc/anaconda3/envs/openclaw/bin

Q3: OpenClaw 不识别 skill?

A: 确认技能已复制到系统路径。

bash 复制代码
# 检查系统路径
ls ~/.npm-global/lib/node_modules/openclaw/skills/agent-bootup/

# 如果不存在,重新复制
cp -r /home/tc/.openclaw/workspace/skills/agent-bootup ~/.npm-global/lib/node_modules/openclaw/skills/

ℹ️ 维护频率 :每分钟一次(60s)

🔧 最后更新 :2026-03-18

🏢 归属单位:XXXXXXXXX | 消控系统部

相关推荐
周杰伦fans2 小时前
Edge浏览器 about:blank 问题修复
前端·数据库·edge
嘉琪0012 小时前
Day6 完整学习包(async/await)——2026 0318
前端·javascript·学习
SameX2 小时前
我做了个本地优先的 iOS 足迹 App,上架后才发现:最难的根本不是地图,而是让轨迹活下来
前端
踩着两条虫2 小时前
AI 驱动的 Vue3 应用开发平台 深入探究(十八):扩展与定制之集成第三方库
前端·vue.js·agent
css趣多多2 小时前
# Vue 3 `<script setup>` 中变量声明的正确姿势:何时必须使用 `ref()`?
前端·javascript·vue.js
用户69371750013842 小时前
跟你唠唠!A2A协议来了,谁能拿下下一代手机系统的主动权?
android·前端·人工智能
踩着两条虫2 小时前
AI 驱动的 Vue3 应用开发平台 深入探究(十七):扩展与定制之扩展 Provider 系统
前端·vue.js·agent
kyriewen112 小时前
Sass:让 CSS 从手工作坊迈入工业时代
前端·javascript·css·html·css3·sass·html5