乐于分享
好东西不私藏

一文讲透AI核心知识 Prompt、Function Call、Agent、Skill、MCP

一文讲透AI核心知识 Prompt、Function Call、Agent、Skill、MCP

随着大模型和 AI 应用的爆火,AI 技术圈、产品圈天天都在蹦出新名词。

  • 我的 Agent 安装了几个 Skill?

  • 你这个助手小工具支持 MCP 协议?

  • 有了 MCP 为什么还要用 Function Call?

很多人听得云里雾里的。别慌!今天我用这篇文章,用最通俗易懂的语言、以及一目了然的图解,彻底讲解 Prompt、Function Call、Agent、Skill、MCP 核心概念!

核心概念全景图

在深入细节前,先通过一张图,从整体上理解核心概念是如何分层递进的:

  • Prompt:就是你跟 AI 说的普通话

  • Function Call:让 AI 具有了动手干活的能力

  • Agent:让 AI 进化出思考和规划的大脑

  • Skill:是 AI 针对特定领域的职业技能证书

  • MCP:是统一 AI 世界工具调用的USB接口

一、Prompt(提示词)

1. 什么是 Prompt?

Prompt(提示词) 就是用户输入给 AI 的文本指令。

就像去餐厅点餐时说的“给我来一份麻婆豆腐”。AI 就是那个厨师,听懂你的话,然后给你上菜。

在应用开发中,Prompt 是人类意图与 AI 能力之间的桥梁。Prompt 写得越精准,AI 出来的效果就越好。

2. 开发中的 Prompt

通常把 Prompt 分为不同的角色来管理:

  • System Prompt(系统提示词):定义 AI 的人设。例如:你是一个 Java 架构师。

  • User Prompt(用户提示词):用户具体的提问。例如:什么是微服务?

在Spring AI中的使用:

package com.yl.aiagent.app;import com.yl.aiagent.advisor.MyLoggerAdvisor;import jakarta.annotation.Resource;import lombok.extern.slf4j.Slf4j;import org.springframework.ai.chat.client.ChatClient;import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;import org.springframework.ai.chat.client.advisor.QuestionAnswerAdvisor;import org.springframework.ai.chat.memory.ChatMemory;import org.springframework.ai.chat.memory.InMemoryChatMemory;import org.springframework.ai.chat.model.ChatModel;import org.springframework.ai.chat.model.ChatResponse;import org.springframework.ai.tool.ToolCallback;import org.springframework.ai.vectorstore.VectorStore;import org.springframework.stereotype.Component;import reactor.core.publisher.Flux;import java.util.List;import static org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY;import static org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor.CHAT_MEMORY_RETRIEVE_SIZE_KEY;@Component@Slf4jpublic class LoveApp {  @Resourceprivate VectorStore loveAppVectorStore;  private final ChatClient chatClient;  private static final String SYSTEM_PROMPT = "扮演深耕恋爱心理领域的专家。开场向用户表明身份,告知用户可倾诉恋爱难题。"        + "围绕单身、恋爱、已婚三种状态提问:单身状态询问社交圈拓展及追求心仪对象的困扰;"        + "恋爱状态询问沟通、习惯差异引发的矛盾;已婚状态询问家庭责任与亲属关系处理的问题。"        + "引导用户详述事情经过、对方反应及自身想法,以便给出专属解决方案。";  public LoveReport doChatWithReport(String message, String chatId) {         LoveReport loveReport = chatClient             .prompt()             .system(SYSTEM_PROMPT) // 系统提示词             .user(message) // 用户提示词             .advisors(spec -> spec.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)                      .param(CHAT_MEMORY_RETRIEVE_SIZE_KEY, 10))             .entity(LoveReport.class);             log.info("context: {}", loveReport);             return loveReport;  }}

二、Function Calling(函数调用)

Prompt 只能让 AI 动嘴说话,但如果让 AI 干点实事,比如:查一下成都今天最新的天气调用第三方API,它就无能为力,因为大模型的训练数据是静态的。

Function Calling(函数调用)就是为了让 AI 能动手而生的。函数调用过程:

1. 什么是 Function Calling?

它允许开发者在调用大模型时,注册一系列外部工具(函数)。大模型在理解用户意图后,如果发现需要查外部信息,它不会胡编乱造,而是返回一个结构化的请求(JSON),告诉开发者:“我需要调用这个函数,参数是XX”。

开发者在后台执行真实的函数(比如调用天气 API)并拿到结果,再把结果喂回给模型,最终由模型整合成自然语言回复给用户。

2. 核心价值

让 AI 从静态知识变成了动态能力。有了 Function Call,AI 就能获取外部数据、调用企业 API。自定义工具:

/** * 网页内容抓取工具*/public class WebScrapingTool {    @Tool(description = "Scrape the content of a web page")    public String scrapeWebPage(@ToolParam(description = "URL of the web page to scrape"String url) {        try {            Document document = Jsoup.connect(url).get();            return document.html();        } catch (IOException e) {            e.printStackTrace();            return "Error scraping web page: " + e.getMessage();        }    }}

Spring AI中使用工具调用:

/** * 工具调用 * * @param message * @param chatId * @return*/public String doChatWithTools(String message, String chatId) {    ChatResponse chatResponse = chatClient            .prompt().            user(message)            .advisors(spec -> spec.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)                    .param(CHAT_MEMORY_RETRIEVE_SIZE_KEY10))            // 开启日志,便于观察效果            .advisors(new MyLoggerAdvisor())            .tools(allTools) //工具调用            .call()            .chatResponse();   String content = chatResponse.getResult().getOutput().getText();   log.info("content: {}", content);   return content;}

三、Agent(智能体)

Function Call 赋予了 AI 动手的技能,但它依旧是被动的一问一答。如果遇到一个复杂任务,比如:“帮我规划一次重庆一周游,包含天气、景点和预算”,需要调用多次工具,怎么办?这时候就需要智能体了。

1. 什么是 Agent?

Agent 是一个能够感知环境、做出决策并自主执行动作的完整系统。

  • Function Call 是会用手

  • Agent 是长了大脑

目前主流的 Agent 都采用 ReAct(Reasoning + Acting,推理+行动) 框架。它自己会形成一个闭环工作流:

  1. 思考:分析当前状态,决定下一步做什么。

  2. 行动:通过 Function Call 调用某个工具。

  3. 观察:看一眼工具返回的结果,继续思考。

  4. 循环:直到把复杂任务拆解并执行完毕,给出最终答案。

四、Skill(技能)

当我们的 Agent 越来越强大,需要处理各行各业的复杂任务时,如果把所有的工具和提示词都堆给同一个 Agent,它的大脑会变得臃肿,极易产生幻觉和混乱。于是,我们引入了 Skill(技能包) 的概念。

1. 什么是 Skill?

Skill 是把指令、脚本、模板一体化打包打包成可复用能力包的机制,也就是一套封装了特定领域知识。就像人类的职业资格证书:一个医生有“看病技能”,一个程序员有“写代码技能”。

2. Function Call 和 Skill 的区别

很多人在这里最容易绕晕。一句话点透本质:

  • Function Call 是一种原子能力(相当于单把的螺丝刀)。

  • Skill 是一个业务功能模块(相当于一整套电工工具箱,里面不仅有螺丝刀、电笔,还附带一本《电工安全操作手册》)。

维度Function Call (函数调用)Skill (技能)
本质单一的底层能力能力集合 + 领域知识 + 最佳实践
粒度原子操作(如:查天气、发邮件)业务模块(如:前端开发、财务审计)
是否包含知识不包含,只负责执行包含特有的角色提示词(System Prompt)
代码表现单个标注了 @Tool 的具体方法多个工具方法 + 领域提示词模板的组合封装

3. Skill 与 Agent 的关系

在企业级大模型应用里,一个复杂的 Agent 会根据场景动态挂载不同的 Skill。比如一个“全栈开发智能体”,可以同时加载 前端开发 Skill 和 数据库管理 Skill,实现能力解耦和权限隔离。

五、MCP(模型上下文协议)

随着 Agent 和工具的爆发式增长,开发者遇到了极其痛苦的瓶颈OpenAI 的 Function Call、Anthropic Claude、文心一言和通义千问的格式不一样。每换一个模型,或者每加一个新工具,你都要重写一遍适配代码。为了终结这个乱象,Anthropic 提出了 MCP(Model Context Protocol 模型上下文协议)

1. 什么是 MCP?

MCP 是 AI 世界的 USB 接口协议。过去,鼠标、键盘、打印机都有各自的接口,电脑连接非常麻烦;有了 USB 协议后,所有设备拔插即用。MCP 也是这个逻辑:

  • MCP Server(工具提供方):把所有的工具(如 GitHub API、数据库查询、天气服务)统一按照 MCP 标准暴露出来。

  • MCP Client(AI 应用):无论是哪个大模型,只要实现了 MCP 客户端,就能直接动态发现并调用这些工具。

2. MCP 与 Skill 的关系

  • MCP 解决的是怎么连的问题 —— 它是标准化的管道、通信协议。

  • Skill 解决的是连什么的问题 —— 它是业务内涵、专业知识的集合。

一个标准架构中,Agent 往往正是通过 MCP 管道动态去调用各种 Skill 里的工具

3. Function Calling与MCP的区别

  • Funcation Calling需要写在应用代码里面的,工具定义和调用逻辑在你的项目代码中,换了应用就得重新写一边。

  • MCP是独立的,做成单独运行的进程,只要支持MCP的客户端都能直接使用,对外提供标准统一的接口,独立部署、维护、一次实现到处复用。

总结

如果上面内容看的有点懵懂,那就收藏好下面这张对比表,面试或开发时随时翻看。

概念一句话定义核心核心作用比喻
Prompt给 AI 的指令告诉 AI 要做什么、以什么身份说话餐厅点菜的订单
Function Call让 AI 调用外部工具的能力赋予 AI 跨越文本、动手干活的桥梁干活用的单把工具(如锤子)
Agent能自主决策的智能体系统独立完成复杂任务的闭环大脑能够独立搞定项目的项目经理
Skill封装了专业知识的技能包固化特定领域的高级组合能力与最佳实践专业打包好的职业工具箱
MCP统一工具调用的标准协议消除不同模型、工具之间的接入壁垒电子设备通用的 USB 接口

看完这篇文章,喜欢本文的话,别忘了点赞、关注、转发三连哦。