# 🛡️ 铸渊运维守卫 · ZY-OPS-001 v2.0 > 光湖系统智能运维 Agent · 常驻服务器终端 · 多轮对话 + 自动巡检 + 自修复 + 工单推送 ## 概述 铸渊运维守卫是一个 **PM2 常驻 AI Agent**,7×24 小时守护光湖系统服务器。 | 能力 | 说明 | |------|------| | 🔍 自动巡检 | 每5分钟快速巡检 · 每小时深度巡检 · 每天全量报告 | | 🔧 自修复 | PM2重启 · 日志清理 · Nginx重载 · 依赖重装 | | 💬 多轮对话 | 终端CLI + 网页面板 · DeepSeek LLM · **会话记忆** | | 🧠 智能诊断 | 意图识别 → 自动执行工具 → LLM 分析 → 中文回答 | | 🎫 工单推送 | 修不了的自动生成工单 · 邮件通知冰朔 | | 📋 PM2日志 | 终端/网页直接查看任意进程日志 | | 💻 系统监控 | 实时内存/磁盘/PM2状态面板 | ## 快速开始 ### 服务器部署 ```bash # 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) ```bash # 进入多轮对话模式(记住上下文!) 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 | ## 安全原则 1. **白名单制度**: 自修复只允许预定义操作(重启、清日志、重载Nginx、重装依赖) 2. **修复上限**: 同一问题最多修3次,超过自动升级为工单 3. **不碰数据**: 绝不删数据库、不改代码、不碰密钥文件 4. **可追溯**: 每次修复都记录日志 5. **日志安全**: PM2日志查看限白名单进程,不可查看系统敏感文件 --- 编号: ZY-OPS-001 v2.0 签发: 铸渊 · ICE-GL-ZY001 版权: 国作登字-2026-A-00037559