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 遵循指令,根据需要加载引用的文件或执行捆绑的代码
这种方法允许你注册数百个技能,同时保持上下文窗口精简。
为什么在 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 工具








