前言
随着AI时代的到来,我们是不是在互联网上看到很多关于AI智能体,也就是常说的,AI Agent。起初,大模型LLM还只是能和我们聊天,但是通过AI Agent,可以帮助我们完成我们需要它完成的任务,这背后有什么奥秘呢?接下来我就来介绍一下Prompt、AI Agent、Function Calling、MCP,这些玩意是如何帮助我们完成某项任务的吧。
Prompt
首先就是Prompt(提示词),分为User Prompt和System Prompt。在跟ChatGPT聊天的时候,我们发送给它的就是User Prompt,然后AI就会返回我们内容。那System Prompt又是什么呢?
先举一个例子,我跟AI说,我想旷课,AI可能只会回复一些平平无奇的回答,但是把AI想象为不同的人呢。我跟AI说“你是我好兄弟,我想旷课”,普通朋友就会劝你不要旷课,旷课就会处分;但是好兄弟就会说,没事,带你到名了,我帮你答道。
我们给AI不同的角色,人设,性格…….这些都可以放到System Prompt,每次用户发送User Prompt的时候会把System Prompt一起发给AI,这样聊天就会很自然了。
但是在LLM中,System Prompt通常是系统预设的,用户无法随便更改。但是这些LLM通常会提供一些设置,让你设置一些偏好,就比如在使用ChatGPT的时候,有时候会给出两个风格的回答,然后让你选一个。这些偏好就会被写进System Prompt。
AI Agent
上述案例,还只是停留在聊天中,要让AI帮你完成某项任务的时候就无能为力了,这个时候就需要AI Agent的出场了。那么什么是AI Agent呢?
Agent是一个能够感知环境、做出决策并执行动作的自主系统。就像一个人的大脑,那么它是如何帮助我们完成任务的呢?
首先就是先写好一些Agent Tools工具(函数),将它们的功能,使用方法等放到Agent中,然后Agent会根据这些信息生成一个System Prompt,告诉AI用户给了我什么工具,以及工具干什么的,怎么用,以及AI如果想要使用这些工具,应该返回什么样的格式。
Function Calling
上述的Agent还是有点问题。虽然已经在System Prompt已经写清楚,使用工具的时候应该返回什么样的格式,但是AI模型嘛,还是一个概率模型,有时候是会胡说八道的,还是有可能返回格式不对的内容。为了处理这些不听话的情况,Agent发现返回的格式不对时,自动进行重试,直到成功收到正确的格式。
这种反复重试的方法有很多缺点,比如说Token就会消耗很多……..因此就需要有更聪明的方法,Function Calling这个功能就推出了。
这个功能的核心就是统一格式,规范描述。
之前Agent发给AI模型的System Prompt里面的内容都是自然语言写的,AI能看得懂就行。Function Calling则是对这些描述进行标准化,比如说,每一个Tool都用Json对象来描述,什么工具名称,功能,使用,以及返回格式等等,标准化后的描述就会从System Prompt中抽离出来,单独放到一个字段。
这样一来就可以弥补System Prompt的缺点,这也是为什么现在很多Agent都从System Prompt转向Function Calling的原因。但其实Function Calling也有缺点,因此两者还是同时存在的。
Skill
当Agent需要处理不同领域的任务时,如果让一个Agent掌握所有知识和工具,会变得臃肿且容易出错。
本质上,Skill是一套封装了特定领域知识、最佳实践和工具组合的“技能包”。
比如,一个医生有治病技能,老师有教书技能……..
MCP
首先,我们要知道Agent和Tools是如何通信的,其实就是写到同一个程序中,直接函数调用即可。
但是如果一个工具非常好用,要经常用到,这样一来,要在每一个Agent中写下这个工具,这太麻烦了。不妨将这些工具放到一个服务里,统一托管,因此就有了MCP(标准通信协议)。
托管Tools的服务就是MCP Server,Agent就是MCP Client。MCP规定了两者如何通信以及如何MCP Server要提供哪些接口…….
MCP Server除了会提供工具,还有直接提供资源,或者为Agent提供提示词的模板…….
完整过程
- 用户问 “肚子痛怎么办?”
- Agent(MCP Client)收到后,从MCP Server里面获取所有Tool的信息
- Agent就会将这些信息转换为System Prompt 或者 Function Calling格式,然后将这和User Prompt一起发给AI模型
- AI模型收到后就会发送信息或者Function Calling格式,产生一个调用某个Tool的请求,返回给Agent
- 然后Agent通过MCP协议去调用MCP Server里面的工具
- 最后使用工具将找到内容返回给Agent,Agent再返回给AI模型,AI模型再根据内容生成最终答案,再给Agent,最后给到用户
总结
在这里,简单介绍了Prompt、AI Agent、Function Calling、Skill、MCP,这些关于Agent独立完成任务的一些背后的原理,希望这篇文章对你有帮助噢~


