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

news2025/5/18 17:50:50

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

                                                —— 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 Prompt Function Calling 两种方式在市面上是并存的     

  


四、MCP协议

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

MCP是一个通信协议,专门用来规范 Agent Tool 服务之间是怎么交互的,运行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模型之间的联系与区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2378665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql数据库之集群进阶

一、日志管理 5.7版本自定义路径时的文件需要自己提前创建好文件,不会自动创建,否则启动mysql会报错 错误日志 rpm包(yum) /var/log/mysql.log 默认错误日志 ###查询日志路径 [rootdb01 ~]# mysqladmin -uroot -pEgon123 variables | grep -w log_e…

临床决策支持系统的提示工程优化路径深度解析

引言 随着人工智能技术在医疗领域的迅猛发展,临床决策支持系统(CDSS)正经历从传统规则引擎向智能提示工程的范式转变。在这一背景下,如何构建既符合循证医学原则又能适应个体化医疗需求的CDSS成为医学人工智能领域的核心挑战。本报告深入剖析了临床决策支持系统中提示工程的…

苹果新一代车载系统CarPlay Ultra来袭,全屏接管+ChatGPT助力,智能驾驶要“起飞”

AITOP100获悉,苹果又搞出大动作啦!正式推出了新一代车载系统——CarPlay Ultra。这次,苹果可是下了狠功夫,把iPhone和汽车的所有显示屏深度整合到了一起,还首次把ChatGPT引入到了驾驶体验当中。这系统可不简单&#xf…

无线信道的噪声与干扰

目录 1. 无线信道(wireless channel)与电磁波 2.1 电磁波的传输(无线信道传输) 2.2 视线(line of sight)传播与天线高度 2. 信道的数学模型 2.1 调制信道模型 2.1.1 加性噪声/加性干扰 2.1.2 乘性噪声/乘性干扰 2.1.3 随参信道/恒参信道 2.2 编码信道模型 2.3 小结 …

MySQL 8.0 OCP 1Z0-908 101-110题

Q101.which two queries are examples of successful SQL injection attacks? A.SELECT id, name FROM backup_before WHERE name‘; DROP TABLE injection; --’; B. SELECT id, name FROM user WHERE id23 oR id32 OR 11; C. SELECT id, name FROM user WHERE user.id (SEL…

BBR 的 buffer 动力学观感

这周很忙,今天还加了一天班,但还是抽空实现了五一在安徽泾县山区喝着一壶酒写的 BBR ProbeRTT 的想法,没多少行代码,它真就消除了带宽锯齿,皮了个鞋👞,昨天我还在群里说了今天再说说 BBR 的&…

Spring之Bean的初始化 Bean的生命周期 全站式解析

目录 导图 步骤 第一步 实例化 第二步 属性赋值 第三步 初始化 aware 接口 BeanPostProcessor 接口 InitializingBean 和 init-method 第四步使用 第五步使用后销毁 描述一下 Bean 的 生命周期 导图 步骤 总体上可以分为五步 首先是 Bean 的实例化Bean 在进行实例…

FreeCAD源码分析: Transaction实现原理

本文阐述FreeCAD中Transaction的实现原理。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 一、概念 Ref. from What is a Transaction? A transaction is a group of operations that have the f…

flutter缓存网络视频到本地,可离线观看

记录一下解决问题的过程,希望自己以后可以参考看看,解决更多的问题。 需求:flutter 缓存网络视频文件,可离线观看。 解决: 1,flutter APP视频播放组件调整; 2,找到视频播放组件&a…

Kotlin 中 infix 关键字的原理和使用场景

在 Kotlin 中,使用 infix 关键字修饰的函数称为中缀函数,使用是可以省略 . 和 (),允许以更自然(类似自然语言)的语法调用函数,这种特性可以使代码更具可读性。 1 infix 的原理 中缀函数必须满足以下条件&…

c++从入门到精通(五)--异常处理,命名空间,多继承与虚继承

异常处理 栈展开过程: 栈展开过程沿着嵌套函数的调用链不断查找,直到找到了与异常匹配的catch子句为止;也可能一直没找到匹配的catch,则退出主函数后查找过程终止。栈展开过程中的对象被自动销毁。 在栈展开的过程中&#xff0c…

gcc/g++常用参数

1.介绍 gcc用于编译c语言,g用于编译c 源代码生成可执行文件过程,预处理-编译-汇编-链接。https://zhuanlan.zhihu.com/p/476697014 2.常用参数说明 2.1编译过程控制 参数作用-oOutput,指定输出名字-cCompile,编译源文件生成对…

nginx配置之负载均衡

版权声明:原创作品,请勿转载! 1.实验环境准备 准备3台linux服务器(ubuntu和centos均可,本文使用centos7.9),两台web和一台负载均衡服务器,均安装nginx服务 主机名IP软件lb0110.0.0…

去年开发一款鸿蒙Next Os的window工具箱

持拖载多个鸿蒙应用 批量签名安装 运行 http://dl.lozn.top/lozn/HarmonySignAndFileManagerTool_2024-11-26.zip 同类型安卓工具箱以及其他软件下载地址汇总 http://dl.lozn.top/lozn/ 怎么个玩法呢,比如要启动某app, 拖载识别到包名 点启动他能主动读取包名 然后…

uniapp|实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,拍照保存至相册,多端兼容(APP/微信小程序)

基于uniapp以及微信小程序实现移动端人脸识别相似度对比,实现摄像头、相册权限获取、相机模块交互、第三方识别集成等功能,附完整代码。 目录 核心功能实现流程摄像头与相册权限申请权限拒绝后的引导策略摄像头调用拍照事件处理人脸识别集成图片预处理(Base64编码/压缩)调用…

JavaScript【7】BOM模型

1.概述: BOM(Browser Object Model,浏览器对象模型)是 JavaScript 中的一个重要概念,它提供了一系列对象来访问和操作浏览器的功能和信息。与 DOM(Document Object Model)主要关注文档结构不同&…

[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程

本人为强化学习小白,为了在后续科研的过程中能够较好的结合强化学习来做相关研究,特意买了西湖大学赵世钰老师撰写的《强化学习数学原理》中文版这本书,并结合赵老师的讲解视频来学习和更深刻的理解强化学习相关概念,知识和算法技…

深入理解构造函数,析构函数

目录 1.引言 2.构造函数 1.概念 2.特性 3.析构函数 1.概念 2.特性 1.引言 如果一个类中什么都没有,叫作空类. class A {}; 那么我们这个类中真的是什么都没有吗?其实不是,如果我们类当中上面都不写.编译器会生成6个默认的成员函数。 默认成员函数:用户没有显…

Day 16

目录 1.JZ79 判断是不是平衡二叉树1.1 解析1.2 代码 2.DP10 最大子矩阵2.1 解析2.2 代码 1.JZ79 判断是不是平衡二叉树 JZ79 判断是不是平衡二叉树 dfs 1.1 解析 1.2 代码 /*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* TreeNode(in…

摄影构图小节

1、三分构图法 三分构图法即将画面横竖各分为三份,即九宫格形式。 将画面用两条竖线和两条横线分割,就如同是书写中文的【井】字。这样就可以得到4个交叉点,然后再将需要表现的重点放置在4个交叉点中的一个附近即可。 拍摄自然风光时&#xf…