什么是递归Advisor
递归Advisor是一类特殊Advisor,可以多次循环执行下游Advisor链。当需要反复调用大模型,直到满足特定终止条件时,就适合使用该模式,典型场景:
- 循环执行工具调用,直到不再需要调用任何工具
- 校验结构化输出,校验失败自动重试
- 修改请求报文,实现结果评估逻辑
- 修改请求报文,实现重试逻辑

CallAdvisorChain.copy(Cal…
递归Advisor是一类特殊Advisor,可以多次循环执行下游Advisor链。当需要反复调用大模型,直到满足特定终止条件时,就适合使用该模式,典型场景:

CallAdvisorChain.copy(Cal…
Spring AI 的普通Advisor采用单次执行模型:请求沿着Advisor链流转,抵达大模型,再将响应原路返回。该模式适合简单交互场景;但当我们需要迭代行为时(例如结构化输出失败后重试、连续执行多次工具调用),普通Advisor就力不从心。
Spring AI 1.1版本引入了**递归Advisor(Recursive Advisors)**来解决该问题。
递…
Spring AI 的 Advisors API 提供一套灵活、强大的机制,用于拦截、修改、增强 Spring 应用内 AI 交互流程。借助 Advisors API,开发者可以构建更加复杂、可复用、易维护的 AI 组件。
核心收益:
可以通过 C…
AI驱动应用已经成为现实。我们大量开发RAG检索增强应用、提示词接口,基于大语言模型构建各类项目。借助Spring AI,可以更高效、规范地完成这类开发。
本文将介绍 Spring AI 中非常实用的组件:Advisor(顾问/拦截器),它可以帮我们处理各类通用重复任务。
Advisor 是AI应用中的请求‑响应拦截器,可以…
高层API .entity(…) 底层基于 StructuredOutputConverter(结构化输出转换器)抽象实现。大多数业务应用不会直接使用该底层API。 当遇到下面几种场景,才需要直接使用这套底层API:
Ch默认情况下,.entity(…)会将JSON Schema作为文本指令追加到提示词中。这属于响应侧方案:只是请求模型遵守格式,拿到返回结果之后再做解析。
与之互补的另一种方案是请求侧约束:在API调用层面告知模型服务商,响应必须严格遵循指定Schema。如今绝大多数主流大模型服务商都支持该能力:OpenAI的Structured Outputs、Anthropic…
默认的 .entity(…) 调用只是请求模型输出符合JSON Schema规范的内容,并无法强制模型一定遵守。当模型返回多余字段、缺失必填字段,或者在JSON前后附带大段自然文本描述时,解析器就会抛出异常。
处理格式异常输出最简单的方案就是:检测错误,然后重试。Spring AI 只需在 EntityParamSpec 配置器上开启一个开关即可自动完成这套逻辑:
大语言模型是文本输入、文本输出的系统。当下游代码需要根据某个字段做分支判断、持久化数据、基于结果执行业务逻辑时,需要将原始文本转换成带类型的对象记录。
结构化输出(Structured Output) 就是用来解决该问题的:引导大模型输出符合指定 Schema 的文本,由应用程序将其反序列化为类型安全的对象,最后让业务代码像使用普通领域对象一样执行操作。
Spring A…
Subagent Framework(子智能体框架)提供了一套协议无关抽象层,用于将各类智能体通信协议与 TaskTool 集成。开发者可以通过统一接口,编排来自不同后端的异构智能体:本地基于大模型的子智能体、遵循A2A协议的远程智能体,或是自定义实现的智能体。
服务提供者接口(SPI)全部定义在 spring‑ai‑agent‑utils‑common 模块中。这…
Agent2Agent(A2A)协议 是一种用于实现 AI 智能体无缝通信的开放标准。它让不同平台的智能体能够彼此发现能力、交换消息、协同工作流,而不受其底层实现方式的限制。
Spring AI A2A 通过 Spring Boot 自动配置,将 A2A Java SDK 与 Spring AI 深度集成。它能把 A2A 协议与 Spring AI 的 ChatClient 和工具体系无缝连接,让你可以…