Spring AI宣布支持Agent Skills,Java开发者的福音

Agent Skills是一种模块化能力,以包含YAML前置元数据的Markdown文件形式打包。每个技能都是一个文件夹,其中包含一个SKILL.md文件,该文件包含元数据(至少包括名称和描述)以及指导AI Agent如何执行特定任务的说明。

Agent Skills(AI Agent技能)正在成为构建智能应用的新范式。它将AI能力模块化为可发现、可加载的资源包,让开发者不再需要为每个任务硬编码知识或创建专用工具。

Spring A正式I将这一设计模式引入Java生态系统,并实现了跨LLM的可移植性——你只需定义一次技能,就能在OpenAI、Anthropic、Google Gemini等任何支持的模型上使用。

这是Spring AI Agentic Patterns系列的第一篇文章。本系列将深入探讨spring-ai-agent-utils工具包,一套受Claude Code启发的完整Agent模式集合。

我们将依次介绍Agent Skills(本文)、任务管理、AskUserQuestion交互式工作流,以及用于复杂多Agent系统的分层子Agent。

什么是Agent Skills

Agent Skills是一种模块化能力,以包含YAML前置元数据的Markdown文件形式打包。

每个技能都是一个文件夹,其中包含一个SKILL.md文件,该文件包含元数据(至少包括名称和描述)以及指导AI Agent如何执行特定任务的说明。

技能还可以捆绑脚本、模板和参考资料。前置元数据支持简单的字符串值和复杂的YAML结构(列表、嵌套对象),以应对高级使用场景。

技能使用渐进式加载来高效管理上下文:

• 发现阶段- 启动时,Agent仅加载每个可用技能的名称和描述,刚好足以知道何时可能相关

• 激活阶段- 当任务匹配技能描述时,Agent将完整的SKILL.md指令读入上下文

• 执行阶段- Agent遵循指令,根据需要加载引用的文件或执行捆绑的代码

这种方法允许你注册数百个技能,同时保持上下文窗口精简。想了解更多关于Agent Skills的信息,可以访问官方规范网站agentskills.io。

为什么在Spring AI中使用Agent Skills

无缝集成- 通过简单注册几个工具,即可将Agent Skills添加到现有Spring AI应用中,无需架构变更

可移植且模型无关- 与绑定到特定LLM平台的实现不同,Spring AI的实现跨多个LLM提供商工作,让你无需重写代码或技能即可切换模型

可重用和可组合- 技能可以跨项目共享、与代码版本控制、组合创建复杂工作流,并通过辅助脚本和参考资料进行扩展。Spring AI Skills无缝支持任何现有的Claude Code Skills

相关的Spring AI工具:Agent Skills与其他基于工具的Spring AI功能配合良好,例如用于高效工具选择的动态工具发现,以及用于在技能执行期间捕获LLM推理的工具参数增强。

Spring AI Skills的工作原理

Spring AI采用基于工具的集成方法,实现了允许任何LLM触发技能并访问捆绑资产的工具。该实现严格遵循Claude Code的Skills、Bash和Read工具规范。

核心工具集包括:SkillsTool(必需)、ShellTools(可选)和FileSystemTools(可选)。

SkillsTool提供一个Skill函数,使AI模型能够按需发现和加载指定的技能,与FileSystemTools(用于读取参考文件)和ShellTools(用于执行辅助脚本)配合使用。

技能通过三步流程运作:

1. 发现(启动时)- 初始化期间,SkillsTool扫描配置的技能目录(如.claude/skills/),并从每个SKILL.md文件解析YAML前置元数据。它提取名称和描述字段来构建轻量级技能注册表,该注册表直接嵌入Skill工具的描述中,使其对LLM可见而不消耗对话上下文

2. 语义匹配(对话期间)- 当用户提出请求时,LLM检查嵌入在工具定义中的技能描述。如果LLM确定用户请求在语义上与技能描述匹配,它将使用技能名称作为参数调用Skill工具

3. 执行(技能调用时)- 当调用Skill工具时,SkillsTool从磁盘加载完整的SKILL.md内容,并将其与技能的基本目录路径一起返回给LLM。然后LLM遵循技能内容中的指令。如果技能引用其他文件或辅助脚本,LLM使用FileSystemTools的Read函数或ShellTools的Bash函数按需访问它们

实战案例:带引用和脚本的技能

第三步的按需加载在技能捆绑额外资源时变得强大。技能可以包含带有补充指令的参考文件和用于数据处理的可执行脚本——全部仅在需要时加载。

以下是一个来自my-skill技能的示例,该技能包含YouTube转录提取辅助脚本和补充research_methodology.md指令。

当用户询问"解释这个视频中的概念:https://youtube.com/watch?v=abc123。遵循研究方法"时,AI会:

• 调用my-skill技能并加载其SKILL.md内容

• 识别研究方法需求并使用Read加载research_methodology.md

• 识别YouTube URL并通过ShellTools使用Bash执行辅助脚本

• 使用视频转录遵循研究方法指令解释概念

脚本代码从不进入上下文窗口——只有输出进入,使这种方法具有高度的token效率。

安全提示:脚本直接在本地机器上执行,没有沙箱。你需要预安装任何所需的运行时(Python、Node.js等)。为了更安全的操作,考虑在容器中运行Agent应用程序。

快速开始

准备将Agent Skills添加到Spring AI项目了吗?

第一步:添加依赖

在pom.xml中添加spring-ai-agent-utils依赖,版本0.3.0。

需要注意的是,你需要Spring-AI版本2.0.0-SNAPSHOT或2.0.0-M2(发布后)。最新稳定版本请查看GitHub发布页面。

第二步:配置Agent

在Spring Boot应用程序中,通过ChatClient.Builder配置你的Agent。

使用SkillsTool.builder()添加技能目录(如.claude/skills),并注册FileSystemTools和ShellTools。

生产环境提示:对于打包的应用程序,你可以使用Spring Resources从类路径加载技能。这在将技能作为JAR/WAR部署的一部分分发时特别有用。

第三步:创建第一个技能

创建一个代码审查技能示例。

在.claude/skills/code-reviewer目录下创建SKILL.md文件,定义技能名称、描述和指令。该技能将指导LLM检查安全漏洞、验证Spring Boot最佳实践、寻找潜在的空指针异常,并提供可读性和可维护性的改进建议。

第四步:使用技能

当你运行应用程序时,

LLM将会:匹配"审查这个控制器"与code-reviewer技能的描述;调用Skill工具从SKILL.md加载完整指令;使用Read工具(来自FileSystemTools)访问UserController.java文件;遵循审查指令并提供详细反馈。

技能的指令指导LLM的行为,而无需在提示中硬编码审查逻辑——只需更新技能文件即可更改审查的工作方式。

当前限制

虽然Spring AI Agent Skills实现功能强大且灵活,但需要注意一些当前的限制:

• 脚本执行安全性- 通过ShellTools执行的脚本直接在本地机器上运行,没有沙箱。这意味着潜在的不安全代码可能访问文件系统、网络或系统资源。始终在使用前审查技能脚本,特别是来自第三方的脚本。考虑在容器化环境(Docker、Kubernetes)中运行Agent应用程序以限制暴露

• 缺少人机协同机制- 目前没有内置机制要求在执行技能或脚本之前获得人工批准。LLM可以自动调用任何注册的技能并执行任何捆绑的脚本。对于处理敏感操作的生产环境,你可能需要使用Spring AI的工具回调机制实现自定义批准工作流

• 有限的技能版本控制- 目前没有内置的技能版本系统。如果你更新技能的行为,所有使用该技能的应用程序将立即使用新版本。对于生产部署,考虑通过目录结构实现自己的版本策略(例如,.claude/skills/v1/、.claude/skills/v2/)

总结与展望

Agent Skills为Spring AI应用带来了模块化、可重用的能力,而不会被供应商锁定。通过按需提供领域知识,你可以在不更改代码的情况下更新Agent行为,跨项目共享技能,并无缝切换LLM提供商。

spring-ai-agent-utils实现使Java开发人员能够以简单、基于工具的方法访问这种模式。无论是构建编码助手、文档生成器还是特定领域的Agent,技能都为组织Agent知识提供了可扩展的基础。

这仅仅是开始。本系列即将发布的文章将深入探讨高级Agent模式,这些模式将改变Agent处理复杂工作流的方式:

即将推出的系列内容:

• 任务管理- 学习TodoWriteTool如何通过状态跟踪管理多步骤任务,实现透明、可追踪的Agent工作流

• 使用AskUserQuestion的交互式工作流- 发现Agent如何在执行期间收集用户偏好并澄清需求

• 分层子Agent- 探索TaskTools构建多Agent架构,其中专业的子Agent使用专用上下文窗口处理复杂任务

在此过程中,我们将演示核心Agent工具——FileSystemTools、ShellTools、GrepTool、GlobTool和Web访问工具——如何与这些模式集成以实现复杂的Agent行为。

从示例项目开始探索,或深入了解Agent Skills规范以了解更多信息。相关资源包括Spring AI Agent Utils工具包GitHub仓库、完整文档、工具文档,以及skills-demo、code-agent-demo和subagent-demo等示例项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1184335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Green Hills】Validate授权文件分析和服务端授权部署

1、 文档目标 分析授权文件的结构和各个功能组件进行对应,为后期排查客户授权问题提供理论基础。 记录Helix QAC和Validate服务器端授权快速部署步骤,避免后续出现授权冲突文件,减少售后成本。对QAC授权、Validate授权和license文件间的调用…

提示词工程到AgenticOps:OpenCSG公益课

由特许全球金融科技师CGFT认证项目(Chartered Global FinTech) 、模速空间与OpenCSG(开放传神)联合推出《普通人的AI掘金课——6天学会,马上能用》系列直播课程,提供了一条非常清晰的上升路径:先学会用提示词把任…

小途知识-浮标水质监测站

Q1:这款浮标水质分析仪的核心定位是什么?为何能适配江河湖库水质监测需求?A:核心定位是“江河湖库全域移动化、精准化、智能化水质监测设备”,专注解决传统监测模式灵活性差、覆盖不足、响应滞后的痛点,聚焦…

ACL 2025 新方法 MoC,重新定义文本分块与评估

来自中国人民大学、上海IAAR研究院的团队在ACL 2025上提出的MoC(Mixtures of Text Chunking Learners)框架,不仅创新性地解决了分块质量评估难题,更实现了计算效率与分块精度的最优平衡,为RAG系统性能提升提供了全新思…

探寻2026年优质不锈钢中厚板现货厂家,品质之选在此,不锈钢装饰板/不锈钢六角棒,不锈钢中厚板源头厂家推荐榜单 - 品牌推荐师

当前,不锈钢中厚板作为工业制造、建筑装饰、能源化工等领域的关键材料,其市场需求持续攀升。得益于耐腐蚀、高强度、易加工等核心优势,不锈钢中厚板在复杂工况下展现出稳定性能,成为众多行业升级转型的首选材料。随…

Invicti Enterprise On-Premises v25.11.0 - 企业级应用安全

Invicti Enterprise On-Premises v25.11.0 - 企业级应用安全 Invicti Enterprise On-Premises Released November 2025 请访问原文链接:https://sysin.org/blog/invicti-enterprise/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysi…

宠物洗澡打泡机方案开发,宠物洗澡电动泡泡机MCU控制方案分析

宠物洗澡打泡机主要用于将宠物沐浴液与水混合,通过内部电机/泵产生丰富、细腻的泡沫,直接涂抹在宠物身上,以提升清洁效率和体验。主要功能模块: 泡沫生成:控制水泵/气泵电机,实现水、空气、沐浴液三者的混合…

HGDB中的扫描类型

文章目录 文档用途详细信息 文档用途 介绍HGDB中的扫描类型 详细信息 1、全表扫描 全表扫描在HGDB中也称为顺序扫描(seq scan),全表扫描就是把表的所有数据块从头到尾读一遍,然后筛选出符合条件的数据块。 全表扫描在explain命…

又到一年年终啦,我也浅浅总结下项目经常用到的ES7及以后版本的核心新特性,码友友们,这些你都知道吗

自ES6(ECMAScript 2015)带来大规模语法革新后,ECMAScript标准开启了每年迭代的节奏,从ES7(2016)开始,每个版本都聚焦于实用小特性的补充与优化,逐步解决开发者在日常编码中的痛点。本…

【Java开发】gRPC协议原理剖析及其在微服务架构中的应用

【精选优质专栏推荐】 《AI 技术前沿》 —— 紧跟 AI 最新趋势与应用《网络安全新手快速入门(附漏洞挖掘案例)》 —— 零基础安全入门必看《BurpSuite 入门教程(附实战图文)》 —— 渗透测试必备工具详解《网安渗透工具使用教程(全)》 —— 一站式工具手册《CTF 新手入门实战教…

深度剖析eBPF技术原理及其在微服务网关性能优化中的实践应用

【精选优质专栏推荐】 《AI 技术前沿》 —— 紧跟 AI 最新趋势与应用《网络安全新手快速入门(附漏洞挖掘案例)》 —— 零基础安全入门必看《BurpSuite 入门教程(附实战图文)》 —— 渗透测试必备工具详解《网安渗透工具使用教程(全)》 —— 一站式工具手册《CTF 新手入门实战教…

React Vue 如何让 Cookie 逻辑“秒变优雅”?

你是否还在为 document.cookie 的手动操作头疼?设置一个登录 token,还得手动处理编码、路径、过期时间,一不小心就触发跨域错误或 XSS 风险?更糟的是,每次写代码都像在玩“cookie 拼图”——要么漏了 HttpOnly&#xf…

GBase8s集合类型之关联数组简介

GBase 8s兼容oracle的PL/SQL编程语言,PL/SQL 语法需要显式设置环境变量SQLMODE为’ORACLE’后才能生效,默认情况下8s的SQLMODE为’GBASE’,此时不支持 PL/SQL 语法。本文将介绍GBase 8s兼容oracle模式中的关联数组类型,包括它们的…

GBase 8a 参数gcluster_shrink_to_rebalance使用介绍

参数功能控制shrink操作使用rebalance方式的开关。 取值 0:关闭 shrink to rebalance 功能; 取值 1: 打开 shrink to rebalance 功能; 默认取值:1。原理特性该参数为862-Build43后的新功能。打开该参数,执行…

打工人救星!用doocs md写公众号必搭cpolar,再也不用卡局域网里改稿了

文章目录1 项目 doocs/md 介绍2 安装Nodejs环境2.1 下载Nodejs安装程序2.2 安装Nodejs程序2.3 验证Nodejs是否安装2.4 设置国内淘宝镜像源3 下载本地部署doocs/md项目3.1 将项目下载至本地3.2 解压doocs/md项目3.3 安装依赖和启动doocs/md项目4 将网站穿透至公网(cp…

帝国CMS搭建全攻略:从安装到优化

帝国CMS搭建指南系统环境准备确保服务器环境满足以下要求:PHP版本5.6及以上,MySQL数据库5.0及以上,推荐使用Apache或Nginx作为Web服务器。Windows系统建议使用WAMP/LAMP集成环境,Linux系统需提前安装PHPMySQL环境组件。下载与安装…

GBase 8c数据库磁盘故障定位技术分享

南大通用GBase 8c数据库常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。部分磁盘故障会导致文件系统损坏,例如磁盘未挂载,数据库管理自动定期执行磁盘检测时会识别故障并将实例停止,查看数据库状态时对应实例状态异常&#xff1…

852-017500-003-6-C220ASSEMBLY CHASSIS 14 英寸屏幕LAM

产品概述该部件为LAM Research(泛林半导体)生产的设备组件,型号为852-017500-003-6-C220,属于14英寸屏幕的底盘组装件(Chassis Assembly)。LAM Research是全球领先的半导体制造设备供应商,此类组…

Windows版本的Dify平台搭建

Windows版本基于Docker的Dify平台搭建 1:名词解释 1.1:Hyper-V Hyper-V 是微软提供的 **Type-1(裸机型)虚拟化技术**,可在一台物理计算机上同时运行多个相互隔离的虚拟机。每个虚拟机拥有独立的操作系统和虚拟硬件资源,通过虚拟…

Sanyo Denki PU0A030EMA1S00 伺服放大器

Sanyo Denki PU0A030EMA1S00 伺服放大器概述Sanyo Denki(山洋电气)PU0A030EMA1S00 是一款高性能伺服放大器,专为精密运动控制应用设计。该型号通常用于工业自动化、机器人、CNC机床等场景,支持与配套的伺服电机协同工作&#xff0…