基于 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 框架 |
| 技术 | 说明 |
|---|---|
| OpenAI API | 大语言模型接口 |
| 火山引擎豆包 (Doubao) | 国产大语言模型 |
| Eino-ext | Eino 扩展组件库 |
| 技术 | 版本 | 说明 |
|---|---|---|
| Milvus | v2.5.10 | 向量数据库,用于 RAG 知识检索 |
| MySQL | - | 关系型数据库 |
| Redis | - | 向量检索缓存 |
| 技术 | 说明 |
|---|---|
| MCP (Model Context Protocol) | 工具协议,支持云端工具接入 |
| Prometheus | 监控告警系统 |
| SMTP | 邮件通知服务 |
| 技术 | 说明 |
|---|---|
| Docker | 容器化部署 |
| Docker Compose | 服务编排 |
支持多轮对话、上下文记忆的智能助手能力。
用户提问 → 意图理解 → 工具调用 → 结果生成 → 流式响应
特性:
- 多轮对话记忆
- 流式响应 (SSE)
- 支持多种 LLM 模型切换
基于检索增强生成的企业知识库问答系统。
流程:
文档加载 → 文本切分 → 向量化 → Milvus 存储
↓
用户提问 → 向量检索 ← 相关文档召回 ←───────┘
↓
Prompt 组装 → LLM 生成答案
支持的文档类型:
- Markdown 文档
- 文本文件
- 可扩展其他格式
自动化运维场景,包括告警分析、故障诊断、自动处理等。
能力:
- Prometheus 告警自动分析
- 告警根因定位
- 处理方案推荐
- 自动化通知
复杂任务的规划执行代理,支持多步骤任务编排。
工作流程:
任务输入 → 计划制定 → 执行 → 评估 → 重规划(如需要) → 结果输出
项目内置丰富的运维工具:
| 工具名称 | 功能说明 |
|---|---|
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 搜索 |
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
}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 向量数据库
cd manifest/docker
docker-compose up -d这将启动:
- Milvus 向量数据库 (端口: 19530)
- Attu 管理界面 (端口: 8000)
- etcd (Milvus 依赖)
- MinIO (Milvus 依赖)
编辑 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 运维助手"go mod downloadgo run main.go服务将在端口 6872 启动。
# 对话测试
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 (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 搜索等)
- 在
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
}- 在 Agent 中注册工具。
参考 internal/ai/agent/chat_pipeline/ 实现自定义 Agent 流程。
# 构建镜像
cd manifest/docker
docker build -t superbizagent:latest .
# 运行容器
docker run -d \
-p 6872:6872 \
-v ./config:/app/config \
superbizagent:latest- 使用环境变量管理敏感配置
- 配置日志收集
- 启用监控告警
- 配置 HTTPS
- 使用外部 MySQL 和 Milvus 集群
- API Key 安全:不要将 API Key 提交到代码仓库,使用环境变量或密钥管理服务
- MCP URL:使用 MCP 工具需要先在腾讯云申请 MCP 服务 URL
- 邮件配置:邮件发送需要 SMTP 授权码,非登录密码
- 资源要求:Milvus 建议至少 4GB 内存
本项目仅供学习和研究使用。
欢迎提交 Issue 和 Pull Request。