news 2026/4/29 19:13:02

Spring AI Alibaba 核心组件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring AI Alibaba 核心组件

Spring AI Alibaba 核心组件

Tools(工具)

工具创建

创建工具需要实现BiFunction<String, ToolContext, String>接口方法。

接口方法说明

接口中包含两个核心方法:

  1. apply方法(核心方法)

    • 参数:String s- 通常是用户输入的参数
    • 参数:ToolContext toolContext- 工具上下文,包含调用时的元数据、配置等
    • 返回值:String- 处理结果
  2. andThen方法(链式调用)

    • 用于链式调用,可以继续添加后续处理工具
    • 通常是默认实现

工具调用示例

// 基本工具调用ToolCallbacksearchTool=FunctionToolCallback.builder("weather",poeticWeatherTool).inputType(String.class).description("天气查询工具").build();

⚠️ 注意:inputType必须要定义

链式工具创建

如果需要用到andThen方法,在创建工具调用时使用andThen创建链式工具:

WeatherToolweatherTool=newWeatherTool();// 显式调用 andThen,传入后置处理函数BiFunction<String,ToolContext,String>poeticWeatherTool=weatherTool.andThen(result->{// 可以在这里二次处理结果returnresult;});

完整使用流程

  1. 实现BiFunction<String, ToolContext, String>接口创建工具类
  2. 使用andThen方法进行链式处理(可选)
  3. 通过FunctionToolCallback.builder()构建工具回调
  4. 必须指定inputType
  5. 添加描述信息便于理解和使用

System Prompt(系统提示)

两种用法

  1. systemPrompt

    • 使用场景:个性化、场景化适配
  2. instruction

    • 使用场景:通用角色定义
    • 优先级:instruction > systemPrompt

动态系统提示词

动态的系统提示词是通过ModelInterceptor(模型拦截器)来实现的:

  • 可以追加到原有的提示词后面
  • 也可以覆盖原有的提示词
ModelInterceptor 接口方法

ModelInterceptor 包含两个核心方法:

  1. interceptModel

    • 拦截模型,实现动态系统提示词
    • 除了实现动态提示词,还可以实现其他功能
    • 例如:日志记录、权限控制等
  2. getName

    • 获取拦截器名称

Agent 执行方法

核心执行方法

常用的两个方法:invokecall

  • 两者都是触发 Agent 执行的方法
  • invoke方法可以调用到 Agent 的历史记录等多种信息
核心应用场景
  • 多轮对话
  • 复杂工作流
  • 工具调用
  • 状态管理

RunnableConfig 配置对象

RunnableConfig 是配置对象,常用方法包括:

  1. threadId

    • 设置线程ID
  2. addMetadata

    • 添加元数据
    • 增量添加运行时上下文信息

结构化输出

outputType 和 outputSchema 比较

属性outputTypeoutputSchema
类型Class<T>- Java 类String/Schema- JSON Schema 定义
使用方式直接指定 POJO 类提供 JSON Schema 字符串或对象
适用场景有现成 Java 类的强类型场景需要动态定义结构或无对应 Java 类
底层机制框架自动生成 Schema 并绑定到类直接使用提供的 Schema 定义
灵活性较低(受类结构限制)较高(可动态构建)
性能较高(编译时确定结构)较低(运行时解析)

outputSchema 转化

⚠️ 注意:outputSchema需要通过Be

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 17:05:58

SIR-3000地质雷达信号弱处理方法

SIR-3000作为雷达探测仪器&#xff0c;信号强弱直接影响数据采集精度&#xff0c;其信号弱问题主要源于连接、参数设置、环境干扰或硬件异常&#xff0c;可按以下步骤逐步排查处理&#xff0c;优先操作简单易上手的项&#xff0c;再推进至专业调试&#xff0c;确保高效解决问题…

作者头像 李华
网站建设 2026/4/18 7:44:07

数据科学和临床数据科学的发展

下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容&#xff08;原文7310字&#xff09;。 1篇1章1节&#xff1a;医药数据科学的历程和发展&#xff0c;用R语言探索数据科学&#xff08;更新20241029&#xff09;_《用r探索医药数据科学》-CSDN博客 一、数据科学和临床…

作者头像 李华
网站建设 2026/4/19 0:25:05

开始开发网络版的APP

主要目的是&#xff1a;复习Django&#xff0c;因为不复习一下&#xff0c;就全都忘记了。作为app后端&#xff0c;当然要做到熟练。我们的服务器既然在国外&#xff0c;那就不用担心什么许可证的问题。还可以先上架一些有用的服务&#xff1a;比如在线文件格式转换什么的。

作者头像 李华
网站建设 2026/4/19 4:41:20

还没部署OpenClaw?2026年OpenClaw(Clawdbot)秒级部署图文步骤

还没部署OpenClaw&#xff1f;2026年OpenClaw(Clawdbot)秒级部署图文步骤&#xff01;OpenClaw(原名Clawdbot/Moltbot)是一款开源的本地优先AI代理与自动化平台。它不仅能像聊天机器人一样对话&#xff0c;更能通过自然语言调用浏览器、文件系统、邮件等工具&#xff0c;完成整…

作者头像 李华