SpringAI Agent开发秘籍:让javaer也可以用上Agent Skills

SpringAI Agent开发秘籍:让javaer也可以用上Agent Skillsblockquote 告别传统 AI 开发 SpringAI Agent Skills 重新定义智能应用 blockquote p 要说最近 AI 相关话题中什么最火 毫无疑问是 strong Claude Skills strong 让我感到震惊的倒不是它为什么火爆 而是 SpringAI 居然已经迅速支持上 Skills 了 p

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
    
告别传统AI开发!SpringAI Agent + Skills重新定义智能应用

要说最近AI相关话题中什么最火,毫无疑问是Claude Skills,让我感到震惊的倒不是它为什么火爆,而是SpringAI居然已经迅速支持上Skills了,这效率真的是堪比🚀了。

谁说AI时代java开发者要掉队了? 肉虽然不一定吃得上,但是喝口汤还是妥妥的

接下来我们通过构建一个code reviewer, 来实际体验一把,如何将SpringAI和Skills结合起来使用

1. 基础环境要求

要体验SpringAI & Skills,目前需要升级到SpringAI 2.x版本,同时我们的SpringBoot也可以升级到4.x

  • SpringAI: 2.0.0-M2
  • JDK21
  • SpringBoot: 4.0.1

除了这几个基本依赖之外,我们可以选择一个支持Function Tool的大模型来作为这个实现的大脑中枢

我们这里选择智谱的大模型 (原因就是因为它免费,且效果还行,对所有想体验的小伙伴没有任何额外成本投入)

2. 项目创建

接下来我们创建一个SpringAI应用,对于一个标准的SpringAI应用,在配置中,你会看到下面这些基础版本指定,这个也没什么好说的

GPT plus 代充 只需 145

接下来重点看一下我们这个项目所用到的几个核心依赖

 
  
    
    
  • spring-ai-agent-utils: 这个就是SpringAI进行agent开发的关键依赖包
  • spring-ai-starter-model-zhipuai: 这个是智谱大模型进行交互的依赖包

3. 项目配置

依赖搞定之后,接下来就是在配置文件中,配置LLM访问的相关信息、以及agent相关配置参数,对应的配置文件

GPT plus 代充 只需 145

这几个配置看起来和之前SpringAI相关的并没有太多的区别,其中 相关的配置中,主要设置了skills的存放路径,使用的model

根据上面的定义,我们将skills信息,放在目录下

新增一个目录,目录下的文件为

对应的内容如下

GPT plus 代充 只需 145

4. Skills简要说明

我们上面的Skill比较简单,就是一个markdown文档,SpringAI支持的Skills中,除了包含基本的文件(包含元数据(名称和描述)以及指导代理如何执行特定任务的说明)之外,还可以有相关的脚本、模板和参考资料

一个常见的skills结构如下

现在前置准备已经完成,接下来开始正式的体验吧

2.1 交互日志打印 MyLoggingAdvisor

为了让系统与大模型之间的交互更清晰,我们将双方交互的日志进行更友好的打印(也顺便看一下,一次用户感知的问答过程中,实际上有几次交互)

GPT plus 代充 只需 145

2.2 准备用于评审的代码

我们直接使用 实战 | 零基础搭建知识库问答机器人:基于SpringAI+RAG的完整实现 中的代码分块的内容作为待评审的内容,看下这段简单的文本分块工具会评审出什么内容

2.3 核心实现

配置Agent实现代码评审

Bean定义与依赖注入

  • CommandLineRunner: Spring启动后自动执行的接口
  • ChatClient.Builder: 用于构建聊天客户端
  • @Value(“${agent.skills.dirs:Unknown}”): 注入配置属性,获取技能目录资源列表

ChatClient配置链

  • 系统提示词配置:
  • 技能工具配置:
    • SkillsTool.builder().addSkillsResources(agentSkillsDirs).build(): 动态加载预定义的技能资源
    • FileSystemTools.builder().build(): 提供文件系统访问能力
    • ShellTools.builder().build(): 提供命令行执行能力
  • Advisor配置:
    • ToolCallAdvisor.builder().build(): 处理工具调用逻辑
    • MyLoggingAdvisor.builder().showAvailableTools(false).showSystemMessage(false).build(): 自定义日志记录,隐藏工具和系统消息详情

代码评审执行流程

请求执行

  • prompt(): 构建提示词
  • .call(): 发起AI请求
  • .content(): 获取返回结果
GPT plus 代充 只需 145

2.4 执行演示

接下来我们启动项目,验证一下效果如何(在启动命令行参数中,配置上大模型的api-key,当然也可以直接在yml配置文件中进行配置)

 
  
    
    

从上面的截图也可以看出,系统与大模型之间进行了三轮对话,

  1. 第一轮: 用户的原始诉求 -> 大模型
  • 大模型识别到需要进行代码评审,给系统响应
  1. 第二轮:系统接收到响应之后,读取skills的约束进行响应
  • 大模型返回需要读取需要评审的代码内容,对应的响应为
  1. 第三轮:系统读取代码内容,发送给大模型
  • 大模型返回评审结果

下面是完整的返回文本,有兴趣的小伙伴可以看看

GPT plus 代充 只需 145

SpringAI的Agent开发范式配合Skills机制,非常简单就实现了AI应用的工程化。整个过程实现下来,门槛还是比较低的。 不得不高喊一声:

实现方式虽然简单,但是这个背后的设计哲学、开发思维的转变,还是很值得我们学习参考的——在AI时代,如何将我们现有的技能(如可复用、模块化思设计等)转变到大模型应用开发,这可能是我们每一个程序员最大的财富。

那么这一套是怎么实现的呢?

Spring AI采用基于工具的集成方法,通过实现各种工具,使任何LLM都能回调执行,Skills的运行过程,通常是下面三步:

  1. 发现(启动阶段)
  • 通过文件中的元数据,快速实现技能的安装注册
  1. 语义匹配(对话过程中)
  • 当用户发出请求时,LLM 会检查工具定义中嵌入的技能描述。如果 LLM 判断用户请求在语义上与某个技能的描述匹配,则会调用该技能工具,并将技能名称作为参数传递给它。
  1. 执行(技能调用时)
  • 当调用技能工具时,SkillsTool会从磁盘加载完整的SKILL.md内容,并将其与技能的基础目录路径一起返回给大型语言模型(LLM)。然后,LLM会按照技能内容中的指令执行。如果技能引用了其他文件或辅助脚本,LLM会使用的函数或的函数来按需访问它们

项目源码:

  • https://github.com/liuyueyi/spring-ai-demo/tree/master/v2/T01-agentic-skills-simple-design

零基础入门:

  • LLM 应用开发是什么:零基础也可以读懂的科普文(极简版)
  • 大模型应用开发系列教程:序-为什么你“会用 LLM”,但做不出复杂应用?
  • 大模型应用开发系列教程:第一章LLM到底在做什么?
  • 大模型应用开发系列教程:第二章 模型不是重点,参数才是你真正的控制面板
  • 大模型应用开发系列教程:第三章 为什么我的Prompt表现很糟?
  • 大模型应用开发系列教程:第四章Prompt 的工程化结构设计
  • 大模型应用开发系列教程:第五章 从 Prompt 到 Prompt 模板与工程治理
  • 大模型应用开发系列教程:第六章 上下文窗口的真实边界
  • 大模型应用开发系列教程:第七章:从 “堆上下文” 到 “管理上下文”

实战

  • 大模型应用开发实战:两百行实现一个自然语言地址提取智能体
  • 大模型应用开发实战:基于SpringAI与大模型的零配置发票智能提取架构
  • 实战 | 零基础搭建知识库问答机器人:基于SpringAI+RAG的完整实现

参考:

  • Spring AI Agentic Patterns (Part 1): Agent Skills - Modular, Reusable Capabilities
小讯
上一篇 2026-03-16 08:14
下一篇 2026-03-16 08:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/239774.html