|
|
6 napja | |
|---|---|---|
| .. | ||
| embedding-bridge | 1 hónapja | |
| hermes-bridge | 6 napja | |
| rag-ai-bridge | 1 hónapja | |
| src | 6 napja | |
| README.md | 2 hónapja | |
| index.html | 6 napja | |
| pom.xml | 4 hete | |
智能体管理和编排平台 —— 基于 Spring Boot + Spring AI 的可视化工作流编排与智能体执行平台。
通过拖拽式的节点编排构建 AI 工作流,支持 LLM 调用、智能体执行、条件分支、用户输入等多种节点类型,并通过内置的 Hermes Bridge 委托执行引擎,获得终端、浏览器、搜索等 40+ 工具与 Skill 系统的真实执行能力。
| 层级 | 技术 | 说明 |
|---|---|---|
| 语言 / 运行时 | Java 17 | — |
| 框架 | Spring Boot 3.3.6 | 主框架 |
| AI 集成 | Spring AI 1.0.0 | OpenAI 兼容接口,可对接智谱 GLM 等 |
| Web | Spring Web + WebSocket | REST API 与实时通信 |
| 数据持久化 | Spring Data JPA + H2 | H2 文件库存储运行日志 |
| 配置数据存储 | JSON 文件(自定义) | 工作流 / 模型 / 标签等配置类数据 |
| 文件处理 | Commons IO 2.18.0 / Commons Compress 1.26.2 | 文件操作与产物打包 |
| 工具库 | Lombok | 样板代码消除 |
| 前端 | Vue 3 + Vite | SPA 单页应用,打包后由后端静态资源服务托管 |
| 执行引擎 | Python + Hermes Agent | 通过 HTTP 桥接,提供 40+ 工具与 Skill 系统 |
backend/
├── src/main/java/com/agent/management/
│ ├── AgentManagementApplication.java # Spring Boot 启动类
│ ├── common/ # 统一响应 Result、全局异常处理
│ ├── config/ # 配置类(Hermes / Skill / JsonStore / WebMvc / SPA 等)
│ ├── controller/ # REST API 控制器
│ ├── engine/ # ⭐ 工作流执行引擎
│ │ ├── WorkflowEngine.java # 引擎主流程
│ │ ├── DagResolver.java # DAG 依赖解析
│ │ ├── TemplateRenderer.java # 模板变量渲染
│ │ ├── executor/ # 节点执行器
│ │ │ ├── LlmExecutor # LLM 调用节点
│ │ │ ├── AgentExecutor / HermesAgentExecutor # 智能体节点
│ │ │ ├── SmartActionExecutor / HermesSmartActionExecutor # 智能动作节点
│ │ │ ├── ConditionExecutor # 条件分支节点
│ │ │ ├── UserInputExecutor # 用户输入节点
│ │ │ └── OutputExecutor # 输出节点
│ │ └── hermes/ # Hermes 桥接
│ │ ├── HermesBridgeClient # HTTP 桥接客户端
│ │ └── HermesProcessManager # Python 进程生命周期管理
│ ├── model/ # 数据模型(entity / dto / vo)
│ ├── parser/ # SkillMarkdownParser(技能描述解析)
│ ├── repository/ # JPA 仓库 + JSON 文件仓库
│ └── service/ # 业务服务层
├── src/main/resources/
│ ├── application.yml # 主配置文件
│ ├── application.yml.example # 配置模板(脱敏)
│ ├── logback-spring.xml # 日志配置
│ └── static/ # 前端打包产物(SPA)
├── hermes-bridge/ # Python 桥接脚本
│ ├── hermes_bridge.py # 桥接主程序
│ └── requirements.txt # Python 依赖
├── hermes-agent/ # Hermes Agent 执行引擎源码(独立项目)
├── data/ # 运行数据
│ ├── agent-runs.mv.db # H2 数据库(运行日志)
│ ├── json/ # JSON 配置存储(模型/标签/工作流等)
│ ├── workflow-runs/ # 每次工作流运行的文件与产物
│ └── workflow-versions/ # 工作流版本快照
├── uploads/ # 技能文件上传目录
├── logs/ # 应用日志
├── pom.xml # Maven 构建文件
└── README.md
# 1. 安装 Hermes Bridge Python 依赖(如需启用执行引擎)
pip install -r hermes-bridge/requirements.txt
# 2. 编译打包(跳过测试)
mvn clean package -DskipTests
# 3. 运行
java -jar target/agent-management-1.0.0.jar
# 或开发模式
mvn spring-boot:run
启动后访问:http://localhost:2438
配置位于 src/main/resources/application.yml,关键配置项均可通过环境变量覆盖。
项目同时提供 application.yml.example 作为脱敏模板。
| 配置项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
| 服务端口 | — | 2438 |
后端 HTTP 端口 |
| 技能基础路径 | SKILL_BASE_PATH |
./uploads/skills |
技能文件存储目录 |
| JSON 存储目录 | JSON_STORE_DIR |
./data/json |
配置类数据(模型/标签/工作流等) |
| 工作流运行目录 | WORKFLOW_RUN_DIR |
./data/workflow-runs |
每次运行的文件与产物 |
| 启用 Hermes | HERMES_ENABLED |
true |
是否启用 Hermes 执行引擎 |
| 桥接端口 | HERMES_BRIDGE_PORT |
18731 |
Python 桥接服务本地端口 |
| Python 路径 | HERMES_PYTHON_PATH |
python |
Python 可执行文件路径 |
| 桥接脚本路径 | HERMES_SCRIPT_PATH |
hermes-bridge/hermes_bridge.py |
桥接脚本位置 |
| OpenAI 兼容 Base URL | — | https://open.bigmodel.cn/api/coding/paas/v4 |
AI 服务接口地址 |
| API Key | OPENAI_API_KEY |
⚠️ 请务必通过环境变量设置 | AI 服务密钥(切勿提交明文) |
| 默认模型 | — | glm-5.2 |
默认调用的大语言模型 |
| 上传大小上限 | — | 50MB |
文件上传最大体积 |
安全提示:生产环境务必通过
OPENAI_API_KEY环境变量注入密钥,不要在application.yml中硬编码。
所有接口统一前缀 /api,响应体使用 common.Result 统一封装。
| 模块 | 基础路径 | 主要能力 |
|---|---|---|
| AI 模型管理 | /api/models |
模型 CRUD、设为默认、优先级排序、连通性测试、拉取远程模型列表 |
| 工作流管理 | /api/workflows |
工作流 CRUD、分类、运行(SSE 流式)、版本管理、回滚、运行产物下载、自动关联 |
| 技能管理 | /api/skills |
技能上传/编辑/删除、SKILL.md 编辑、文件级 CRUD、版本管理与回滚 |
| 工作流分类 | /api/wf-categories |
分类树 CRUD、移动排序 |
| 技能分类 | /api/categories |
分类树 CRUD、移动排序 |
| 标签系统 | /api/tags |
标签组/标签 CRUD、移动、导入/导出、跨对象打标 |
| 运行历史 | /api/run-history |
工作流运行历史列表、运行详情、删除 |
| 翻译(SSE) | /api/translations |
/stream 流式订阅、/translate 触发翻译 |
engine/WorkflowEngine 是核心调度器,配合 DagResolver 解析节点依赖拓扑,依次驱动各节点执行器(NodeExecutor 实现):
工作流 JSON 定义
│
▼
DagResolver(依赖拓扑排序)
│
▼
WorkflowEngine(逐节点调度)
│
├──► LlmExecutor 直接调用 Spring AI / OpenAI 兼容接口
├──► ConditionExecutor 条件分支判定
├──► UserInputExecutor 等待用户输入
├──► OutputExecutor 输出汇总
├──► AgentExecutor ──────┐
└──► SmartActionExecutor ┤ 委托
▼
Hermes Bridge Client(HTTP)
│
▼
Hermes Agent(Python,40+ 工具)
当工作流中包含 agent / smartAction 节点时,引擎通过 HermesProcessManager 拉起一个常驻的 Python 进程(hermes-bridge/hermes_bridge.py),并经 HermesBridgeClient 通过本地 HTTP 端口(默认 18731)与之通信。该桥接将节点执行委托给 Hermes Agent,从而获得终端、浏览器、搜索等真实工具调用能力及 Skill 系统。
pip install -r hermes-bridge/requirements.txtHERMES_ENABLED=false,相关节点将回退为本地执行(仅文本对话,无工具能力)mvn clean package -DskipTests 生成可执行单包 target/agent-management-1.0.0.jarSpaController 提供前端单页应用(SPA)托管,前端打包产物(src/main/resources/static/)由后端静态资源服务直接提供,可单包一体化部署data/ 与 uploads/ 为运行态目录,部署时需保证可写;H2 数据库以文件形式存储于 ./data/agent-runsTODO(暂未声明开源许可证,默认保留所有权利)