用纯 Java 做一个企业级 Agent Harness 平台:BizBuddy 的设计与取舍

2 阅读6分钟

我们为什么把「智能体内核」放进一个成熟的 Java 中台里,而不是再起一套 Python 服务。

一、企业要的不是「能聊天的机器人」

过去两年,几乎每个团队都搭过一个 Agent Demo:接一个大模型 API,挂几个函数,就能对话、能查数据、能写记录。Demo 到生产之间,隔着几道很硬的墙:

  1. 权限:谁可以用?能查哪个部门的数据?能不能删记录?——企业里没有「匿名全能 Bot」这种东西。
  2. 可控的写操作:让模型直接写库?没人敢。删除、发布、改配置这类副作用,必须有人点头。
  3. 审计:这次回答引用了哪些工具?谁确认的?花了多少 Token?出了问题能不能复盘?
  4. 可持续的底座:账号、组织、调度、文件、消息推送这些「无聊但必要」的能力,不该在 AI 项目里重造一遍。
  5. 技术栈融合:企业存量是 Java 中台。再引入一套 Python 运行时的运维成本,往往比想象中高。

BizBuddy 就是冲着这几点做的:一个企业级智能业务运行平台——它在成熟中后台底座之上,叠加一整套可运营的 AI 能力,而不是一个孤立的对话机器人。

二、技术选型:为什么坚持「纯 Java」

2.1 智能体内核:AgentScope Java 2.0.3

内核选的是 AgentScope 的 Java 版 Harness(2.0.3)。它是国内开源、专为「工程化 Agent」设计的框架,提供我们需要的全部工程能力:

  • Harness Agent:内置工具循环(reasoning → tool call → observation)、最大迭代次数、流式事件;
  • Middleware:可插拔的中间件(我们用它注入「当前时间」「候选专家清单」「槽位继承」);
  • 权限三态:ALLOW / ASK / DENY,原生支持 HITL(Human-in-the-Loop)暂停与恢复;
  • 状态存储抽象:AgentStateStore 可对接 Redis,承载多轮记忆;
  • 上下文压缩、分层记忆、技能仓库、子 Agent、Plan Mode 等工程化能力。

最关键的是:它是 Java。同一进程、同一 JVM、同一套权限与事务,和 RuoYi-Vue-Plus 天然融合,不需要跨语言的 sidecar 和 RPC 边界。

2.2 业务底座:RuoYi-Vue-Plus 6.0.0

底座是 Dromara RuoYi-Vue-Plus 6.0.0,一个非常成熟的 Java 中后台脚手架,自带:

  • RBAC 权限体系:用户 / 角色 / 菜单 / 部门 / 岗位 / 数据权限 / 字典;
  • 工作流(Warm-Flow + LiteFlow)、定时调度(SnailJob)、代码生成器、OSS 文件存储、统一消息推送;
  • 认证鉴权(Sa-Token)、ORM(MyBatis-Plus)、分布式缓存与锁(Redisson / Lock4j)、接口文档(SpringDoc)。

BizBuddy 的 AI 能力集中在一个模块:ruoyi-modules/ruoyi-ai(包 org.dromara.ai)。对底座是「叠加」而非「替换」——存量中后台能力全部可复用。

2.3 为什么不是 Python 方案

不是说 LangGraph / Dify 不好,而是当企业存量是 Java 中台时,纯 Java 路线有三个现实优势:

维度纯 Java(本项目)引入 Python 运行时
权限打通直接复用 Sa-Token、PermissionService、@DataPermission需要跨进程同步用户态与权限
事务与数据与业务库同源,工具即 Service 调用需要自建一致性边界
运维一套 Maven 构建、一个 jar、一份监控双语言构建 / 部署 / 排障
调试一个 JVM 内断点、链路日志连续跨语言链路断点

三、整体架构

flowchart LR
  U["用户 / 飞书 / 企微 / 钉钉 / GitHub"] --> FE["Vue3 前端 plus-ui-Vue"]
  FE -->|SSE 流式| API["ruoyi-admin / ruoyi-ai"]
  API --> ROUTER[&#34;入口智能体 小Z<br/>意图判断 + 专家路由&#34;]
  ROUTER -->|route_decision| EXP[&#34;领域专家(独立装配)&#34;]
  EXP --> TOOLS[&#34;业务工具(代码侧 25 个实现)&#34;]
  EXP --> MCPC[&#34;MCP 客户端(接入外部工具)&#34;]
  EXP --> KB[(&#34;Milvus 知识库&#34;)]
  API --> MODEL[&#34;大模型(OpenAI 兼容协议)&#34;]
  API <--> STATE[(&#34;Redis:会话状态 / 记忆&#34;)]
  API --> PG[(&#34;PostgreSQL:业务表 + 审计表&#34;)]

运行形态可以概括成一句话:入口智能体统一接待,按需把任务委派给领域专家,专家的回答直接交付用户。

  • 入口智能体「小Z」:所有对话先到它这里,它判断意图并给出「候选专家清单」,再通过协议工具 route_decision 决定「自答」还是「委派」。
  • 专家直答:被选中的专家回复直接交付用户,小Z 只负责「选谁」。这样上下文、记忆、场景包、权限槽位天然连续。
  • 写操作人工确认(HITL):涉及写库 / 写外部系统的工具调用会暂停并请求人工确认,确认后才继续执行。
  • 多渠道接入:飞书 / 企业微信 / 钉钉 / GitHub Webhook 入站回调,渠道消息同样进入统一链路。
  • 全链路审计:会话、路由、工具调用、确认、用量均有留痕(ai_trace / ai_tool_call_log / ai_route_run 等)。

四、「Harness 平台」到底 Harness 了什么

「Harness」一词在这个项目里不是噱头,它指的是把 Agent 从「一次性脚本」变成「可运营组件」的那层工程化外壳。BizBuddy 借助 AgentScope Harness 落地了这些东西:

  1. 工作区(Workspace):每个智能体一个工作目录,承载人格与行为约定文件(AGENTS.md)与附加上下文文件,每轮注入 system prompt。
  2. 分层记忆:MEMORY.md(长期)+ memory/YYYY-MM-DD.md(每日流水),按用户隔离,自动抽取与合并。
  3. 技能(Skill):把「产出规格」做成可加载的 Markdown 技能,命中才加载,避免提示词爆炸。
  4. 上下文压缩:超长对话自动摘要 + 大工具结果卸载落盘,避免撑爆上下文窗口。
  5. 权限三态 + HITL:把「能不能调、要不要人确认」做进框架层,而不是靠提示词祈祷。
  6. 子 Agent / Plan Mode:可组合的能力,按智能体定义开启。
  7. MCP 双向:既能作为 MCP 服务端对外暴露只读工具,也能接入外部 MCP Server 的工具。

五、完全开源

BizBuddy 采用 MIT License,代码完全开源,托管在 Gitee:

后端底座源自 RuoYi-Vue-Plus(MIT),本项目在其上做平台化改造。你可以在自己的环境里跑起来:

# 后端:JDK 21 + Maven,PostgreSQL 14 / Redis / Milvus
cd RuoYi-Vue-Plus
./mvnw clean install -DskipTests
./mvnw -pl ruoyi-admin spring-boot:run     # 默认 8080,初始账号 admin/admin123

# 前端:Node ≥ 20.19、pnpm ≥ 10
cd plus-ui-Vue
pnpm install && pnpm dev                    # 默认 80

数据库脚本在 RuoYi-Vue-Plus/script/sql/postgres/,按 框架基础表 → 工作流 → AI 平台 → 调度 顺序导入即可。

六、这篇文章没讲完的部分

三篇文章是一个系列,各有侧重:

  • 本篇:项目是什么、为什么纯 Java、跑起来长什么样。
  • 第二篇:企业级智能体的权限怎么落地——组织机构 + RBAC + 三档工具授权 + HITL。
  • 第三篇:AgentScope Harness 与 RuoYi-Vue-Plus 的集成工程实践与踩坑。

如果你正准备把 Agent 从 Demo 推向企业生产,希望这个项目的取舍能给你一点参考。


技术栈速览

层组件
语言 / 运行时Java 21
业务框架Spring Boot 4.1.1(Jetty)
智能体内核AgentScope Harness 2.0.3
MCP官方 MCP Java SDK 0.17.2(自建出口 + 客户端接入)
数据PostgreSQL 14、Redis、Milvus 2.6.13
权限Sa-Token 1.46.0 + RBAC + 数据权限
调度 / 工作流SnailJob 2.0.2 / Warm-Flow 1.8.9 + LiteFlow
前端Vue 3.5 + TypeScript 6 + Element Plus 2.14 + Vite 8 + Pinia

作者:AI架构师张磊