跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaAIjava

Spring AI Agent Skills 功能介绍与实战指南

Spring AI 引入 Agent Skills 模块化能力,通过包含 YAML 元数据的 Markdown 文件定义 AI 智能体任务指令。该功能实现跨 LLM 可移植性,支持 OpenAI、Anthropic 等模型,无需硬编码知识。集成基于工具的方法,包含 SkillsTool、ShellTools 等,支持渐进式加载以优化上下文窗口。开发者可通过 spring-ai-agent-utils 快速配置 Agent,结合文件系统与脚本执行实现复杂工作流。需注意脚本执行无沙箱的安全风险及版本控制限制。适用于构建编码助手、文档生成器等场景,为 Java 开发者提供可扩展的 Agent 知识组织基础。

steve发布于 2026/4/8更新于 2026/5/2119 浏览
Spring AI Agent Skills 功能介绍与实战指南

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

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

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

什么是 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 模式。相关资源包括 Spring AI Agent Utils 工具包 GitHub 仓库、完整文档、工具文档,以及 skills-demo、code-agent-demo 和 subagent-demo 等示例项目。

目录

  1. 什么是 Agent Skills
  2. 为什么在 Spring AI 中使用 Agent Skills
  3. Spring AI Skills 的工作原理
  4. 实战案例:带引用和脚本的技能
  5. 快速开始
  6. 第一步:添加依赖
  7. 第二步:配置 Agent
  8. 第三步:创建第一个技能
  9. 第四步:使用技能
  10. 当前限制
  11. 总结与展望
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VSCode Copilot MCP 快速上手与配置实战
  • JavaScript 基础:鼠标事件中的修饰键与相关元素
  • 大数据基于Python的在线考试与评估系统设计与实现
  • Python 依赖注入(DI)实战:三种实现方式、代价权衡与可测试性案例
  • Windows 安装 Neo4j 图数据库指南
  • Webhook 原理与 Langflow 实战集成指南
  • SpringBoot 整合 Neo4j 图数据库项目实战
  • GitLab 个人访问令牌(Token)获取方法
  • Java Web 开发环境搭建:IDEA 与 Tomcat 配置实战
  • Fooocus:AI 绘画的极简主义实践指南
  • C# WinForm 调用 HeyGem 核心算法 DLL 封装实践
  • Webhook 核心原理及 Langflow 自动化工作流实践
  • ms-Mamba: 多尺度 Mamba 时间序列预测论文解读
  • ModelSim 仿真软件安装与使用指南
  • 万方 AIGC 检测未通过?多款降 AI 工具实测效果分析
  • Python+Agent 入门实战:搭建可复用 AI 智能体
  • 医疗 AI 可信系统:向量索引与贝叶斯网络实战
  • Linux 网络编程:基于 C++ 实现 JSON 与 HTTP Web 服务器
  • AI Agent 生产级框架实战:架构设计与核心实现
  • Java 分治算法实战:快速与归并排序

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online