Skip to content

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 即可启动全套服务

🛠️ 技术栈

后端

技术版本用途
Java17运行时
Spring Boot3.2.5应用框架
Spring Data JPAORM / 数据访问
Spring Security认证授权(RBAC)
PostgreSQL 1616 + pgvector主数据库 + 向量存储
Redis7缓存
Flyway数据库迁移
OkHttp4.12LLM API 调用
jjwt0.12.5JWT Token

前端

技术版本用途
React18.2UI 框架
TypeScript5.3类型安全
Ant Design5.15UI 组件库
ReactFlow11.11工作流编辑器
Zustand4.5状态管理
React Router6.22路由
Axios1.6HTTP 客户端
Vite5.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当前时间获取当前日期时间
2HTTP 请求调用外部 API(GET/POST/PUT/DELETE)
3天气查询查询指定城市天气
4翻译多语言翻译
5文件读写文件上传下载和内容读取
6代码执行沙箱执行 Python/JS 代码
7数据库查询执行 SQL 查询
8企微消息推送发送企业微信消息
9Playwright 网页自动化浏览器自动化操作
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

首次使用

  1. 注册管理员账号(首次注册自动成为 admin)
  2. 在「模型配置」页面添加 LLM API 密钥
  3. 创建应用 → 配置 System Prompt 和模型
  4. 开始对话或编排工作流

📡 核心 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、Markdown
http
POST /api/datasets/{id}/retrieve
Content-Type: application/json

{
  "query": "检索内容",
  "top_k": 5
}

🏗️ 架构设计

Agent 引擎

采用 ReAct(Reasoning + Acting)模式:

  1. 推理:LLM 分析用户意图,决定调用哪些工具
  2. 行动:执行工具调用,获取结果
  3. 观察:将结果反馈给 LLM,继续推理
  4. 循环直到任务完成

工作流引擎

基于 DAG(有向无环图)调度:

  • LLM 节点:调用大模型生成内容
  • 知识检索节点:从知识库检索相关文档
  • 代码执行节点:沙箱执行代码
  • 条件分支节点:IF/ELSE 条件路由
  • 支持自定义节点扩展

RAG 流程

  1. 文档上传 → 文本提取(支持 11 种格式:PDF/DOCX/DOC/XLSX/XLS/CSV/TXT/PPTX/PPT/HTML/JSON/Markdown)
  2. 文本分段(按段落/句子切分)
  3. Embedding 向量化(调用 Embedding API)
  4. 存储到 pgvector 向量数据库
  5. 查询时语义检索 Top-K 结果
  6. 检索结果注入 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 重排序

🔗 相关资源


本文最后更新:2026-04-10(v1.1 - 知识库扩展 11 种文档格式支持)

MIT