跳到主要内容

框架实战快速上手

前面几篇把 Agent 的概念、协作模式和架构拆开讲过了,这一篇进入实战——用 Spring AI Alibaba ReactAgent 从零搭一个订单助手,五个核心能力(Tools、Memory、Hook、Interceptor、结构化输出/流式输出)在这个模块里都有真实落地。

Spring AI Alibaba ReactAgent 概览

在正式开始实战之前,我们先来了解一下 Spring AI Alibaba ReactAgent 的整体架构和核心概念。

框架定位

Spring AI Alibaba 是阿里巴巴基于 Spring AI 推出的增强版框架。你可以把它理解为 Spring AI 的"阿里云定制版"——底层核心逻辑还是 Spring AI,但在上层做了大量增强,特别是在 Agent 能力方面。

从 1.1 版本开始,Spring AI Alibaba 提供了生产级 ReactAgent 的实现,不需要你自己从头写循环控制、工具调度这些脏活累活了。

Graph Runtime:图执行引擎

核心概念

ReactAgent 底层是基于 Graph Runtime(图运行时) 构建的。所谓 Graph 就是由 节点(Node)边(Edge) 组成的执行图:

  • Node(节点):执行具体逻辑的单元,比如调用大模型、执行工具
  • Edge(边):定义节点之间的流转规则,比如"有工具调用就去Tool节点,没有就结束"

这种设计让 Agent 的执行过程可控、可追溯、可调试,比单纯的循环嵌套清晰得多。

Graph Runtime 核心结构
Graph Runtime 核心结构

三种核心节点

在 ReactAgent 的执行过程中,有三种关键的节点类型:

节点类型职责说明
Model NodeAgent 的"大脑"调用大模型进行推理,决定下一步是调工具还是直接回答
Tool NodeAgent 的"手脚"当模型决定使用工具时,这个节点负责实际执行工具方法
Hook NodeAgent 的"探针"在流程关键位置插入自定义逻辑,比如日志、审计、限流
执行流程简述
  1. 用户输入进入 Model Node,模型进行推理
  2. 如果模型决定调用工具,流转到 Tool Node 执行
  3. 工具执行完成后,结果回到 Model Node 继续推理
  4. 如果模型认为任务完成(不再调用工具),流转到 END
  5. 这个循环就是 ReAct 的"思考→行动→观察"过程

ReactAgent 核心组件速览

ReactAgent 提供了一套完整的组件体系,每个组件负责不同的能力:

组件作用配置方式
Model大模型,Agent 的推理引擎.model(chatModel)
Tools工具集,Agent 可以调用的外部能力.tools(...).methodTools(...)
System Prompt系统提示词,定义 Agent 的身份和行为规范.systemPrompt(...).instruction(...)
Memory(Saver)记忆,支持多轮对话.saver(memorySaver)
Hooks生命周期钩子,在 Agent 执行前后插入逻辑.hooks(...)
Interceptors拦截器,在每次模型调用前拦截和增强.interceptors(...)
Output Type结构化输出,约束模型输出为指定的 Java 类型.outputType(Xxx.class)

依赖引入

使用 Spring AI Alibaba ReactAgent 需要引入以下依赖:

<!-- Spring AI Alibaba Agent 框架主体 -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-agent-framework</artifactId>
<version>1.1.0.0</version>
</dependency>

<!-- 阿里云灵积模型接入(DashScope) -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
<version>1.1.0.0</version>
</dependency>
版本说明

Spring AI Alibaba 从 1.1 版本开始提供完整的 ReactAgent 支持。如果你使用其他模型(如通过 OpenAI 兼容协议接入硅基流动、DeepSeek 等),可以只引入 spring-ai-alibaba-agent-framework,模型层使用 Spring AI 原生的 starter。

最简示例:创建你的第一个 Agent

// 创建最简单的 ReactAgent
ReactAgent agent = ReactAgent.builder()
.name("my_first_agent")
.model(chatModel) // 注入的 ChatModel Bean
.systemPrompt("你是一个友好的助手,请用简洁的语言回答问题。")
.build();

// 同步调用
String response = agent.call("你好,请介绍一下自己").getText();

// 流式调用
Flux<NodeOutput> stream = agent.stream("讲个笑话", config);

这就是 ReactAgent 最核心的用法:通过 Builder 模式构建 Agent 实例,然后调用 call()stream() 方法与之对话。

付费内容提示

该文档的全部内容仅对「JavaUp项目实战&技术讲解」知识星球用户开放

加入星球后,你可以获得:

  • 超级八股文:100万+字的全栈技术知识库,涵盖技术核心、数据库、中间件、分布式等深度剖析的讲解
  • 讲解文档:超级AI智能体、黑马点评Plus、大麦、大麦pro、大麦AI、流量切换、数据中台的从0到1的详细文档
  • 讲解视频:超级AI智能体、黑马点评Plus、大麦、大麦pro、大麦AI、流量切换、数据中台的核心业务详细讲解
  • 1 对 1 解答:可以对我进行1对1的问题提问,而不仅仅只限于项目
  • 针对性服务:有没理解的地方,文档或者视频还没有讲到可以提出,本人会补充
  • 面试与简历指导:提供面试回答技巧,项目怎样写才能在简历中具有独特的亮点
  • 中间件环境:对于项目中需要使用的中间件,可直接替换成我提供的云环境
  • 面试后复盘:小伙伴去面试后,如果哪里被面试官问住了,可以再找我解答
  • 远程的解决:如果在启动项目遇到问题,本人可以帮你远程解决
进入星球后,即可享受上述所有服务,保证不会再有其他隐藏费用。
知识星球二维码

1. 打开微信 -> 扫描左侧二维码 -> 加入「JavaUp项目实战&技术讲解」知识星球

2. 查看星球使用指导,获取完整项目讲解资料索引

👉 点击解锁全部付费内容
🎁优惠