AgentHub - 开源 AI 智能体构建平台完全指南
类似 Dify / Coze 的开源智能体构建平台——可视化编排工作流、多模型接入、RAG 知识库、内置工具链,一键 Docker 部署。
✨ 核心特性
- 🎨 可视化工作流编辑器 — 基于 ReactFlow 的拖拽式 DAG 编排,支持多种节点类型
- 🧠 多模型支持 — 兼容 OpenAI API 格式,可接入 GPT / Claude / 通义千问 / DeepSeek 等
- 📚 RAG 知识库 — 文档自动分段 + 向量化(Milvus/pgvector),支持语义检索增强生成
- 🔧 内置 10 种工具 — HTTP 请求、天气查询、代码执行、网页自动化、论文检索等
- 💬 SSE 流式对话 — Server-Sent Events 实时流式输出,体验流畅
- 🔐 JWT 认证 — Spring Security + JWT Token,支持注册/登录/RBAC 鉴权
- 🐳 Docker 一键部署 —
bash deploy.sh即可启动全套服务
🛠️ 技术栈
后端
| 技术 | 版本 | 用途 |
|---|---|---|
| Java | 17 | 运行时 |
| Spring Boot | 3.2.5 | 应用框架 |
| Spring Data JPA | — | ORM / 数据访问 |
| Spring Security | — | 认证授权(RBAC) |
| PostgreSQL 16 | 16 + pgvector | 主数据库 + 向量存储 |
| Redis | 7 | 缓存 |
| Flyway | — | 数据库迁移 |
| OkHttp | 4.12 | LLM API 调用 |
| jjwt | 0.12.5 | JWT Token |
前端
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18.2 | UI 框架 |
| TypeScript | 5.3 | 类型安全 |
| Ant Design | 5.15 | UI 组件库 |
| ReactFlow | 11.11 | 工作流编辑器 |
| Zustand | 4.5 | 状态管理 |
| React Router | 6.22 | 路由 |
| Axios | 1.6 | HTTP 客户端 |
| Vite | 5.1 | 构建工具 |
部署架构
- Docker + Docker Compose
- PostgreSQL 16 (pgvector) — 主数据库兼向量存储
- Redis 7 (Alpine) — 缓存
- Nginx — 前端容器内反向代理后端
📁 项目结构
agent-platform/
├── backend/ # Spring Boot 后端
│ ├── src/main/java/com/agenthub/
│ │ ├── controller/ # REST API 控制器
│ │ ├── service/ # 业务逻辑层
│ │ ├── model/ # JPA 实体
│ │ ├── repository/ # 数据访问层
│ │ ├── config/ # 配置类(Security / Redis)
│ │ ├── common/ # 通用工具
│ │ └── core/ # 核心引擎
│ │ ├── agent/ # Agent 引擎(ReAct 模式)
│ │ ├── workflow/ # 工作流引擎(DAG 调度)
│ │ ├── llm/ # LLM 网关(OpenAI 兼容)
│ │ ├── rag/ # RAG 检索增强
│ │ └── tools/ # 工具注册中心
│ ├── src/main/resources/
│ │ ├── application.yml
│ │ └── db/migration/ # Flyway 迁移脚本
│ └── pom.xml
├── frontend/ # React 前端
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ │ ├── Apps.tsx # 应用列表
│ │ │ ├── Chat.tsx # 对话界面
│ │ │ ├── WorkflowEditor.tsx # 工作流编辑器
│ │ │ ├── Datasets.tsx # 知识库管理
│ │ │ ├── Tools.tsx # 工具管理
│ │ │ └── Settings.tsx # 系统设置
│ │ ├── components/ # 通用组件
│ │ ├── services/ # API 服务层
│ │ ├── stores/ # Zustand 状态管理
│ │ └── types/ # TypeScript 类型定义
│ └── package.json
├── deploy.sh # 一键部署脚本
├── docker-compose.yml # 容器编排
└── docs/ # 项目文档🔧 内置工具(10 种)
| # | 工具 | 说明 |
|---|---|---|
| 1 | 当前时间 | 获取当前日期时间 |
| 2 | HTTP 请求 | 调用外部 API(GET/POST/PUT/DELETE) |
| 3 | 天气查询 | 查询指定城市天气 |
| 4 | 翻译 | 多语言翻译 |
| 5 | 文件读写 | 文件上传下载和内容读取 |
| 6 | 代码执行 | 沙箱执行 Python/JS 代码 |
| 7 | 数据库查询 | 执行 SQL 查询 |
| 8 | 企微消息推送 | 发送企业微信消息 |
| 9 | Playwright 网页自动化 | 浏览器自动化操作 |
| 10 | 论文检索 | Arxiv / 学术搜索 |
🚀 快速开始
环境要求
- Docker 20.10+
- Docker Compose v2+
- 至少 4GB 内存
一键部署
bash
git clone https://github.com/pjd206/agent-platform.git
cd agent-platform
bash deploy.sh部署完成后访问:
- 前端:
http://localhost:3000 - 后端 API:
http://localhost:8080/api
首次使用
- 注册管理员账号(首次注册自动成为 admin)
- 在「模型配置」页面添加 LLM API 密钥
- 创建应用 → 配置 System Prompt 和模型
- 开始对话或编排工作流
📡 核心 API
对话
http
POST /api/chat/chat
Content-Type: application/json
{
"app_id": 1,
"query": "你好"
}工作流
http
POST /api/workflows/{id}/run
Content-Type: application/json
{
"variables": { "input": "分析这段文本" }
}知识库
http
POST /api/datasets/{id}/documents/upload
Content-Type: multipart/form-data
# 支持格式:PDF、DOCX、DOC、XLSX、XLS、CSV、TXT、PPTX、PPT、HTML、JSON、Markdownhttp
POST /api/datasets/{id}/retrieve
Content-Type: application/json
{
"query": "检索内容",
"top_k": 5
}🏗️ 架构设计
Agent 引擎
采用 ReAct(Reasoning + Acting)模式:
- 推理:LLM 分析用户意图,决定调用哪些工具
- 行动:执行工具调用,获取结果
- 观察:将结果反馈给 LLM,继续推理
- 循环直到任务完成
工作流引擎
基于 DAG(有向无环图)调度:
- LLM 节点:调用大模型生成内容
- 知识检索节点:从知识库检索相关文档
- 代码执行节点:沙箱执行代码
- 条件分支节点:IF/ELSE 条件路由
- 支持自定义节点扩展
RAG 流程
- 文档上传 → 文本提取(支持 11 种格式:PDF/DOCX/DOC/XLSX/XLS/CSV/TXT/PPTX/PPT/HTML/JSON/Markdown)
- 文本分段(按段落/句子切分)
- Embedding 向量化(调用 Embedding API)
- 存储到 pgvector 向量数据库
- 查询时语义检索 Top-K 结果
- 检索结果注入 LLM Prompt
文档解析技术:
- PPTX/PPT/DOC:Apache POI(poi-scratchpad 5.2.5)
- HTML:jsoup(1.18.1)
- JSON:Jackson 格式化
- Markdown:保留结构提取纯文本
- PDF/DOCX/XLSX/XLS/CSV/TXT:Apache PDFBox / POI
📊 开发进度
已完成 ✅
- 登录/注册/RBAC 权限管理
- 应用 CRUD + 应用配置
- 模型配置 CRUD + 测试连接
- 对话创建 + SSE 流式消息 + 历史加载/删除
- 可视化工作流编辑器(ReactFlow)
- 工作流节点:LLM、知识检索、代码执行、条件分支
- RAG 知识库(v1.1):
- 文档上传、分段、向量化、语义检索
- 扩展支持 11 种文档格式:PDF、DOCX、DOC、XLSX、XLS、CSV、TXT、PPTX、PPT、HTML、JSON、Markdown
- PPTX/PPT/DOC 使用 Apache POI 解析
- HTML 使用 jsoup 解析(过滤 script/style)
- JSON 使用 Jackson 格式化
- Markdown 保留结构提取纯文本
- 内置工具系统 + Function Calling
- Token 用量统计
- 对话日志记录
- Docker 一键部署
开发中 🔧
- 工具 OpenAPI Schema 定义
- Anthropic 原生适配
- Ollama 本地模型接入
- 混合检索(向量 + 关键词)
规划中 📋
- 多租户(团队/项目)
- 多 Agent 协作/路由
- 应用模板市场
- 应用发布为 WebApp
- SSO 单点登录
- Rerank 重排序
🔗 相关资源
- GitHub 仓库:pjd206/agent-platform
- 在线体验:http://47.253.246.6
- 技术栈:Spring Boot 3.2 + React 18 + pgvector + Docker
本文最后更新:2026-04-10(v1.1 - 知识库扩展 11 种文档格式支持)