简介:本文系统梳理Prompt、Agent、Function Call、Skill与MCP五个易混淆概念的定义、核心组成、工作原理、典型场景及相互区别,帮助开发者建立清晰的技术认知框架,避免在架构选型与工程实践中产生理解偏差。
在AI应用开发领域,Prompt、Agent、Function Call、Skill、MCP这五个术语频繁出现,但它们的层次、职责和适用边界并不相同。要准确理解这些概念,首先需要给出清晰的定义,并明确它们各自解决的问题。
Prompt(提示词) 是输入给大语言模型的文本指令,用于引导模型生成符合预期的输出。它既可以是简单的一句话,也可以是由系统消息、用户消息、历史对话等组成的结构化文本。Prompt的核心价值在于将人类意图转化为模型可理解的任务描述,是所有AI应用的基础交互单元。
Agent(智能体) 是具备自主决策与行动能力的AI应用形态。它不只是一次性的输入输出,而是能够根据目标,自主规划步骤、调用工具、观察结果并迭代执行,直到完成任务。Agent由“大脑”(模型推理)、工具调用、记忆和规划模块共同构成。
Function Call(函数调用) 是大语言模型的一项能力,指模型可以根据用户输入,输出结构化的函数调用请求,包括函数名和参数,由外部程序实际执行并返回结果。它解决的是“模型如何从理解意图走向执行动作”的问题。
Skill(技能) 是封装了特定能力的可复用模块。一个Skill通常包含Prompt模板、工具调用逻辑、输入输出规范以及必要的业务规则,供Agent或应用按需加载和调用。Skill将“能力”标准化,使得AI系统可以像插件一样扩展功能。
MCP(Model Context Protocol,模型上下文协议) 是一种标准化的连接协议,用于在AI应用与外部数据源、工具之间建立统一的通信方式。它定义了客户端与服务端之间的消息格式、能力发现机制和调用流程,降低AI系统集成外部资源的复杂度。
从层次关系来看,Prompt是最基础的输入形式;Function Call是模型的一项能力;Agent是基于模型能力构建的应用形态;Skill是Agent内部的能力模块;MCP是连接外部资源的协议标准。五者分别回答了“说什么”“能做什么”“怎么做”“做什么模块”“如何连接”这五个不同层面的问题。
理解这些概念的背景,有助于开发者判断在什么场景下该引入哪一层抽象。
早期的大模型应用大多采用“单轮问答”模式,开发者只需要构造Prompt并获取回复。但随着应用复杂度提升,单纯依靠Prompt暴露出明显局限:模型无法获取实时数据、无法执行具体操作、无法处理多步骤任务。于是,Function Call被引入,让模型能够“请求”外部系统执行动作,弥补了模型在行动能力上的不足。
然而,Function Call本身只是“调用”,不具备任务规划、结果判断和流程控制能力。当任务需要多步推理、动态决策时,Agent模式应运而生。Agent将模型推理、工具调用和记忆管理组合在一起,形成一个能够闭环执行的智能体。
当Agent需要对接多种业务能力时,开发者发现将每个能力封装为独立的Skill,可以使系统具备更好的可维护性和扩展性。Skill让AI能力从“代码写死”走向“模块化装配”。
最后,当AI应用需要连接越来越多的数据源和工具时,点对点的集成方式变得难以维护。MCP的价值在于提供一个标准协议,让任何实现该协议的服务都能被AI应用发现和调用,从而减少重复开发,提升集成效率。
由此可见,这五个概念的演进本质上反映了AI应用从“单次交互”到“多步执行”再到“标准化集成”的发展脉络。
一个完整的Prompt通常由以下几部分组成:
以代码示例说明Prompt的基本构造方式:
public String askAI(String question) {Prompt prompt = new Prompt(new SystemPrompt("你是一名Java架构师,擅长用通俗语言解释技术概念。"),new UserPrompt(question));return chatClient.call(prompt).getResult().getOutput().getContent();}
在这个例子中,SystemPrompt定义了模型的角色定位,UserPrompt承载用户问题。模型接收到这个Prompt后,根据训练时习得的语言规律和推理能力生成回复。Prompt的质量直接影响输出效果,因此设计Prompt时需要明确任务目标、提供充分上下文并设定清晰的输出约束。
Function Call的工作机制可以拆解为四步:
这一机制的关键在于:模型并不真正执行函数,它只负责“决定调用什么”和“生成参数”,实际执行由应用程序完成。这种设计保证了模型的能力边界与系统安全可控。
Agent的工作原理可以概括为“规划—执行—观察—迭代”的循环过程:
这个循环使Agent能够处理复杂、开放式的任务。例如,用户要求“帮我整理本周的销售数据并生成分析报告”,Agent需要先查询数据、再进行分析、最后生成报告,整个过程可能涉及多次工具调用和结果判断。
Skill的典型结构包括:
当Agent加载一个Skill时,实际上是将该Skill的能力描述、Prompt模板和工具绑定信息注入到模型的上下文中,使模型“知道”自己具备这项能力以及如何使用它。Skill的价值在于将某一领域的专业知识与操作流程沉淀为可复用模块,降低Agent的配置复杂度。
MCP定义了一套统一的通信规范,使得AI应用(作为客户端)能够与外部服务(作为服务端)进行标准化的能力发现和调用。MCP的工作机制包括:
MCP的核心意义在于解耦:AI应用无需为每个外部服务编写专属适配代码,只要服务端实现了该协议,即可被直接集成。这类似于数据库领域中的标准驱动接口——应用程序面向标准编程,而非面向具体实现。
Prompt适用于所有基于大语言模型的应用场景,包括但不限于:
Prompt的边界在于:它只能影响模型的“生成结果”,无法让模型获取实时数据或执行外部操作。当任务需要超越模型静态知识范围时,单独使用Prompt就不足以解决问题。
Function Call适用于“模型需要与外部系统交互”的场景,典型包括:
Function Call的边界在于:它只处理“单次调用”问题,不具备规划多步任务的能力。如果一个任务需要三次以上的工具调用且存在条件分支,单纯依赖Function Call会导致应用层逻辑复杂化。
Agent适用于需要多步推理和自主决策的复杂任务,典型包括:
Agent的边界在于:它引入了更高的系统复杂度和不确定性。Agent的决策质量取决于模型能力、工具质量和环境反馈的充分性,在需要严格确定性的场景中,Agent可能带来不可控风险。
Skill适用于需要能力复用和模块化管理的场景,典型包括:
Skill的边界在于:它本身不具备独立执行能力,必须依附于Agent或应用运行时。Skill的价值发挥依赖于良好的设计与维护,低质量的Skill反而会增加系统的理解负担。
MCP适用于需要与多种外部资源集成的场景,典型包括:
MCP的边界在于:它解决的是“连接标准化”问题,而非“能力实现”问题。MCP本身不提供任何具体功能,价值体现在减少重复集成工作上。
Prompt是“输入给模型看的文本”,Function Call是“模型输出的结构化请求”。前者是输入侧概念,后者是输出侧能力。两者可以组合使用:在Prompt中描述任务和可用工具,模型根据理解输出Function Call请求。
Function Call是一项“原子能力”,Agent是一种“应用形态”。Agent内部可以大量使用Function Call,但Agent还包含规划、记忆、结果判断等模块。一个系统如果只实现了Function Call而不具备规划能力,就不能称为Agent。
Skill是“能力的封装单元”,Function Call是“能力的调用方式”。一个Skill可以包含多个Function Call定义,也可以包含Prompt模板、业务规则等内容。可以把Skill理解为“一个完整的业务能力包”,而Function Call只是该能力包中对外的调用接口。
MCP是“外部连接协议”,Function Call是“模型输出格式”。MCP定义了客户端与服务端之间如何通信,Function Call定义了模型如何表达调用意图。在实际架构中,模型输出Function Call请求后,应用可以通过MCP协议将请求转发给外部服务执行。
从抽象层次来看:
理解这一层次关系,有助于开发者在架构设计时合理选择抽象层级,避免过度设计或能力缺失。
Prompt、Agent、Function Call、Skill与MCP是AI应用开发中的五个核心概念,它们分别对应了输入表达、行动能力、应用形态、能力封装和连接协议五个维度。Prompt是所有AI交互的基础,Function Call赋予模型请求外部执行的能力,Agent将规划与执行组合为自主运行的应用形态,Skill实现能力的模块化封装与复用,MCP提供标准化的外部资源连接协议。
理解这些概念的关键不在于记住定义本身,而在于理解它们之间的层次关系和演进逻辑。在实际开发中,开发者应根据任务复杂度、系统集成需求与团队维护能力,选择合适的抽象层级:简单问答场景用Prompt即可;需要单次外部操作时引入Function Call;面对多步复杂任务时构建Agent;当能力需要复用时封装为Skill;当集成大量外部资源时采用标准协议降低维护成本。只有将概念与实际场景对应起来,才能在架构设计中做出合理决策。