weisijie 15f2526e91 1. 重构了工作流变量作用域隔离机制,移除 WorkflowContext 中的扁平变量表与 scopeMode 兼容模式开关,所有执行路径统一采用节点命名空间({nodeId}__{varName})严格隔离,杜绝不同分支同名输出互相覆盖。 1 mês atrás
..
embedding-bridge 94a9f24a5d 1. 实现了 RAG AI Bridge 进程管理器,由 Java 端通过 ProcessBuilder 启动 Python 服务并以环境变量注入 LLM 配置,替代原有独立进程启动方式,统一了模型配置的下发链路; 1 mês atrás
hermes-bridge 3511de4315 1. 实现了本地 Embedding Bridge 服务,Spring Boot 自动管理 Python 子进程生命周期,提供分块与向量接口; 1 mês atrás
rag-ai-bridge 94a9f24a5d 1. 实现了 RAG AI Bridge 进程管理器,由 Java 端通过 ProcessBuilder 启动 Python 服务并以环境变量注入 LLM 配置,替代原有独立进程启动方式,统一了模型配置的下发链路; 1 mês atrás
src 15f2526e91 1. 重构了工作流变量作用域隔离机制,移除 WorkflowContext 中的扁平变量表与 scopeMode 兼容模式开关,所有执行路径统一采用节点命名空间({nodeId}__{varName})严格隔离,杜绝不同分支同名输出互相覆盖。 1 mês atrás
README.md 9c30f04853 1. 实现了工作流上下文透传架构,节点输出按声明的 outputs 变量名写入上下文,并保留每个节点执行后的完整 variables 快照供 debug 视图展开查看; 2 meses atrás
pom.xml 8ebf17fff5 1. 实现了工作流外部调用 REST API,支持 JSON 变量输入、文件/目录上传、流式思考输出与工作空间下载,配套 X-Bridge-Token 鉴权 Filter 与 SSE 事件总线; 1 mês atrás

README.md

Agent Management

智能体管理和编排平台 —— 基于 Spring Boot + Spring AI 的可视化工作流编排与智能体执行平台。

通过拖拽式的节点编排构建 AI 工作流,支持 LLM 调用、智能体执行、条件分支、用户输入等多种节点类型,并通过内置的 Hermes Bridge 委托执行引擎,获得终端、浏览器、搜索等 40+ 工具与 Skill 系统的真实执行能力。


✨ 核心功能

  • 可视化工作流编排 — 基于 DAG(有向无环图)的节点式编排引擎,支持多种节点类型与依赖解析
  • 节点执行器 — 内置 LLM、Agent、SmartAction、Condition、UserInput、Output 等节点执行器
  • AI 模型管理 — 多模型配置、默认模型、优先级排序、连通性测试、远程模型列表拉取
  • 技能(Skill)管理 — Skill 的上传、编辑、版本管理、回滚、文件级操作,基于 Markdown(SKILL.md)描述
  • 标签系统 — 标签组 / 标签的多级管理、跨对象打标、批量导入导出
  • 分类体系 — 技能分类、工作流分类的树形管理与拖拽排序
  • 工作流版本管理 — 版本快照、历史回滚、版本说明编辑
  • 运行历史与产物 — 每次运行的节点日志、运行产物打包下载
  • 实时推送 — 基于 SSE(Server-Sent Events)的工作流执行进度与流式翻译推送
  • Hermes 执行引擎集成 — 通过 Python 桥接调用 Hermes Agent,获得真实工具执行能力

🏗️ 技术栈

层级 技术 说明
语言 / 运行时 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

🚀 快速开始

环境要求

  • JDK 17+
  • Maven 3.8+
  • Python 3(仅在启用 Hermes 执行引擎时需要,用于运行桥接脚本)

构建与运行

# 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 概览

所有接口统一前缀 /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+ 工具)

Hermes 桥接

当工作流中包含 agent / smartAction 节点时,引擎通过 HermesProcessManager 拉起一个常驻的 Python 进程(hermes-bridge/hermes_bridge.py),并经 HermesBridgeClient 通过本地 HTTP 端口(默认 18731)与之通信。该桥接将节点执行委托给 Hermes Agent,从而获得终端、浏览器、搜索等真实工具调用能力及 Skill 系统。

  • 使用前需安装依赖:pip install -r hermes-bridge/requirements.txt
  • 关闭时设置 HERMES_ENABLED=false,相关节点将回退为本地执行(仅文本对话,无工具能力)

📦 部署

  • 构建产物mvn clean package -DskipTests 生成可执行单包 target/agent-management-1.0.0.jar
  • 前端托管:项目通过 SpaController 提供前端单页应用(SPA)托管,前端打包产物(src/main/resources/static/)由后端静态资源服务直接提供,可单包一体化部署
  • 运行数据data/uploads/ 为运行态目录,部署时需保证可写;H2 数据库以文件形式存储于 ./data/agent-runs

📄 许可证

TODO(暂未声明开源许可证,默认保留所有权利)