ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

用纯 Java 做一个企业级 Agent Harness 平台:BizBuddy 的设计与取舍 我们为什么把「智能体内核」放进一个成熟的 Java 中台里而不是再起一套 Python 服务。一、企业要的不是「能聊天的机器人」过去两年几乎每个团队都搭过一个 Agent Demo接一个大模型 API挂几个函数就能对话、能查数据、能写记录。Demo 到生产之间隔着几道很硬的墙权限谁可以用能查哪个部门的数据能不能删记录——企业里没有「匿名全能 Bot」这种东西。可控的写操作让模型直接写库没人敢。删除、发布、改配置这类副作用必须有人点头。审计这次回答引用了哪些工具谁确认的花了多少 Token出了问题能不能复盘可持续的底座账号、组织、调度、文件、消息推送这些「无聊但必要」的能力不该在 AI 项目里重造一遍。技术栈融合企业存量是 Java 中台。再引入一套 Python 运行时的运维成本往往比想象中高。BizBuddy 就是冲着这几点做的一个企业级智能业务运行平台——它在成熟中后台底座之上叠加一整套可运营的 AI 能力而不是一个孤立的对话机器人。二、技术选型为什么坚持「纯 Java」2.1 智能体内核AgentScope Java 2.0.3内核选的是 AgentScope 的Java 版 Harness2.0.3。它是国内开源、专为「工程化 Agent」设计的框架提供我们需要的全部工程能力Harness Agent内置工具循环reasoning → tool call → observation、最大迭代次数、流式事件Middleware可插拔的中间件我们用它注入「当前时间」「候选专家清单」「槽位继承」权限三态ALLOW / ASK / DENY原生支持 HITLHuman-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-Plus6.0.0一个非常成熟的 Java 中后台脚手架自带RBAC 权限体系用户 / 角色 / 菜单 / 部门 / 岗位 / 数据权限 / 字典工作流Warm-Flow LiteFlow、定时调度SnailJob、代码生成器、OSS 文件存储、统一消息推送认证鉴权Sa-Token、ORMMyBatis-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 内断点、链路日志连续跨语言链路断点三、整体架构SSE 流式route_decision用户 / 飞书 / 企微 / 钉钉 / GitHubVue3 前端 plus-ui-Vueruoyi-admin / ruoyi-ai入口智能体 小Z意图判断 专家路由领域专家独立装配业务工具代码侧 25 个实现MCP 客户端接入外部工具Milvus 知识库大模型OpenAI 兼容协议Redis会话状态 / 记忆PostgreSQL业务表 审计表运行形态可以概括成一句话入口智能体统一接待按需把任务委派给领域专家专家的回答直接交付用户。入口智能体「小Z」所有对话先到它这里它判断意图并给出「候选专家清单」再通过协议工具route_decision决定「自答」还是「委派」。专家直答被选中的专家回复直接交付用户小Z 只负责「选谁」。这样上下文、记忆、场景包、权限槽位天然连续。写操作人工确认HITL涉及写库 / 写外部系统的工具调用会暂停并请求人工确认确认后才继续执行。多渠道接入飞书 / 企业微信 / 钉钉 / GitHub Webhook 入站回调渠道消息同样进入统一链路。全链路审计会话、路由、工具调用、确认、用量均有留痕ai_trace/ai_tool_call_log/ai_route_run等。四、「Harness 平台」到底 Harness 了什么「Harness」一词在这个项目里不是噱头它指的是把 Agent 从「一次性脚本」变成「可运营组件」的那层工程化外壳。BizBuddy 借助 AgentScope Harness 落地了这些东西工作区Workspace每个智能体一个工作目录承载人格与行为约定文件AGENTS.md与附加上下文文件每轮注入 system prompt。分层记忆MEMORY.md长期memory/YYYY-MM-DD.md每日流水按用户隔离自动抽取与合并。技能Skill把「产出规格」做成可加载的 Markdown 技能命中才加载避免提示词爆炸。上下文压缩超长对话自动摘要 大工具结果卸载落盘避免撑爆上下文窗口。权限三态 HITL把「能不能调、要不要人确认」做进框架层而不是靠提示词祈祷。子 Agent / Plan Mode可组合的能力按智能体定义开启。MCP 双向既能作为 MCP 服务端对外暴露只读工具也能接入外部 MCP Server 的工具。五、完全开源BizBuddy 采用MIT License代码完全开源托管在 Gitee代码仓库后端RuoYi-Vue-Plus 前端plus-ui-Vuehttps://gitee.com/zl3624/biz-buddy后端底座源自 RuoYi-Vue-PlusMIT本项目在其上做平台化改造。你可以在自己的环境里跑起来# 后端JDK 21 MavenPostgreSQL 14 / Redis / MilvuscdRuoYi-Vue-Plus ./mvnw cleaninstall-DskipTests./mvnw-plruoyi-admin spring-boot:run# 默认 8080初始账号 admin/admin123# 前端Node ≥ 20.19、pnpm ≥ 10cdplus-ui-Vuepnpminstallpnpmdev# 默认 80数据库脚本在RuoYi-Vue-Plus/script/sql/postgres/按框架基础表 → 工作流 → AI 平台 → 调度顺序导入即可。六、这篇文章没讲完的部分三篇文章是一个系列各有侧重本篇项目是什么、为什么纯 Java、跑起来长什么样。第二篇企业级智能体的权限怎么落地——组织机构 RBAC 三档工具授权 HITL。第三篇AgentScope Harness 与 RuoYi-Vue-Plus 的集成工程实践与踩坑。如果你正准备把 Agent 从 Demo 推向企业生产希望这个项目的取舍能给你一点参考。技术栈速览层组件语言 / 运行时Java 21业务框架Spring Boot 4.1.1Jetty智能体内核AgentScope Harness 2.0.3MCP官方 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架构师张磊
返回列表