6.0 KiB
6.0 KiB
🛡️ 铸渊运维守卫 · ZY-OPS-001 v2.0
光湖系统智能运维 Agent · 常驻服务器终端 · 多轮对话 + 自动巡检 + 自修复 + 工单推送
概述
铸渊运维守卫是一个 PM2 常驻 AI Agent,7×24 小时守护光湖系统服务器。
| 能力 | 说明 |
|---|---|
| 🔍 自动巡检 | 每5分钟快速巡检 · 每小时深度巡检 · 每天全量报告 |
| 🔧 自修复 | PM2重启 · 日志清理 · Nginx重载 · 依赖重装 |
| 💬 多轮对话 | 终端CLI + 网页面板 · DeepSeek LLM · 会话记忆 |
| 🧠 智能诊断 | 意图识别 → 自动执行工具 → LLM 分析 → 中文回答 |
| 🎫 工单推送 | 修不了的自动生成工单 · 邮件通知冰朔 |
| 📋 PM2日志 | 终端/网页直接查看任意进程日志 |
| 💻 系统监控 | 实时内存/磁盘/PM2状态面板 |
快速开始
服务器部署
# 1. 安装依赖
cd /opt/zhuyuan/ops-agent && npm install --production
# 2. 启动 PM2 服务
pm2 start ecosystem.config.js
# 3. 创建终端命令(可选)
ln -s /opt/zhuyuan/ops-agent/cli.js /usr/local/bin/zy-ops
chmod +x /opt/zhuyuan/ops-agent/cli.js
终端交互 (Phase 2)
# 进入多轮对话模式(记住上下文!)
zy-ops
# 单次提问
zy-ops --ask "为什么MCP连不上?"
# 快速巡检
zy-ops --check
# 深度巡检
zy-ops --deep
# 查看PM2日志
zy-ops --logs zhuyuan-server
zy-ops --logs age-os-mcp 50
# 系统信息
zy-ops --sysinfo
# 查看工单
zy-ops --tickets
# 查看状态
zy-ops --status
交互模式命令
进入 zy-ops 后可以使用:
/check — 快速巡检
/deep — 深度巡检
/sysinfo — 系统信息(内存/磁盘/PM2/Nginx)
/logs <名字> — 查看PM2日志
/tickets — 查看工单
/status — 守卫状态
/session — 查看当前会话
/new — 开始新对话(清除上下文)
/help — 帮助
/exit — 退出
其他 — 直接中文提问(多轮对话,记得上下文)
网页面板
访问 http://服务器IP:3950/ops/ 即可使用运维面板(含对话+工单+系统信息)。
对话能力 (Phase 2 增强)
多轮对话
- 运维守卫记住你之前问过的问题
- 可以追问:"刚才说的第二步怎么做?"
/new命令开始新会话
智能工具调用
问问题时,运维守卫会根据意图自动执行诊断:
- 问"MCP连不上" → 自动执行健康检查 → 附上结果给 LLM 分析
- 问"内存够用吗" → 自动获取系统资源 → 告诉你具体数字
- 问"GLADA报什么错" → 自动读取PM2日志 → 分析最近错误
- 问"有什么工单" → 自动查询工单列表 → 汇总告诉你
意图识别
| 问法 | 识别意图 | 自动执行 |
|---|---|---|
| 连不上/离线/打不开 | diagnose | 健康检查 |
| 内存/磁盘/CPU | resources | 系统资源 |
| 日志/报错/error | logs | PM2日志 |
| PM2/进程/重启 | process | PM2状态 |
| Nginx/域名/SSL | nginx | Nginx状态 |
| 工单/ticket | tickets | 工单查询 |
架构
ops-agent/
├── index.js 主入口 · HTTP API + 定时调度 + 工具执行
├── cli.js 终端交互 v2 · 多轮对话 + 系统信息
├── health-checker.js 健康检查 · 三层巡检
├── repair-engine.js 自修复 · 白名单安全执行
├── memory.js 记忆系统 · 文件持久化
├── notifier.js 通知系统 · 邮件 + 工单
├── llm-client.js LLM推理 v2 · 多轮会话 + 意图识别
├── ecosystem.config.js PM2配置
├── package.json
├── web/
│ ├── index.html 运维面板 UI v2(含系统信息)
│ ├── app.js 前端逻辑 v2(多轮对话)
│ └── style.css 样式 v2(打字指示器+系统面板)
└── data/ 运行时数据(自动创建)
├── events.jsonl 事件日志
├── tickets.json 工单列表
└── stats.json 统计数据
API 端点
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /health |
守卫健康检查 |
| GET | /api/ops/check/quick |
快速巡检 |
| GET | /api/ops/check/deep |
深度巡检 |
| GET | /api/ops/tickets |
获取工单列表 |
| PATCH | /api/ops/tickets/:id |
更新工单状态 |
| POST | /api/ops/chat |
对话接口(支持 sessionId 多轮) |
| GET | /api/ops/sessions |
列出活跃会话 |
| GET | /api/ops/sessions/:id/history |
获取会话历史 |
| GET | /api/ops/pm2-logs/:name |
查看PM2日志 |
| GET | /api/ops/system-info |
系统信息(资源+PM2+Nginx) |
| GET | /api/ops/stats |
统计数据 |
| GET | /api/ops/events |
历史事件 |
| GET | /ops/events |
SSE 实时推送 |
| GET | /ops/ |
网页面板 |
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
OPS_AGENT_PORT |
服务端口 | 3950 |
OPS_MAX_REPAIR_RETRIES |
最大自修复次数 | 3 |
ZY_LLM_API_KEY |
LLM API密钥 | - |
ZY_LLM_BASE_URL |
LLM API地址 | https://api.deepseek.com/v1 |
ZY_LLM_MODEL |
LLM模型 | deepseek-chat |
ZY_SMTP_USER |
SMTP邮箱 | - |
ZY_SMTP_PASS |
SMTP授权码 | - |
OPS_NOTIFY_EMAIL |
告警接收邮箱 | =ZY_SMTP_USER |
OPS_EMAIL_ENABLED |
邮件总开关 · D72 翻转默认为 false(持续噪音) · 设 true/1/yes/on 才发件 |
false |
OPS_ALERT_COOLDOWN_MINUTES |
告警冷却(分钟) | 360 |
安全原则
- 白名单制度: 自修复只允许预定义操作(重启、清日志、重载Nginx、重装依赖)
- 修复上限: 同一问题最多修3次,超过自动升级为工单
- 不碰数据: 绝不删数据库、不改代码、不碰密钥文件
- 可追溯: 每次修复都记录日志
- 日志安全: PM2日志查看限白名单进程,不可查看系统敏感文件
编号: ZY-OPS-001 v2.0
签发: 铸渊 · ICE-GL-ZY001
版权: 国作登字-2026-A-00037559