SpringAI Advisor 04:递归 Advisor API

什么是递归Advisor

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

  • 循环执行工具调用,直到不再需要调用任何工具
  • 校验结构化输出,校验失败自动重试
  • 修改请求报文,实现结果评估逻辑
  • 修改请求报文,实现重试逻辑

CallAdvisorChain.copy(Cal

SpringAI Advisor 03:递归 Advisor

1 简介

Spring AI 的普通Advisor采用单次执行模型:请求沿着Advisor链流转,抵达大模型,再将响应原路返回。该模式适合简单交互场景;但当我们需要迭代行为时(例如结构化输出失败后重试、连续执行多次工具调用),普通Advisor就力不从心。

Spring AI 1.1版本引入了**递归Advisor(Recursive Advisors)**来解决该问题。

SpringAI Advisor 02:Advisors API

Spring AI 的 Advisors API 提供一套灵活、强大的机制,用于拦截、修改、增强 Spring 应用内 AI 交互流程。借助 Advisors API,开发者可以构建更加复杂、可复用、易维护的 AI 组件。

核心收益:

  • 封装各类重复出现的生成式AI业务模式;
  • 对发给大模型(LLM)、从大模型返回的数据做转换处理;
  • 在不同模型、不同业务场景之间实现业务逻辑可移植。

可以通过 C

SpringAI Advisor 01:使用说明

1. 概述

AI驱动应用已经成为现实。我们大量开发RAG检索增强应用、提示词接口,基于大语言模型构建各类项目。借助Spring AI,可以更高效、规范地完成这类开发。

本文将介绍 Spring AI 中非常实用的组件:Advisor(顾问/拦截器),它可以帮我们处理各类通用重复任务。

2. 什么是 Spring AI Advisor

Advisor 是AI应用中的请求‑响应拦截器,可以…

SpringAI 结构化输出 04:输出转换器

高层API .entity(…) 底层基于 StructuredOutputConverter(结构化输出转换器)抽象实现。大多数业务应用不会直接使用该底层API。 当遇到下面几种场景,才需要直接使用这套底层API:

  1. 需要解析内置转换器无法处理的输出(例如被Markdown代码块包裹的JSON);
  2. 需要处理非JSON格式,如YAML、CSV;
  3. 需要直接对接底层的 Ch

SpringAI 结构化输出 03:原生响应结构化输出

默认情况下,.entity(…)会将JSON Schema作为文本指令追加到提示词中。这属于响应侧方案:只是请求模型遵守格式,拿到返回结果之后再做解析。

与之互补的另一种方案是请求侧约束:在API调用层面告知模型服务商,响应必须严格遵循指定Schema。如今绝大多数主流大模型服务商都支持该能力:OpenAI的Structured Outputs、Anthropic…

SpringAI 结构化输出 02:Schema 校验和自纠正

默认的 .entity(…) 调用只是请求模型输出符合JSON Schema规范的内容,并无法强制模型一定遵守。当模型返回多余字段、缺失必填字段,或者在JSON前后附带大段自然文本描述时,解析器就会抛出异常。

处理格式异常输出最简单的方案就是:检测错误,然后重试。Spring AI 只需在 EntityParamSpec 配置器上开启一个开关即可自动完成这套逻辑:

SpringAI 结构化输出 01:使用说明

大语言模型是文本输入、文本输出的系统。当下游代码需要根据某个字段做分支判断、持久化数据、基于结果执行业务逻辑时,需要将原始文本转换成带类型的对象记录。

结构化输出(Structured Output) 就是用来解决该问题的:引导大模型输出符合指定 Schema 的文本,由应用程序将其反序列化为类型安全的对象,最后让业务代码像使用普通领域对象一样执行操作。

Spring A…

Spring AI 智能体 7 : 协议无关型智能体编排

Subagent Framework(子智能体框架)提供了一套协议无关抽象层,用于将各类智能体通信协议与 TaskTool 集成。开发者可以通过统一接口,编排来自不同后端的异构智能体:本地基于大模型的子智能体、遵循A2A协议的远程智能体,或是自定义实现的智能体。

服务提供者接口(SPI)全部定义在 spring‑ai‑agent‑utils‑common 模块中。这…

Spring AI 智能体 6 : 基于 A2A 协议构建交互智能体

Agent2Agent(A2A)协议 是一种用于实现 AI 智能体无缝通信的开放标准。它让不同平台的智能体能够彼此发现能力、交换消息、协同工作流,而不受其底层实现方式的限制。

Spring AI A2A 通过 Spring Boot 自动配置,将 A2A Java SDK 与 Spring AI 深度集成。它能把 A2A 协议与 Spring AI 的 ChatClient 和工具体系无缝连接,让你可以…