目录
一、前言
五、在SpringBoot项目整合与使用
5.3.2 在springboot项目中调用JManus 接口
六、写在文末
在ChatGPT爆火之后,大语言模型(LLM)已经成为应用开发的核心能力。然而,对于Java开发者来说,直接集成各种AI服务面临诸多挑战,比如API分散,缺少统一的应用框架封装,企业定制化开发困难等,基于这样的诸多痛点,Spring AI 应运而生。作为Spring生态体系下的产品,Spring AI一开始的定位就很明确,为Java应用提供AI 大模型的终极解决方案。而 Spring AI + JManus 的组合,则让Java开发者可以像使用Spring Data JPA一样简单地使用AI能力,本篇将详细介绍Spring AI Alibaba 生态下的重要生态组件JManus 的详细使用。
JManus 是一个面向 Java 生态的开源通用 AI 智能体框架,旨在让 Java 开发者能够以熟悉的技术栈构建和运行复杂的 AI Agent 应用。
JManus 是由阿里云开源的 Java 语言实现的通用智能体框架,基于 Spring AI Alibaba 生态构建,旨在让 Java 开发者更便捷地构建、部署和管理企业级 AI 智能体应用。它对标 OpenManus,但深度集成 Java 技术栈,支持多智能体协作、Plan-Act 模式、MCP 协议等核心能力。
入口:https://github.com/spring-ai-alibaba/Lynxe?tab=readme-ov-file
JManus 核心设计思想是实现 OpenAI Manus 的类似能力,并深度集成到 Java 技术栈中,其具有如下核心特性:
- 纯 Java 实现的多智能体协作:
- 它完整实现了多智能体(Multi-Agent)框架,让多个 AI Agent 可以分工协作,共同处理复杂任务,并提供了完整的 HTTP 调用接口,方便 Java 开发者进行二次集成。
- 原生支持 Plan-Act 模式:
- 这是一种将复杂任务分解为"规划"和"执行"两个阶段的设计模式。Agent 可以先生成详细的执行计划,再按计划逐步执行,从而具备处理复杂、多步骤任务的能力。你可以通过 Web 界面直观地编辑和调整执行计划。
- 无缝集成 MCP 协议:
- 支持模型上下文协议(Model Context Protocol),这使得 Agent 可以轻松扩展能力,与外部服务、API、数据库等进行交互,打破了单一模型的限制。
- 灵活的模型与工具支持:
- 能够无缝集成包括阿里云通义千问(Qwen)、Claude 3.5 等在内的多个大模型,并支持通过简单的注解(Annotation)快速接入自定义工具,开箱即用地提供了 50 多种预置工具。
JManus 是阿里云基于 Spring AI Alibaba 推出的开源多智能体框架,可以看作是 Java 生态对通用 AI Agent 的回应。它的核心目标是让 Java 开发者能够用熟悉的技术栈构建和执行复杂的自动化任务。具体来说:
- 核心框架:
- Spring AI Alibaba(阿里基于 Spring AI 的 Java AI 开发框架)
- 模型支持:
- 通义千问(Qwen)、Claude、GPT 等主流大模型
- 运行时推荐:
- 阿里云 Serverless 应用引擎(SAE)+ 函数计算(FC),实现高并发、低成本、高可靠
- 可观测性:
- 集成 ARMS、Redis、Prometheus 等,支持监控、链路追踪、状态持久化
- 工具生态:
- 通过 MCP 市场可一键部署 30+ 企业服务(钉钉、支付宝、OSS、MySQL 等)
JManus 的工作流程遵循一套清晰的逻辑,主要通过控制器、规划器和执行器三个核心部分协作完成。
针对上述执行流程,对其中几个核心步骤加以说明:
- 接收任务:
- 用户在 Web 界面输入指令,如"查询今日股价并保存到文件"。
- 任务规划:
- JManus 的核心规划器将复杂指令分解为多个可执行的子步骤,生成一个详细的执行计划(Plan)。
- 执行与工具调用:
- 执行器(Executor)按计划逐步执行。当需要获取外部信息时(如搜索、访问网页),会自动调用相应的工具(Tool)。
- 结果汇总:
- 将所有步骤的执行结果进行汇总、分析和总结,形成最终答案返回给用户。
JManus 适合需要利用 AI 自动化处理复杂、探索性任务的 Java 后端场景,其典型的应用场景包括:
- 数据探索与分析:
- 从海量数据中快速定位并提取关键信息,格式化后存入数据库。
- 日志分析与告警:
- 自动分析系统日志,发现异常模式并触发告警。
- 浏览器自动化:
- 通过 Browser Agent 执行网页信息检索、内容聚合等任务。
JManus 可看作是为 Java 开发者量身定制的"AI 助手开发工具箱",它借鉴了 Manus 和 OpenManus 的理念,但深度绑定了 Spring AI Alibaba 生态,让 Java 开发者能更自然地构建 AI 应用
Spring AI Alibaba 是一个由阿里巴巴开源的企业级 Java AI 框架,旨在帮助 Java 开发者高效构建 AI 应用。它基于 Spring AI 构建,并深度集成了阿里云百炼平台,可以看作是 Spring AI 在阿里云生态中的**实践。
其核心价值可以概括为:让熟悉 Spring Boot 的 Java 开发者,能用一致的编程模型,轻松地将大模型能力集成到企业级应用中
Spring AI Alibaba 提供了一套分层的能力,覆盖从基础到高级的各类应用场景,其核心模块主要包括:
- AI 生态集成
- 主要特点:深度集成阿里云百炼平台,提供模型接入、RAG知识库、可观测性(ARMS/Langfuse)、MCP协议支持等企业级解决方案。
- 适用场景:生产环境落地,需要结合阿里云基础设施构建稳定、可扩展的AI应用。
- Graph 多智能体框架
- 主要特点:借鉴 LangGraph 思想,提供流程编排、多智能体协作、人机协同、状态管理与持久化等高级功能
- 适用场景:构建复杂工作流、多智能体协作应用,解决需要多步推理和任务拆解的场景。
- 基础 AI 原子能力
- 主要特点:基于 Spring AI,统一了与主流大模型(如通义千问、DeepSeek)的通信接口,封装了提示词、记忆、RAG、工具调用等基础能力
- 适用场景:快速开发聊天机器人、智能问答等基础AI应用。
3.3.1 多维度比较
JManus 是 Spring AI Alibaba 框架的一个官方示例项目,也是其核心生态中的重要组成部分,可以将它们的关系理解为"框架与基于该框架构建的标杆应用",下面这个表从多个维度介绍了两者的关系:
3.3.2 框架与说明
Spring AI Alibaba 是一个以 Spring AI 为基础,为 Java 开发者提供的 AI 应用开发框架。它的目标是简化 AI 应用的构建过程,提供模型接入、多智能体编排、工具调用等一系列核心能力。
而JManus 则是这个框架下具体的、开箱即用的通用智能体(General Purpose Agent)实现,其主要作用是:
- 作为**实践:向开发者展示如何使用 Spring AI Alibaba 框架的各项能力(如
Graph多智能体编排、MCP协议集成等)来构建一个功能完整的智能体应用。 - 探索前沿能力:JManus 项目本身也在积极探索自主规划、复杂任务分解等前沿的 Agent 技术,这些探索成果最终可能会反哺到 Spring AI Alibaba 框架本身。
简单来说,你想在自己的项目里引入 AI 能力,可以直接使用 Spring AI Alibaba 框架;
而如果你想快速部署一个能用的智能体,或者想学习如何从零开始构建复杂的 AI 应用,研究 JManus 会是一个很好的起点
可以通过多种方式使用和体验JManus ,下面分别做简单的说明。
最简单的使用方式就是下载官方的jar包,然后使用Java命令运行起来即可,基于这种方式,下面提供了完整的操作步骤。
4.1.1 提前准备apikey
注册并获取你的阿里云百炼平台上的apikey,入口:https://bailian.console.aliyun.com/
- 确保已安装 JDK 17 或更高版本,并获取一个 DashScope 的 API Key(或其他 LLM 服务的密钥,本次使用的阿里云百炼上的apikey)
从左侧的API Key 那里获取,第一次没有需要重新创建一个
4.1.2 本地Java运行环境
本地开发环境相关版本如下:
- JDK ,17
- Maven , 3.6.3
- SpringBoot , 3.2
4.1.3 获取官方的源码包
获取项目jar的方式:
- 推荐方式:直接从 GitHub Release 页面下载预编译的 JAR 包
- 源码方式:克隆 GitHub 仓库 https://github.com/alibaba/spring-ai-alibaba/tree/1.0.0.3-retriever
我这里直接下载zip的包
4.1.4 启动JManus
进入项目的主目录,找到jmanus这个模块,可以直接执行下面的命令,或者在本地的IDE打开
mvn spring-boot:run
如果是本地IDE打开的话,直接运行项目即可
启动成功后,可以在浏览器中打开那个链接URL,跳转到下面的页面
下面介绍第二种服务部署的方式,使用docker 部署,也是官方推荐的一种方式。
4.2.1 拉取镜像
docker pull sca-registry.cn-hangzhou.cr.aliyuncs.com/spring-ai-alibaba/jmanus:develop
4.2.2 运行docker 容器
使用下面的命令启动docker 容器
docker run -d
–name jmanus -p 18080:18080 -e DASHSCOPE_API_KEY=你的API密钥 sca-registry.cn-hangzhou.cr.aliyuncs.com/spring-ai-alibaba/jmanus:develop
这是一种最简单的使用方式,入口:https://github.com/spring-ai-alibaba/Lynxe/releases
- 与第一种方式相比,第一种方式需要下载源码包后本地编译,对有些同学来说,因为本地环境问题可能编译失败,直接运行jar的方式就更简单了
选择适合你的版本,然后将jar包下载到本地,使用java -jar 命令即可启动
基于上面的操作,我们快速完成了JManus的本地部署,下面通过控制台体验一下效果
4.4.1 控制台配置
1)选择简体中文
2)配置大模型
这里推荐使用百炼的那个apikey,就是上文获取到的那个
保存完成后,跳转到下面的页面
4.4.2 效果使用体验
进入到上面的页面后,我们输入一段自然语言,看AI的响应,提示词如下:
通过百度查询一下阿里巴巴的最新股价,并将结果写入到本地D盘根目录下
4.4.3 常用菜单配置
JManus 提供了很多个性化的配置选项,方便开发者做定制化配置和使用
- 基础配置
- 开启会话记忆
- 配置Agent的参数
- 配置MCP 服务器相关参数
- 模型配置
- 配置大模型相关的信息,比如指定使用某个厂商的大模型
- 配置MCP
- 在这个页面你可以自定义使用自己的MCP或者三方的MCP
- 数据库配置
- 配置JManus 与数据库的交换
Func-Agent 是JManus 在新版本中增加的功能,已成为JManus 的一个核心且极具亮点的模式,基于该模式,开发者可以配置并执行更复杂、更加定制化的任务。
4.5.1 Func-Agent 介绍
Func-Agent 是 JManus(现已更名为 Lynxe)框架中的一个核心执行模式,它允许开发者精确控制 AI Agent 的每一步执行细节,提供极高的执行确定性,能够完成复杂的重复性流程和功能
与传统的 AI Agent 依赖模型自主决策不同,Func-Agent 的核心特点是:用文字(而非代码)定义精确的执行流程,让模型按照预设的步骤和规则执行任务
4.5.2 为什么需要 Func-Agent?
要理解 Func-Agent 的价值,需要先了解 AI Agent 工具调用能力的演进:
- Function Calling(基础能力)
- 让 LLM 能够将用户的自然语言需求转换为结构化的函数调用
- 例如:"查北京天气" →
get_weather(city="北京")
- MCP(解决集成成本问题)
- 标准化接口,让 AI 能够连接各种外部系统(数据库、GitHub、Slack等)
- 避免为每个系统单独编写集成代码
- Func-Agent / Skills(解决流程定义问题)
- 这是当前面临的挑战:如何让 AI 按照特定的、复杂的步骤执行任务?
- 如果完全写成代码,异常处理会非常复杂
- 如果只给简单提示词,模型可能不按预期执行
比如有一个需要使用git的实际案例:GitHub 发版流程
- 这个 7 步流程如果用代码实现会非常复杂,但用文字描述并让 Func-Agent 执行,既简单又可靠。
1) 确认版本一致性 2) mvn package 3) 运行前端 lint 检查 4) git merge upstream/main 5) make ui-deploy 6) git push branch 7) 打 tag 并推送到 upstream
4.5.3 Func-Agent 工作原理
Func-Agent 本质上是对 Function Calling 机制的巧妙应用:
用户文字流程定义 → 系统封装为可调用函数 → LLM 按步骤执行 → 精确控制每一步
关键点在于:
- 用户用自然语言定义流程:无需编写复杂代码
- 系统提供确定性执行:每一步都按预设规则进行
- 保留模型灵活性:在执行过程中可以根据情况动态调整
4.5.4 Func-Agent 与其他模式对比
4.5.5 Func-Agent 典型应用场景
在下面的一些场景中,你可以考虑使用Func-Agent :
- 数据处理流水线:从海量数据中提取、转换、入库
- 日志分析与告警:按固定规则分析日志并触发告警
- CI/CD 自动化:代码检查、构建、部署全流程
- 合规性检查:按品牌指南、法律要求处理文档
- 企业工作流:按组织规定的流程处理业务
4.5.6 使用官方 Func-Agent
Git 官方提供了常用的一些Func-Agent 模板,开发者可以根据实际需求场景选择使用,使用的方法也很简单,下面演示下完整的使用过程,git仓库模板入口:https://github.com/Lynxe-public/Lynxe-public-prompts/blob/main/prompt-script
以上述的这个翻译Agent 为例进行说明,参考下面的完整配置过程
1)下载json文件
点击右上角的下载按钮,将json文件下载到本地
2)点击新建 Func-Agent计划
在控制台顶部找到新建的按钮,然后导入上面这个json文件
导入成功后,会看到下面的界面
3)效果测试
导入成功后,在下面的用户输入那里输入一段中文文字,点击执行计划
然后会在右侧的对话窗口开启一个任务
执行完成后,可以看到已经正确的将这句中文翻译为英文了
补充说明:
- 其他的模板也可以参考上面的方式使用
- 自己编写的模板,可以参考官方提供的模板格式做即可
将 JManus 与你的 Spring Boot 项目整合,最直接的方式是将它作为一个独立的 AI Agent 服务来调用。
JManus 本身就是一个基于 Spring Boot 的完整 Web 应用,提供了丰富的 REST API。因此,整合的核心思路是"你的应用"与"JManus 服务"通过 HTTP API 进行通信,而不是将它作为依赖包嵌入。这样做的好处是解耦、独立部署和升级。
基于上面的这种整合方式,你的整个项目结构如下:
- JManus 服务:
- 作为一个独立的 AI Agent 后端服务运行,负责处理所有需要 AI 规划和工具调用的复杂任务。
- 你的 Spring Boot 应用:
- 你的核心业务系统。当需要 AI 能力时,通过 HTTP 请求调用 JManus 服务的 API。
5.3.1 启动JManus 服务
参考上面的操作过程,部署JManus 服务,并且能够正常访问控制台
5.3.2 在springboot项目中调用JManus 接口
JManus 提供了完善的 API 接口,你只需在你的 Service 层使用 RestClient 或 WebClient 调用它们即可。
这里以最核心的执行计划接口为例:
1)发起一个任务 (异步)
- 接口:
POST /api/executor/execute - 作用: 提交一个用户需求,JManus 会异步执行并返回一个
planId,用于后续追踪结果。
// 在你的 Spring Boot 项目的 Service 中 @Service public class AiAgentService }
2)获取任务执行结果
- 接口:
GET /api/executor/details/{planId} - 作用: 根据
planId查询任务的执行详情、状态和最终结果。
// 在你的 Spring Boot 项目的 Service 中 public String getTaskResult(String planId) ", planId) .retrieve() .body(String.class); // 实际返回的是一个复杂的 JSON 对象 // 你可以解析这个 JSON,提取最终的回答内容 (finalResult) return result; }
3)在自己的Controller类中暴露接口
创建一个新的 Controller,将上述 Service 的能力暴露给你自己的前端或其它系统调用。
@RestController
@RequestMapping("/api/ai") public class AiController
@GetMapping("/result/{planId}") public ResponseEntity
getResult(@PathVariable String planId)
}
5.3.3 补充说明
除了直接调用,你还可以根据需求选择更深度的整合方式:
注意事项:
- 数据库配置:
- JManus 默认使用 H2 数据库,适合测试。
- 生产环境建议切换为 MySQL 或 PostgreSQL,以保证数据稳定性。
- 模型配置:
- 除了默认的阿里云百炼模型,JManus 也支持通过配置文件集成 OpenAI 等其他模型服务商。
- 异步处理:
- 任务执行时是异步的,建议你的应用可以设计轮询或WebSocket机制来获取最终结果。
- 资源管理:
- JManus 会为每个
planId维护一些资源(如浏览器实例),记得在任务完成后及时清理,或通过 API 删除记录。
- JManus 会为每个
本文通过较大的篇幅详细介绍了JManus 的使用,并从服务部署,控制台使用,以及Agent的配置多方面介绍了JManus 的能力,最后介绍了在SpringBoot 项目中集成JManus 的完整思路,希望对看到的同学有帮助,本篇到此结束,感谢观看。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/263467.html