十几行代码实现 Manus,Spring AI Alibaba Graph 快速预览

作者:刘军

Spring AI Alibaba Graph 的核心内容开发已基本就绪,将在近期发布正式版本,基于 Spring AI Alibaba Graph 开发者可以轻松开发工作流、不同模式的智能体&多智能体等系统,在 Spring AI ChatClient 基础上给开发者带来灵活的选择与更丰富的功能。

跟着这篇文章,我们将以三个示例的形式为大家展示如何使用 Spring AI Alibaba 开发工作流、智能体应用,几行代码即可实现智能体编排:

  1. 示例一:一个客户评价处理系统(基于工作流编排实现)
  2. 示例二:基于 ReAct Agent 模式的天气预报查询系统
  3. 示例三:基于 Supervisor 多智能体的 OpenManus 实现

Spring AI Alibaba Graph 内核与示例完整源码请参见:

https://github.com/alibaba/spring-ai-alibaba/tree/main/spring-ai-alibaba-graph

示例一:基于工作流编排的客户评价处理系统

以下是系统架构图:

本示例实现了一个客户评价处理系统,系统首先接收用户评论,根据评论内容自动进行问题分类,总共有两级问题分类:

  1. 第一级分类节点,将评论分为 positive 和 negative 两种。如果是 positive 评论则进行系统记录后结束流程;如果是 negative 评论则进行第二级分类。
  2. 第二级分类节点,根据 negative 评论的具体内容识别用户的具体问题,如"after-sale service"、“product quality”、"transportation"等,根据具体问题分流到具体的问题处理节点。
  3. 最后问题处理节点进行处理并记录后,流程结束。

核心代码展示:

AgentStateFactory<OverAllState> stateFactory = (inputs) -> {
			OverAllState state = new OverAllState();
			state.registerKeyAndStrategy("input", new ReplaceStrategy());
			state.registerKeyAndStrategy("classifier_output", new ReplaceStrategy());
			state.registerKeyAndStrategy("solution", new ReplaceStrategy());
			state.input(inputs);
			return state;
		};

StateGraph stateGraph = new StateGraph("Consumer Service Workflow Demo", stateFactory)
			.addNode("feedback_classifier", node_async(feedbackClassifier))
			.addNode("specific_question_classifier", node_async(specificQuestionClassifier))
			.addNode("recorder", node_async(new RecordingNode()))

			.addEdge(START, "feedback_classifier")
			.addConditionalEdges("feedback_classifier",
					edge_async(new CustomerServiceController.FeedbackQuestionDispatcher()),
					Map.of("positive", "recorder", "negative", "specific_question_classifier"))
			.addConditionalEdges("specific_question_classifier",
					edge_async(new CustomerServiceController.SpecificQuestionDispatcher()),
					Map.of("after-sale", "recorder", "transportation", "recorder", "quality", "recorder", "others",
							"recorder"))
			.addEdge("recorder", END);

可下载本示例源码并运行,打开浏览器访问如下示例链接,查看运行效果:

  • http://localhost:18080/customer/chat?query=我收到的产品有快递破损,需要退换货?

  • http://localhost:18080/customer/chat?query=我的产品不能正常工作了,要怎么去做维修?

  • http://localhost:18080/customer/chat?query=商品收到了,非常好,下次还会买。

示例二:基于 ReAct Agent 的天气预报查询系统

以下是 React Agent 架构图:

在本示例中,我们仅为 Agent 绑定了一个天气查询服务,接收到用户的天气查询服务后,流程会在 AgentNode 和 ToolNode 之间循环执行,直到完成用户指令。示例中判断指令完成的条件(即 ReAct 结束条件)也很简单,模型 AssistantMessage 无 tool_call 指令则结束(采用默认行为)。

ReactAgent reactAgent = ReactAgent.builder()
    .name("React Agent Demo")
    .prompt("请完成接下来用户输入给你的任务。")
    .chatClient(chatClient)
    .resolver(resolver)
    .maxIterations(10)
    .build();

reactAgent.invoke(Map.of("messages", new UserMessage(query)))

可下载本示例源码并运行,打开浏览器访问如下示例链接,查看运行效果:

  • http://localhost:18080/react/chat?query=分别帮我查询杭州、上海和南京的天气

示例三:基于 Supervisor 多智能体的 OpenManus 实现

Spring AI Alibaba 曾发布了业界首个 OpenManus 的 Java 版本实现方案,原版本实现源码与博客解读文章请参见:

  1. 博客解读
    https://java2ai.com/blog/spring-ai-alibaba-openmanus

  2. 示例源码:
    https://github.com/alibaba/spring-ai-alibaba/community/openmanus

原 OpenManus 的实现并没有使用 Spring AI Alibaba Graph,因此我们花费了大量时间在编写流程控制逻辑。在之前版本的 OpenManus 实现解读中,我们总结了以下相关实现问题:

  • 仓库中 80% 代码都在解决流程编排问题,入串联 manus agent 子流程、做消息记忆、转发工具调用、全局状态修改等,这部分工作可以交给高度抽象的 agent 框架实现,以简化开发复杂度。
  • 工具的覆盖度与执行效果一般,如浏览器使用、脚本执行工具等。
  • 规划及工作流程中无法人为介入进行 review、动态修改、回退等动作。
  • 当前 OpenManus 实现的效果调试相对比较困难。

如今在 Spring AI Alibaba Graph 的帮助下,我们这次可以低于之前 80% 的代码量实现同样的 OpenManus 系统,以下是 OpenManus 实现的架构图:

在 OpenManus 示例中,我们实现了一个 multi-agent 系统。其中,有三个核心 agent 互相协作完成用户任务:

  1. Planning Agent,负责任务规划,任务规划的输出是包含多个步骤描述的详细规划。
  2. Supervisor Agent,负责监督 Executor Agent 完成 Planning Agent 规划的任务,按顺序将每一步子任务转发给 Executor Agent。
  3. Executor Agent,负责执行每一步子任务,该 Agent 包含多个可用工具如 Browser_use、FileSaver、PythonExecuter 等。

可下载本示例源码并运行,打开浏览器访问如下示例链接,查看运行效果:

  • http://localhost:18080/manus/chat?query=帮我查询阿里巴巴近一周的股票信息

运行示例

首先,运行以下命令下载源码:

git clone https://github.com/alibaba/spring-ai-alibaba.git
cd spring-ai-alibaba-graph/spring-ai-alibaba-graph-example

为了访问大模型,需要导出模型 API-KEY 到环境变量:

export AI_DASHSCOPE_API_KEY=xxx

然后,就可以在 IDE 中直接运行 GraphApplication 类启动示例应用。

或者,你可以运行以下 maven 命令启用示例应用(注意,由于 Spring AI Alibaba Graph 尚未正式发布,需要在根目录先 install 源码):

mvn clean install
cd spring-ai-alibaba-graph/spring-ai-alibaba-graph-example
mvn spring-boot:run

设计理念与未来规划

当前版本的 Spring AI Alibaba Graph 在设计理念上大幅参考了 Langgraph,包括全局 State 管理、Graph 定义等,基本上可以说是 Langgraph 的 Java 实现版本,特别感谢 Langchain 社区开源贡献的 Langgraph 智能体框架,让我们可以站在巨人肩膀上继续前进。Agent 技术一直在快速发展之中,我们将在此基础上探索更多前沿 Agent 实现方案。

Spring AI Alibaba Graph 尚未正式发布,欢迎开发者通过 Github 源码体验并参与贡献:

https://github.com/alibaba/spring-ai-alibaba/tree/main/spring-ai-alibaba-graph

相关推荐

推荐一款好用的刷题工具

为了帮助正在准备求职季的开发者提升备战效率,阿里云特别推出“通义灵码陪你备战求职季”活动,精心挑选百道历史校招技术面试/笔试题,借助通义灵码智能问答、代码智能生成、代码优化等核心功能,帮助开发者更加准确地了解程序员职业所需的核心技能,加强对问题解决思维和解题能力的练习。

阿里巴巴云原生的博客 1381

通义灵码 Visual Studio 下载安装指南(附安装包)

本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。

阿里巴巴云原生的博客 4436

稳定复现超 70% 的缺陷,报警到自动修复的 Agent 流水线实践

本文将分享我们在 PolarDB-X 团队做的一些工程实践:让 Agent 从一条报警或工单出发,自主完成排查、复现、修复和验证,再把结果交给研发评审。

阿里巴巴云原生的博客 15

从“自证清白”到“因果链条”:智能体如何重塑运维排障效率

STAROps 做全域关联分析,把范围从「五个团队依次自证清白」收拢到一条具体链路;证据指向对象存储后,OSS Agent 接手,基于真实配置、访问日志和用量数据往下挖,给出根因和支撑它的证据链。你面对的始终是一个对话框:路由归它管,说清现象、拍板方案归你。

阿里巴巴云原生的博客 82

TechTalk丨从能买奶茶到能进企业,Agent 绕不开同一组问题

史明伟所在的 Alibaba Cloud AgentCore 是企业级 Agent 构建和治理平台,为 Agent 在业务场景下的规模化落地提供基础设施,所以这场对话,他和 Datawhale 主持人从个人助理一路聊到企业 Agent:权限该怎么一步步放开?进了企业,账号打通、数据权限、沙箱隔离又会带来哪些新问题?没有强技术团队的企业,该从哪里起步?

阿里巴巴云原生的博客 37

AgentCore + Codex 构建生产级 Agent 的原理与实践

本文章演示 AgentCore[1]的自定义代码/镜像能力,目的是展示如何基于自定义的 Harness 框架(Codex) 结合 AgentCore 提供的身份、模型、工具、技能、凭证 、观测评估等能力实现一个端到端的 Agent 应用,内容包含两个部分,技术方案和实践教程,文末附相关源码和本次的测试数据,可以根据需要自行查阅。

阿里巴巴云原生的博客 179

让复杂任务由团队完成:阿里云 AgentCore 多 Agent 协作架构及实践

Alibaba Cloud AgentCore 以身份、通信、团队和任务为基础,让专业 Agent 与人类成员共同参与业务协作。企业可以按职责组合知识、工具、Skill 和模型,用任务系统持续追踪工作,再结合 AgentLoop 评估效果、优化配置。

阿里巴巴云原生的博客 328

易点天下:AI 驱动 IT 运维组织提效的实践

易点天下作为一家专注品牌全球化的营销科技公司,由智能营销、全域增长、智能变现三大引擎驱动。公司旗下拥有“整合营销服务”与“广告平台业务”两大业务线。

阿里巴巴云原生的博客 300

阿里云可观测 2026 年 10 月产品动态

阿里云可观测 2026 年 10 月产品动态

阿里巴巴云原生的博客 195

用 Nacos 3.3.0 ARD 让 Agent 按任务发现工具和 Skill

如今,工作中用 Agent 帮忙已经越来越常见。研发同学用 Coding Agent 写代码、补测试、排查问题,业务同学用 Work Agent 整理资料、分析表格、制作演示文稿。不少过去需要自己一步步操作的事情,现在可以把需求交给 Agent,让它协助完成。

阿里巴巴云原生的博客 313

HiRoute 新版本发布:结合自己的真实工作选择最佳模型

HiRoute[1]是一个开源、运行在本地的 Agent 智能路由引擎。你继续用 Codex、Claude Code、Qoder、Pi、OpenCode、Hermes、DeepSeek Harness 等熟悉的 Agent,由 HiRoute 判断每一步交给哪个模型。

阿里巴巴云原生的博客 382

用户说 App“下不了单”:用 Session Replay 看清流程卡在哪一步

Session Replay(会话回放)将采集到的页面变化重建为可回看的过程。研发可以沿着这次会话,查看操作前后的界面变化,先确认流程停在了哪里,再结合当时的事件、日志和代码检查原因。

阿里巴巴云原生的博客 55

欢迎报名丨Alibaba Cloud AgentCore 企业智能体构建与治理八城巡回沙龙 · 杭州站开启

欢迎报名丨Alibaba Cloud AgentCore 企业智能体构建与治理八城巡回沙龙 · 杭州站开启

阿里巴巴云原生的博客 138

运维走出控制台:阿里云 AgentCore AI Native 运维实践

UModel 让现场能够被关联,运维数字员工让经验能够被调用,AgentCore Team 让分析能够协作,AgentLoop 让质量能够被检验。这些建设共同服务于一件事:让团队对系统的理解,成为每个人处理问题时都能接上的能力。

阿里巴巴云原生的博客 299

从长程 Agent 到 Super-agent,解锁更多场景

Deepseek Harness 提升了架构的透明度,但也带来了工程上的复杂度。这次开源的dsh-superagent-prototype,是对 Agent “连续实体”能力的工程拆解。

阿里巴巴云原生的博客 233

排查提效 50%:淘大集新核心系统的观测护航之路

供应链运维,缺的不是更多机器,是“一条能把指标、日志、链路串起来的线”。阿里云 ARMS+SLS+云监控2.0+STAROps 重构观测底座。

阿里巴巴云原生的博客 147

概率、插座与 5000 个爱因斯坦:专访阿里云研发副总裁周琦

这次访谈发生在 2026 年云栖大会之后。大会期间,阿里云发布了智能体构建和治理平台 AgentCore,将企业级 Agent 基础设施进一步标准化和托管化。

阿里巴巴云原生的博客 152

Agent 数据飞轮平台的选型和实践

用统一标准判断修改效果,积累覆盖不同路径的测试样本,沿执行记录排查失败,并将典型问题纳入后续回归。而这也是宙斯接入 AgentLoop 要解决的问题。

阿里巴巴云原生的博客 28

Durable Agent 详解:如何让 Agent 在云端长期稳定运行

本文使用一个具体的用户任务示例“向五位客户发送通知邮件”,解释为什么保存聊天记录还不够,再以 AgentScope 构建的 Agent 为例,展开任务状态、持久提交和故障恢复的通用设计,最后结合 Alibaba Cloud AgentCore 已有的 Harness 托管与节点恢复能力,讨论共享状态、可靠调度及 Brain / Hands 分离如何支撑更完整的长期托管服务。

阿里巴巴云原生的博客 335

Qoder × AgentLoop:智能体规模化应用,敏感数据保护如何跟上?

智能体观测与优化平台 AgentLoop 持续分析已采集的 Qoder 审计日志,将发现的风险线索关联到具体会话、工具调用、成员和环境,帮助安全团队回查任务过程、明确需要整改的环节,并复查处理效果。

阿里巴巴云原生的博客 289

完整还原已经服务千家企业的 AIOps Agent 的评测和调优实践

阿里云 STAROps 是一个生产运维 Agent,通过连接多域数据、运维工具与专家经验,从被动响应走向智能自治,7×24 保障业务连续、稳定运行。本文将分享 STAROps 的评测和调优实践。

阿里巴巴云原生的博客 198

阿里云云原生四项 AI 应用工程化实荣获“鼎新杯”优秀案例

第五届“鼎新杯”由中国通信标准化协会主办、中国信息通信研究院承办,自2026年05月正式启动,历时近 5 个月,聚焦国内政企数智化转型领域的创新成果,旨在为行业提供可复制、可推广的实践参考。

阿里巴巴云原生的博客 323

交付周期从 51 天缩短到 14 天,多 Agent 协作产品⾃进化背后的组织重构

本⽂结合这段实践,介绍评测如何驱动产品持续进化、⼈机协作的边界如何设定,以及团队如何通过统⼀⽬标、结果标准和责任分⼯,减少跨岗位交接,降低沟通损耗,把技术能⼒转化为实际交付效果。

阿里巴巴云原生的博客 327

从部署上线到运维优化:STAROps 与 ROS Agent 的资源运维自动化实践

STAROps 数字员工提供统一的运维对话入口,结合日志、指标、告警等信息理解问题,并通过 alibabacloud-ros-agent 技能,将基础设施规划和变更任务委派给 ROS Agent。

阿里巴巴云原生的博客 129

车企数据隐私保护必修课:如何用 SLS mask 守住日志中的敏感信息

阿里云日志服务 SLS 的 mask 函数可在采集或写入阶段替换匹配的敏感值,同时保留业务状态与调用链,并结合访问控制和保留期限管理减少暴露。下文通过车辆与车主服务、海外联网订阅、智能座舱交互三类业务中的四组日志,介绍规则选择与脱敏效果。

阿里巴巴云原生的博客 111

切换模型会损失缓存,智能路由还省钱吗?

智能路由会把不同的工作交给不同的模型。很多人随之会问:模型一换,之前积累的缓存就用不上了,这笔损失会不会把省下的钱又花回去?

阿里巴巴云原生的博客 209

LiteLLM 半年两度被投毒,大模型的“钥匙串”该放在哪里?

开源 Higress 把扩展代码关进 Wasm 沙箱,把发布链路锁成不可变;Higress 企业版再把凭证、供应链和防护交给平台托管。选哪一种,取决于你的团队想把精力花在哪里。想先试试托管形态的话,Serverless 标准版 0 元起步,不用先付实例费。

阿里巴巴云原生的博客 318

用 Kimi K3.1 Pro 重新介绍 AgentCore

今天凌晨 Kimi 发布 K3.1 Pro,在前端页面、Three.js 交互场景有明显提升。本文使用 Qoder 上提供的 K3.1Pro 模型,设计并排版了介绍 AgentCore 的全新方式。

阿里巴巴云原生的博客 13

从 Jev 范式决策模型接入,到参与 Team 协作的完整实践

本文将以一个工单分诊助手为例,把开发、打包和上线的过程串起来:用 AgentScope Java 与百炼决策模型(国内网络无法使用 Jev)实现分诊,通过代码包部署到阿里云 AgentCore[1],再验证普通调用和流式调用。文章最后,再看这个助手如何加入 Team,参与任务分工与报告审核。

阿里巴巴云原生的博客 340

MCP 服务无状态,任务状态存哪?RocketMQ LiteTopic 给每个任务一本账

AI Agent 调用一个工具,有时几百毫秒就能返回,有时却要运行好几分钟——比如检索一大批资料、生成一段长内容,或执行一次批处理。让请求一直挂着等结果,会长期占用连接和资源,也很难支撑大规模并发。

阿里巴巴云原生的博客 296
上一篇: OpenManus:开源版 Manus,无需邀请码,5 分钟极速体验!
下一篇: Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
阿里云云原生
阿里云云原生 企业官方账号 企业官方账号
博客等级 码龄8年 1万+粉丝 3147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值