Skip to content

Repository files navigation

SuperBizAgent(OpsPilot 运维助手)

基于 CloudWeGo Eino 框架构建的智能运维助手系统,集成 RAG 知识库、AI Agent、告警监控、日志查询等企业级运维能力。


项目简介

SuperBizAgent 是一个面向运维场景的 AI Agent 平台,通过大语言模型驱动的智能对话、知识检索、自动化运维等能力,帮助企业提升运维效率。项目采用模块化设计,支持多种 AI 模型、向量数据库和工具扩展。


技术栈

核心框架

技术 版本 说明
Go 1.24.0+ 编程语言
GoFrame v2.10.0 Web 框架,提供路由、配置、中间件等能力
CloudWeGo Eino v0.6.0 AI 应用开发框架,支持 LLM 编排
GORM v1.31.0 ORM 框架

AI 能力

技术 说明
OpenAI API 大语言模型接口
火山引擎豆包 (Doubao) 国产大语言模型
Eino-ext Eino 扩展组件库

数据存储

技术 版本 说明
Milvus v2.5.10 向量数据库,用于 RAG 知识检索
MySQL - 关系型数据库
Redis - 向量检索缓存

工具集成

技术 说明
MCP (Model Context Protocol) 工具协议,支持云端工具接入
Prometheus 监控告警系统
SMTP 邮件通知服务

基础设施

技术 说明
Docker 容器化部署
Docker Compose 服务编排

核心功能

1. 智能对话 (Chat Pipeline)

支持多轮对话、上下文记忆的智能助手能力。

用户提问 → 意图理解 → 工具调用 → 结果生成 → 流式响应

特性:

  • 多轮对话记忆
  • 流式响应 (SSE)
  • 支持多种 LLM 模型切换

2. RAG 知识库问答

基于检索增强生成的企业知识库问答系统。

流程:

文档加载 → 文本切分 → 向量化 → Milvus 存储
                                              ↓
用户提问 → 向量检索 ← 相关文档召回 ←───────┘
                ↓
        Prompt 组装 → LLM 生成答案

支持的文档类型:

  • Markdown 文档
  • 文本文件
  • 可扩展其他格式

3. AI 运维 (AIOps)

自动化运维场景,包括告警分析、故障诊断、自动处理等。

能力:

  • Prometheus 告警自动分析
  • 告警根因定位
  • 处理方案推荐
  • 自动化通知

4. Plan-Execute-Replan Agent

复杂任务的规划执行代理,支持多步骤任务编排。

工作流程:

任务输入 → 计划制定 → 执行 → 评估 → 重规划(如需要) → 结果输出

5. 工具集

项目内置丰富的运维工具:

工具名称 功能说明
query_prometheus_alerts 查询 Prometheus 活跃告警
query_log 通过 MCP 查询日志(腾讯云 CLS)
query_internal_docs 查询内部运维文档
query_metrics 查询监控指标
send_email 发送邮件通知
mysql_crud MySQL 数据库操作
get_current_time 获取当前时间
weather_query 天气查询
duckduckgo_search DuckDuckGo 搜索
google_search Google 搜索

API 接口

对话接口

POST /api/chat
Content-Type: application/json

{
  "id": "session_id",
  "question": "你好"
}

响应:

{
  "answer": "你好!我是 OpsPilot 运维助手..."
}

流式对话

POST /api/chat_stream
Content-Type: application/json

{
  "id": "session_id",
  "question": "帮我查询当前的告警"
}

返回 Server-Sent Events (SSE) 流式数据。

文件上传

POST /api/upload
Content-Type: multipart/form-data

file: [文件内容]

响应:

{
  "fileName": "document.pdf",
  "filePath": "/path/to/file",
  "fileSize": 102400
}

AI 运维

POST /api/ai_ops
Content-Type: application/json

{
  // 运维任务参数
}

响应:

{
  "result": "处理结果",
  "detail": ["步骤1", "步骤2"]
}

项目结构

SuperBizAgent/
├── api/                          # API 定义
│   └── chat/
│       └── v1/chat.go            # 请求/响应结构定义
├── internal/                     # 内部模块
│   ├── ai/                       # AI 相关模块
│   │   ├── agent/                # Agent 实现
│   │   │   ├── chat_pipeline/    # 对话流程
│   │   │   ├── knowledge_index_pipeline/  # 知识索引
│   │   │   └── plan_execute_replan/       # 规划执行
│   │   ├── cmd/                  # 命令行入口
│   │   │   ├── chat_cmd/         # 对话命令
│   │   │   ├── knowledge_cmd/    # 知识库命令
│   │   │   ├── ai_ops_cmd/       # AI运维命令
│   │   │   └── llm_tool_cmd/     # LLM工具命令
│   │   ├── tools/                # 工具实现
│   │   │   ├── notification.go   # 邮件通知
│   │   │   ├── query_log.go      # 日志查询
│   │   │   ├── query_metrics_alerts.go  # 告警查询
│   │   │   ├── mysql_crud.go     # 数据库操作
│   │   │   └── ...
│   │   ├── embedder/             # 向量嵌入
│   │   ├── indexer/              # 索引器
│   │   ├── retriever/            # 检索器
│   │   ├── loader/               # 文档加载
│   │   └── ingest/               # 数据摄入
│   ├── consts/                   # 常量定义
│   ├── controller/               # 控制器
│   └── logic/                    # 业务逻辑
├── manifest/                     # 配置文件
│   ├── config/config.yaml        # 应用配置
│   └── docker/                   # Docker 配置
│       ├── docker-compose.yml    # 服务编排
│       └── Dockerfile
├── utility/                      # 工具库
│   ├── common/                   # 公共工具
│   ├── middleware/               # 中间件
│   └── mem/                      # 内存管理
├── test/                         # 测试文件
├── chat_cmd_workflow.json        # 工作流定义
├── main.go                       # 主入口
├── go.mod                        # Go 模块定义
└── go.sum                        # 依赖校验

快速开始

环境要求

  • Go 1.24.0+
  • Docker & Docker Compose
  • MySQL (可选)
  • Milvus 向量数据库

1. 启动依赖服务

cd manifest/docker
docker-compose up -d

这将启动:

  • Milvus 向量数据库 (端口: 19530)
  • Attu 管理界面 (端口: 8000)
  • etcd (Milvus 依赖)
  • MinIO (Milvus 依赖)

2. 配置应用

编辑 manifest/config/config.yaml

# 大模型配置
doubao_chat_model:
  api_key: "your-api-key"
  model: "doubao-model-name"

# 向量模型配置
doubao_embedding_model:
  api_key: "your-api-key"
  model: "doubao-embedding-model"

# 邮件服务配置
smtp:
  host: "smtp.example.com"
  port: 587
  from_email: "your-email@example.com"
  from_password: "your-password-or-token"
  from_name: "OpsPilot 运维助手"

3. 安装依赖

go mod download

4. 运行服务

go run main.go

服务将在端口 6872 启动。

5. 测试接口

# 对话测试
curl -X POST http://localhost:6872/api/chat \
  -H "Content-Type: application/json" \
  -d '{"id":"test","question":"你好"}'

配置说明

大模型配置

支持多种 LLM 后端:

# OpenAI
openai_chat_model:
  api_key: "sk-xxx"
  model: "gpt-4"
  base_url: "https://api.openai.com/v1"

# 火山引擎豆包
doubao_chat_model:
  api_key: "xxx"
  model: "doubao-pro-32k"

向量数据库配置

Milvus 连接配置在代码中设置,默认连接本地服务:

// 默认配置
milvusConfig := milvus.Config{
    Address: "localhost:19530",
}

MCP 工具配置

MCP (Model Context Protocol) 用于接入云端工具:

cls_mcp_url: "https://mcp-api.tencent-cloud.com/sse/xxx"

工作流

项目使用可视化工作流编排,配置文件为 chat_cmd_workflow.json

工作流示例:

[Start] 
   │
   ├──→ [InputToRag] ──→ [MilvusRetriever] ──┐
   │                                          │
   └──→ [InputToChat] ───────────────────────┴──→ [ChatTemplate] ──→ [ReAct Agent] ──→ [End]

工作流包含:

  • 聊天模板 (ChatTemplate)
  • ReAct Agent (推理-行动代理)
  • 向量检索器 (Retriever)
  • 多种工具 (DuckDuckGo, Google 搜索等)

扩展开发

添加新工具

  1. internal/ai/tools/ 创建新文件:
package tools

import (
    "context"
    "github.com/cloudwego/eino/components/tool"
    "github.com/cloudwego/eino/components/tool/utils"
)

func NewMyCustomTool() tool.InvokableTool {
    t, err := utils.InferOptionableTool(
        "my_custom_tool",
        "Tool description here",
        func(ctx context.Context, input *MyInput) (string, error) {
            // 实现工具逻辑
            return "result", nil
        })
    if err != nil {
        return nil
    }
    return t
}
  1. 在 Agent 中注册工具。

添加新的 Agent

参考 internal/ai/agent/chat_pipeline/ 实现自定义 Agent 流程。


部署

Docker 部署

# 构建镜像
cd manifest/docker
docker build -t superbizagent:latest .

# 运行容器
docker run -d \
  -p 6872:6872 \
  -v ./config:/app/config \
  superbizagent:latest

生产环境建议

  1. 使用环境变量管理敏感配置
  2. 配置日志收集
  3. 启用监控告警
  4. 配置 HTTPS
  5. 使用外部 MySQL 和 Milvus 集群

注意事项

  1. API Key 安全:不要将 API Key 提交到代码仓库,使用环境变量或密钥管理服务
  2. MCP URL:使用 MCP 工具需要先在腾讯云申请 MCP 服务 URL
  3. 邮件配置:邮件发送需要 SMTP 授权码,非登录密码
  4. 资源要求:Milvus 建议至少 4GB 内存

许可证

本项目仅供学习和研究使用。


贡献

欢迎提交 Issue 和 Pull Request。

About

运维平台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages