AI Skills 如何让大模型执行复杂任务?本文将从 Tools 与 Function Calling 的基本原理讲起,深入到 MCP 协议,并最终展示如何利用 Spring AI Alibaba 框架,为任意大模型赋予 Skills 能力,实现从理论到实践的完整闭环。
智能速览
AI Skills 的本质是沿用了 Function Calling 机制。
MCP 协议解决了大模型统一调用外部工具的难题。
Skills 是一种将复杂任务编排为 Subagent 的模式。
Spring AI Alibaba 已将 Skills 功能封装,简化开发流程。
开发者只需提供 Markdown 描述文件和对应脚本即可。
精华内容
理解 Skills 的原理是实现它的第一步,下面我们拆解其技术演进与实战方法。
工具调用基础
大模型本身无法获取实时信息,因此需要借助外部工具。其本质是模型将非结构化的自然语言,推理成一段包含方法名和参数的结构化调用指令。
应用程序通过反射识别此指令,并调用本地对应的方法。这套机制就是 Function Calling,它解决了大模型“怎么调用”程序内方法的问题。
外部工具整合
当需要查询众多第三方服务时,为每个服务单独写一个工具方法成本极高。MCP(Model Context Protocol)应运而生,它解决了“调哪里”的问题。
MCP 提供了 STDIO 和 HTTP 等统一通信协议,让应用程序能以标准方式远程调用第三方共享的工具。模型依然通过 Function Call 触发,再由应用程序转发调用至 MCP 服务器。
Skills 工作流
面对需要多步组合的复杂任务,如搜索并整理信息,传统 Agent 需要编写庞大的提示词来编排流程,维护困难。
Anthropic 提出的 Skills 模式,通过 Markdown 文件定义技能元数据和执行指令,将复杂流程封装成一个“子代理”。模型只需调用一个 `call_skill` 函数,即可加载对应的指令文件,逐步执行,实现了能力的模块化。
框架实战封装
目前 Spring AI Alibaba(1.0.0-M1 版本)已内置对 Skills 的支持,使其不局限于 Anthropic 模型。
开发者只需创建一个 SkillAgentHook,指定存放技能的目录。框架会自动处理读取 Markdown 指令文件和执行 Python/JS 等脚本的工作。例如,通过一个“论文搜索”的 Skill,模型能自动运行 Python 脚本爬取网站,并返回结构化结果。
Spring AI Alibaba 让原本局限于特定模型的 Skills 走向了通用化,极大地降低了构建复杂 AI 应用的门槛。未来,可复用的 Skill 生态将如何发展?