目录

💡 前言

一、 核心概念逐个击破

1. Function Call(函数调用):底层基石

2. Tool(工具):框架层的封装

3. Skills(技能):业务层的能力聚合

4. MCP (Model Context Protocol):颠覆行业的连接新标准

二、 它们的区别与联系(一张图看懂)

核心流转过程:

三、 总结


💡 前言

随着大模型(LLM)从“只会聊天的工具”进化为“能自主做事的 Agent(智能体)”,如何让 AI 具备“手和脚”成为了当前 AI 应用开发的核心。在 Spring AI 框架中,我们经常会遇到四个容易混淆的概念:Function CallToolMCPSkills

很多开发者在刚接触大模型应用开发时,经常会把这几个词混为一谈:“它们不都是让 AI 调代码的吗?”

今天这篇文章,我们就来把这四个概念掰开揉碎,从底层原理、框架抽象、业务逻辑到行业新标准,彻底讲透它们的区别、联系以及在 Spring AI 中的实际作用!干货满满,建议收藏!📌


一、 核心概念逐个击破

1. Function Call(函数调用):底层基石

定义:Function Call 是大模型(如 GPT-4, Claude 3, Qwen 等)原生具备的一种能力

作用:过去,大模型只能输出纯文本;有了 Function Call,当你向模型提供了一组“函数签名(描述函数长什么样、需要什么参数)”后,模型在推理时如果发现需要外部信息,它不会直接返回文本,而是返回一段结构化的 JSON 数据,告诉你:“请帮我执行 A 函数,并且传入参数 B 和 C”。

  • 注意:大模型本身不执行代码,它只是“下达执行指令”,真正的执行动作是由你的后端程序(Java 代码)完成的。

2. Tool(工具):框架层的封装

定义:Tool 是开发框架(如 Spring AI, LangChain)对 Function Call 的高层面向对象封装

作用:为了让 Java 开发者不用每次都去拼装复杂的 JSON Schema,Spring AI 提供了 Tool 的概念。你可以把一段 Java 方法封装成一个 Tool,告诉大模型“我这里有一把锤子”。

在最新的 Spring AI 版本中,你可以直接使用 @Tool 注解(或 FunctionCallback),极其优雅地将 Java 方法暴露给大模型。

代码示例

Java

// 在 Spring AI 中定义一个 Tool
@Component
public class WeatherTools {

    @Tool(description = "获取指定城市的当前天气")
    public String getWeather(@ToolParam(description = "城市名称,如:北京") String city) {
        // 实际的业务逻辑,调用气象局 API
        return "晴天,25度";
    }
}
3. Skills(技能):业务层的能力聚合

定义:Skills 更多是一个业务架构和 Agent 设计层面的概念(在 Semantic Kernel 框架中非常核心,Spring AI 中也在逐渐引入类似理念)。

作用:如果说 Tool 是一把“螺丝刀”,那么 Skill 就是“组装电脑的技能”。一个 Skill 通常由多个 Tool 以及特定的 Prompt(系统提示词)组合而成,代表了智能体在某个特定领域的专业能力。

比如:DataAnalysisSkill(数据分析技能)可能包含了 查询数据库Tool生成图表Tool数据清洗Tool

4. MCP (Model Context Protocol):颠覆行业的连接新标准

定义:MCP(模型上下文协议)是由 Anthropic(Claude的母公司)最新推出的一个开源标准协议

作用:过去,如果你想让 AI 读取 Github 的代码、查阅本地文件、或者查询 Notion 的数据,你需要为每个数据源写一堆专属的 Tool API。

MCP 的出现就像是给 AI 统一了“USB 接口”! 它定义了标准的客户端-服务端架构。Spring AI 已经火速跟进支持了 MCP 客户端。这意味着,你只需在 Spring AI 中配置好 MCP 连接,你的 AI 就能瞬间具备访问海量现成 MCP 服务(如 Github MCP, 数据库 MCP 等)的能力,而不需要你再手动去写一个个 Tool!


二、 它们的区别与联系(一张图看懂)

为了让大家更直观地理解,我们打个通俗的比方——假设我们在玩一个动作类角色扮演游戏

概念 角色扮演比喻 在 Spring AI / 大模型中的定位 侧重点
Function Call 大脑发出的神经信号。大脑决定要“挥拳”,并给出“目标是前方怪物,力度是10”的指令。 LLM 提供的底层机制(大模型原生 API 层面)。 机器与机器之间交互的协议(JSON 数据)。
Tool 实际的武器/手脚。比如一把“大剑”或一瓶“血药”。 框架级别的代码抽象(@Tool,Java 方法)。 开发者的代码实现,解决具体的单一问题。
Skills 学会的武功秘籍。比如“独孤九剑”,里面包含了多种 Tool 的组合使用规则。 业务架构层面,Agent 具备的某一类综合能力。 业务能力的封装和场景化编排。
MCP 通用的武器插槽/接口标准。只要符合这个接口的武器,都能直接插上使用。 架构层的标准化通信协议。 解决 AI 工具生态碎片化问题,实现即插即用。
核心流转过程:
  1. Spring AI 应用通过 MCP 协议连接了大量的外部数据源。

  2. 我们在业务代码中定义了高级的 Skills,其中包含了一些自定义的 Tool(Java 方法)。

  3. Spring AI 将这些工具的信息提取出来,发给大模型。

  4. 大模型通过 Function Call 机制,返回需要调用的工具名称和参数。

  5. Spring AI 自动执行对应的 Java 方法,并将结果返回给大模型继续思考。


三、 总结

在 AI 时代,得工具者得天下。梳理清楚这四个概念,对于我们设计健壮的 Agent 架构至关重要:

  • Function Call 是你必须理解的底层原理

  • Tool 是你每天写代码接触最多的实际接口

  • Skills 是你设计 Agent 时需要构思的业务模块

  • MCP 则是你未来必须要拥抱的行业生态新标准

随着 Spring AI 的快速迭代,Java 开发者整合大模型能力的门槛正在不断降低。建议大家赶快动手实践一下最新的 @Tool 注解和 MCP 整合,感受一下“让 AI 跑 Java 代码”的魅力!


作者语

如果这篇文章对你有帮助,欢迎 点赞、收藏、关注!你在用 Spring AI 开发 Agent 时遇到过什么坑吗?欢迎在评论区留言交流,我们一起探讨!👇

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐