Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

175 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🛡️ 铸渊运维守卫 · 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