🤖 救援机器人设计文档 - OpenClaw 双网关隔离架构
🤖 救援机器人设计文档
OpenClaw 双网关隔离架构
🎯 项目目标
创建一个独立的救援机器人,监控主 OpenClaw 网关的健康状态,并在检测到故障时自动修复或发送告警。
🏗️ 架构设计
双网关隔离架构
| ┌─────────────────────────────────────────────────┐ |
| │ 主机器人 (Gateway 18789) │ |
| │ - 大模型:ollama/qwen3.5:397b-cloud │ |
| │ - 嵌入模型:all-minilm │ |
| │ - LanceDB: ~/.openclaw/workspace/memory_db/ │ |
| │ - Telegram: 主 Bot Token │ |
| │ - Session Scope: main │ |
| │ - 用途:日常对话、任务执行 │ |
| └─────────────────┬───────────────────────────────┘ |
| │ HTTP 健康检查 (每 5 分钟) |
| ▼ |
| ┌─────────────────────────────────────────────────┐ |
| │ 救援机器人 (Gateway 18790) │ |
| │ - 大模型:ollama/qwen3.5:397b-cloud │ |
| │ - 嵌入模型:all-minilm │ |
| │ - LanceDB: ~/.openclaw-rescue/workspace/... │ |
| │ - Telegram: 救援 Bot Token (独立) │ |
| │ - Session Scope: rescue │ |
| │ - 用途:监控、修复、告警 │ |
| │ │ |
| │ 核心技能: │ |
| │ - health-monitor/ (健康监控) │ |
| │ - auto-repair/ (自动修复) │ |
| │ - alert-notifier/ (告警通知) │ |
| └─────────────────────────────────────────────────┘ |
资源隔离对照表
📊 监控指标
1. 网关健康
- HTTP 状态码 - GET /api/health 或根路径
- 响应时间 - >5 秒视为异常
- Token 验证 - API 调用是否成功
- 检查间隔 - 从配置文件读取 (默认 30 分钟)
2. 系统资源
- CPU 使用率 - >90% 告警
- 内存使用率 - >95% 告警
- 磁盘使用率 - >90% 告警
3. Session 状态
- 活跃 Session 数 - 异常增长告警
- Session 大小 - >180k 预警
🔧 自动修复策略
📢 告警分级
🛠️ 技能开发计划
技能 1: health-monitor
- 从配置文件读取健康检查间隔 (默认 30 分钟)
- 定期检查主网关健康 (HTTP 请求)
- 收集系统资源指标 (CPU/RAM/磁盘)
- 分析日志错误模式
- 将检查结果写入 LanceDB 记忆
技能 2: auto-repair
- 执行自动修复动作
- 重启网关服务
- 清理 session/日志
技能 3: alert-notifier
- 发送 Telegram 告警
- 发送邮件告警
- 告警历史记录
📅 开发计划
🔑 配置项
主机器人信息
- URL:
http://localhost:18789 - 健康检查间隔: 30 分钟
- 工作区:
~/.openclaw/workspace/ - Session Scope: main
救援机器人配置
- 端口: 18790
- 工作区:
~/.openclaw-rescue/workspace/ - Session Scope: rescue
- 大语言模型:
ollama/qwen3.5:397b-cloud - 嵌入模型: all-minilm
告警配置
- Telegram Chat ID:
1927389589 - 邮件:
techworld.empoli@gmail.com
📝 测试场景
场景 1: 网关无响应
- 手动停止主网关 (
systemctl stop openclaw-gateway) - 救援机器人检测到故障 (HTTP 请求失败)
- 尝试自动重启 (
systemctl start openclaw-gateway) - 发送告警通知到 Telegram
场景 2: Session 超限
- 模拟大量 session (手动创建或等待自然增长)
- 救援机器人检测到 Session >180k
- 清理空闲 >2h 的 session
- 发送清理报告到 Telegram
场景 3: 磁盘空间不足
- 填满磁盘到 95%
- 救援机器人检测到空间不足
- 清理旧日志 (>7 天)
- 发送告警到 Telegram + 邮件
场景 4: 消息隔离验证
- 同时向主机器人和救援机器人发送消息
- 验证主机器人只响应主 Bot 的消息
- 验证救援机器人只响应救援 Bot 的消息
- 确认两个机器人的记忆数据不混合
场景 5: Ollama 并发验证
- 同时触发两个机器人的 LLM 调用
- 验证 Ollama 服务正常响应
- 确认没有冲突或错误
- 检查响应时间是否正常
文档版本: V1.1
创建日期: 2026-03-05
状态: 🟢 设计完成
评论
发表评论