【NLP 72、Prompt、Agent、MCP、function calling】

命运把我们带到哪里,就是哪里

------ 25.5.13

一、Prompt

1.User Prompt 用户提示词

当我们与大模型进行对话时,我们向大模型发送的消息,称作User Prompt,也就是用户提示词,一般就是我们提出的问题或者想说的话

但是我们在现实生活中与人对话,同一个问题不同的人会有多种的回复,但是当我们和AI交流时,同一个词只会有一种通用性回复,若想让AI也能像人一样提供不同的回答,我们可以对AI添加一个**"人设"**。

① 最直接的方法,就是将给AI提供的人设信息和用户的要求打包成同一条User Prompt发送。

② 将人设信息单独提出来,放到一个提示词中,这个提示词我们称为System Prompt


2.System Prompt 系统提示词

System Prompt主要用来描述AI的角色、性格、背景信息、语气等等(只要不是用户直接说出的内容,都可以放进System Prompt中)。每次用户发送User Prompt时,同时系统会自动发送System Prompt

在网页端的聊天机器人中,System Prompt往往是系统预设的, 用户不能随便更改,但是通常来讲,网站会提供一些设置,用户可以写下自己的偏好,这些偏好再自动转换为System Prompt的一部分


二、Agent

1.什么是Agent

大模型 Agent 是指基于大型预训练模型(如 GPT-3、GPT -4、文心一言、通义千问等)构建的智能体,能够理解和生成自然语言。它以大型语言模型作为核心计算引擎,利用模型的语言理解、生成和推理能力,结合自主性、交互性、反应性和主动性等特点,使 AI 能够更加智能地应对各种任务,可看作是能够思考与行动的 "智能助手",不仅理解需求,还能主动提供解决方案并付诸实践。


2.AutoGPT

本地运行的一个小程序

步骤

① 准备一些功能函数

② 将这些函数和其功能描述、使用方法一同注册到AutoGPT中,AutoGPT会根据这些信息生成一个System Prompt,告诉AI模型用户提供了哪些工具以及它们的功能、以及如果AI想要使用他们应该返回怎样的格式等等

③ 然后将这个System Prompt连同用户的请求一同发送AI模型

④ AI模型按照要求的格式返回一个调用某个函数的消息,AutoGPT进行解析之后,调用对应的函数

⑤ 将结果丢给AI

⑥ AI根据函数调用的结果决定下一步进行什么操作

⑦ 反复以上流程,直到任务完成为止


3.AI Agent & Agent Tool

人们将AutoGPT这种负责在模型、工具和最终用户之间传话的程序叫做AI Agent,而这些提供给Agent的函数或服务,就叫做Agent Tool


三、function calling

虽然我们在System Prompt中声明了AI模型的返回格式,但是AI模型是一个概率模型,还是有可能返回格式错误的内容,为了处理这种情况,很多AI Agent会在发现AI返回的格式不对时,自动进行重传,例如Cline

ChatGPT、Claude、Gemini等公司推出一个叫做function calling的新功能,这个功能的核心思想是:统一格式,规范描述,function calling对这些描述System Prompt进行一些标准化,例如:每个Tool都用一个JSON对象来定义,工具名写在name字段,功能说明写在desc字段,工具所需要的参数写在params中,然后这些JSON对象从System Prompt中被剥离出来,单独放到一个字段中,最后,function calling也规定了AI使用工具时应该返回的格式,所以System Prompt中的格式定义也可以删除

通过function calling,所有的工具描述都放在相同的地方,所有工具描述也都按照相同的格式(JSON),AI使用工具时的回复也都依照相同的格式(JSON),于是人们就能更有针对性的训练AI模型,让他理解这种调用的场景,且因为回复的格式是固定的(JSON),当AI的回复格式出现错误时,AI自己可以检查到出现错误并进行重试,用户根本感觉不到,降低了用户端的开发难度,同时也节省了用户端重试带来的Token开销

缺点

没有自己统一的标准,每家大厂定义的API标准都不同,甚至很多开源模型还不支持Function Calling,因此 System PromptFunction Calling 两种方式在市面上是并存的


四、MCP协议

把Tool变成服务,统一的托管,让所有的Agent进行调用,这就是MCP

MCP是一个通信协议,专门用来规范AgentTool 服务之间是怎么交互的,运行Tool的服务叫做MCP Server ,调用它的 Agent 叫做MCP Client

MCP协议规定了MCP Server如何和MCP Client进行通信,以及MCP Server要提供哪些接口,

MCP除了普通的Tool这种函数调用的形式,MCP Server也可以直接提供数据,提供类似文件读写的服务叫做Resource ,或者为Agent提供提示词的模板叫做Prompt

MCP Server 既可以和Agent跑在同一台机器上,通过标准输入输出进行通信。

也可以被部署在网络上,通过HTTP进行通信。

MCP本身和AI模型没有关系,它并不关心Agent用的是哪个模型,MCP只负责帮Agent管理工具、资源和提示词


五、梳理流程

① 对AI Agent(MCP Client)进行提问

② Agent将接收到的问题包装在USER PROMPT中

③ Agent通过MCP协议从MCP Server中获取所有Tool的信息

④ Agent将这些Tool的信息转化为 SYSTEM PROMPT 或 Function Caliing 的格式,然后和用户请求 User Prompt 一起打包发送给AI模型

⑤ AI模型发现有一个叫做web_browse的网页浏览工具,于是通过普通回复或者Function Calling的格式产生一个调用这个Tool的请求,希望从网上搜索答案

⑥ Agent收到这个请求后,通过MCP协议去调用MCP Server里的 web_browse 工具

⑦ web_browse工具访问指定的网站之后将内容返回给Agent

⑧ Agent再将内容转发给AI模型,AI模型根据网页内容和自己的思考,生成最终的答案,将答案传给AI Agent(MCP Client)

⑨ 最后,由AI Agent把结果展示给用户

这就是System Promt、User Prompt、AI Agent、Agent Tools、Function Calling、MCP、AI模型之间的联系与区别

相关推荐
Lilith的AI学习日记6 小时前
Claude官方63组提示词模板全解析:从工作到生活的AI应用指南
人工智能·prompt·生活·ai编程·claude
java干货13 小时前
每日Prompt:超现实交互场景
prompt
java干货17 小时前
每日Prompt:发光线条解剖图
prompt
AI大模型顾潇1 天前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j
java干货1 天前
每日Prompt:三只动物与地标自拍
prompt
0x2111 天前
[论文阅读]Formalizing and Benchmarking Prompt Injection Attacks and Defenses
论文阅读·prompt
java干货2 天前
每日Prompt:定制动漫手办
prompt
AIWritePaper智能写作探索3 天前
高质量学术引言如何妙用ChatGPT?如何写提示词?
人工智能·chatgpt·prompt·智能写作·aiwritepaper·引言
四口鲸鱼爱吃盐3 天前
CVPR2025 | Prompt-CAM: 让视觉 Transformer 可解释以进行细粒度分析
深度学习·prompt·transformer