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 等任何支持的模型上使用。
这是 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(用于执行辅助脚本)配合使用。









