attackerandClaude 92a2247390 feat: 新增 Agent CLI — Web 版 AI 运维 Agent(参考 opsxcli 移植)
后端引擎 backend/pkg/agentcli/(纯引擎库,零业务依赖,剥离 CLI/TUI 外壳):
- llm: OpenAI 兼容客户端,复用 model.LLMConfig
- tools: ssh_execute(复用 pkg/remoteexec)+ analyze_output + 风险评估黑名单
- safety: 三级安全模式 + 五级风险 + WebSocket 异步确认
- prompt: 五层 System Prompt
- core: ReAct 16 轮循环 + 自适应检查点 + 循环检测
- evolver: 四层记忆 + 进化循环,data/agentcli/ 文件存储

集成层:
- controller/agent_cli.go: WebSocket 控制器(事件流推流 + 高危确认 + 会话持久化)
- model/agent_cli.go: agent_cli_sessions/messages 表 + AutoMigrate
- 路由 /ws/agent-cli + /api/v1/aiops/agent-cli/sessions
- seed 权限 aiops:agent-cli / aiops:llm-config

前端:
- AgentCLI.tsx: 对话流 + 工具块 + 高危确认 + 四模块 tips 面板
- LLMConfig.tsx: 大模型设置独立页
- api/agentCli.ts + Sidebar/App 菜单路由

文档:
- docs/agent/ 11 篇(opsxcli 同名文档适配改写 + 00-README 映射总览)

其他:
- CLAUDE.md 补充 agent-cli 模块说明
- 修正 .gitignore 根级二进制规则(前导 /,避免误伤 frontend/src/components/aiops/)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 09:55:17 +08:00

AIOps 智能运维平台

企业级云原生智能运维解决方案,集成资产管理、Kubernetes 管理、应用发布、监控告警、自动化运维和 AI 智能分析。

技术栈

前端

  • React 19 + TypeScript + Vite
  • Tailwind CSS + shadcn/ui
  • Zustand (状态管理) / TanStack Query (数据获取)
  • Recharts (图表) / Lucide React (图标)
  • CodeMirror 6 (YAML 编辑器) / xterm.js (WebSocket 终端)

后端

  • Go 1.24 / Gin Web Framework
  • GORM (ORM) / MySQL 8.0 / Redis 7 / SQLite (local 模式)
  • JWT 认证 / Zap 日志 / Viper 配置
  • WebSocket (Gorilla) / PTY 终端 (creack/pty)
  • 自研轻量 Kubernetes HTTP 客户端(channel.k8s.io WebSocket 协议)
  • go:embed 嵌入前端静态资源(单二进制 / 单容器部署)

Agent

  • Go 1.24 静态编译 (CGO_ENABLED=0)
  • /proc 指标采集 + 远程任务双通道
  • 支持 linux-amd64 / linux-arm64 / darwin-arm64

三种部署方式

方式 命令 架构 适用场景
① 独立二进制 ./run.sh build → ./aiops 单文件 embed,输出到项目根目录 无 Docker/K8s,边缘/本机
② Docker Compose ./run.sh docker up 3 容器 (MySQL + Redis + AIOps embed) 单机生产、演示
③ Kubernetes ./run.sh kubernetes deploy embed 单容器 + MySQL/Redis StatefulSet 生产集群,devops 命名空间

统一入口 ./run.sh,详见 ./run.sh help。

版本与镜像

  • 发布版本:Git tag 为权威来源(如 v1.5.0)
  • Docker 镜像:lghost/aiops:<tag>(Docker Hub)
  • 二进制版本:./aiops version / GET /version
  • 一键发版:./run.sh release v1.5.0(打 tag → 编译二进制 → 构建镜像 → 推送 Docker Hub → 更新 K8s manifest)
docker login
./run.sh release v1.5.0
./aiops version                              # 查看二进制版本
curl http://localhost:8080/version           # 查看运行版本

快速开始

本地开发

./run.sh dev               # 前端 :5173 + 后端 :8080 (热重载)
./run.sh stop              # 停止
./run.sh status            # 查看状态

Docker Compose 部署

./run.sh docker up              # 构建并启动 (MySQL + Redis + AIOps)
./run.sh docker up v1.5.0       # 指定版本构建
./run.sh docker push v1.5.0     # 构建并推送到 lghost/aiops

# 访问(前后端同一端口)
# http://localhost:8080
# http://localhost:8080/version

Kubernetes 部署

./run.sh kubernetes deploy           # 构建镜像 + 全量部署
./run.sh kubernetes upgrade v1.5.0   # 指定版本滚动更新
./run.sh kubernetes push v1.5.0      # 构建并推送 Docker Hub

# 访问: http://<NODE_IP>:30080
# 镜像: lghost/aiops:<tag>

独立二进制部署

./run.sh build                    # 编译到项目根目录 ./aiops
./run.sh build tag v1.5.0         # 指定版本编译
./aiops version                   # 查看版本
./aiops --mode local              # 本地模式 (SQLite + redka)
./run.sh binary upgrade           # 停服 → 重编译 → 后台启动

Mac 上 ./run.sh build 产出 darwin 二进制,仅本机可用。
Linux 服务器请在 Linux 上构建,或使用 Docker/K8s embed 镜像(Dockerfile.embed 固定 GOOS=linux GOARCH=amd64)。

Agent 构建

./run.sh build agent       # 交叉编译 Agent (linux-amd64 + linux-arm64)

./agent/aiops-agent-linux-amd64 version

默认账号

用户名 密码 角色
admin 123456 超级管理员
ops01 123456 运维
dev01 123456 开发

项目结构

aiops/
├── frontend/                    # 前端 (React + TypeScript)
│   ├── src/components/          # dashboard/server/k8s/monitor/deploy/aiops...
│   └── Dockerfile               # [legacy] 独立 Nginx 镜像,Compose 已改用 embed
│
├── backend/                     # 后端 (Go + Gin)
│   ├── main.go                  # 应用入口
│   ├── embed.go                 # go:embed 前端静态资源
│   ├── static/                  # 前端构建产物(embed 目标目录)
│   ├── controller/              # HTTP 处理器
│   ├── router/                  # 路由注册
│   ├── model/                   # GORM 数据模型
│   ├── pkg/                     # database/kubernetesclient/remoteexec/...
│   └── Dockerfile               # [legacy] 分离式后端镜像
│
├── agent/                       # 监控 Agent(独立 Go module)
├── deploy/kubernetes/           # K8s 部署清单 (devops 命名空间)
├── docker-compose.yml           # MySQL + Redis + AIOps embed(3 容器)
├── docker-compose.k8s.yml       # 单应用容器(连接外部 DB)
├── Dockerfile.embed             # embed 单容器镜像(推荐)
├── run.sh                       # 统一入口脚本
└── aiops                        # 独立二进制产物(gitignore,项目根目录)

核心功能

模块 说明
仪表盘 成本统计、告警聚合、Top 资源、SSL 提醒、趋势图表
资产管理 服务器 CRUD、批量导入、WebShell、云账号/域名/账单
Kubernetes 管理 多集群、Deployment 三模式编辑器、Pod 终端/文件浏览、事件聚合
应用发布 CI/CD 流水线、发布配置、SSH + K8s 双路径部署
监控中心 监控大屏、主机指标、告警引擎、飞书/钉钉通知
自动化运维 定时任务、脚本库、远程执行(Go-native SSH)
AIOps 智能 AI 助手、告警分析、容量预测
资源申请 云服务器/应用部署申请审批
系统管理 用户/角色、操作审计、凭证配置

文档

详细开发文档见 docs/README.md。

文档 说明
快速开始 环境准备、本地开发
部署指南 二进制 / Docker / K8s / 版本发版
开发规范 代码规范、Git 工作流
项目结构 目录结构说明
CLAUDE.md AI 助手指引(完整命令参考)

License

MIT

S
Description
No description provided
Readme GPL-3.0
78 MiB
0 Stars 0 Watchers 0 Forks
Languages
TypeScript 62.9%
Go 35.2%
Shell 1%
CSS 0.4%
Python 0.2%
Other 0.2%