【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 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模型之间的联系与区别
相关文章:
【NLP 72、Prompt、Agent、MCP、function calling】
命运把我们带到哪里,就是哪里 —— 25.5.13 一、Prompt 1.User Prompt 用户提示词 当我们与大模型进行对话时,我们向大模型发送的消息,称作User Prompt,也就是用户提示词,一般就是我们提出的问题或者想说的话 但是我们…...
无人机俯视风光摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
调色详情 无人机俯视风光摄影 Lr 调色是利用 Adobe Lightroom 软件,对无人机从俯视角度拍摄的风光照片进行后期处理的调色方式。通过调整色彩、对比度、光影等多种参数,能够充分挖掘并强化画面独特视角下的壮美与细节之美,让原本平凡的航拍风…...
【HTML5】【AJAX的几种封装方法详解】
【HTML5】【AJAX的几种封装方法详解】 AJAX (Asynchronous JavaScript and XML) 封装是为了简化重复的异步请求代码,提高开发效率和代码复用性。下面我将介绍几种常见的 AJAX 封装方式。 方法1. 基于原生 XMLHttpRequest 的封装 XMLHttpRequest。其主要特点如下…...
STM32 __rt_entry
STM32中__rt_entry函数的深度解析 在STM32的启动流程中,__rt_entry是一个由ARM C库提供的核心函数,负责在__main完成基础初始化后,搭建完整的C语言运行环境。以下是其核心功能及工作机制的详细分析: 一、__rt_entry的核心作用 …...
YOLOv11融合[AAAI2025]的PConv模块
YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Pinwheel-shaped Convolution and Scale-based Dynamic Loss for Infrared Small Target Detection》 一、 模块介绍 论文链接:https://…...
point3d 视野朝向设置
这里写自定义目录标题 point3d 视野朝向设置三维相机朝向的直观理解 point3d 视野朝向设置 open3d.visualization.Visualizer 中的 get_view_control() 方法返回一个 ViewControl 对象,用来控制 3D 可视化窗口中的相机视角。通过这个对象可以设置视角朝向ÿ…...
基于大模型的腰椎管狭窄术前、术中、术后全流程预测与治疗方案研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、腰椎管狭窄概述 2.1 定义与分类 2.2 发病原因与机制 2.3 临床表现与诊断方法 三、大模型技术原理与应用现状 3.1 大模型的基本原理 3.2 在医疗领域的应用案例 3.3 选择大模型预测腰椎管狭窄的依据 四、…...
Matlab基于SSA-MVMD麻雀算法优化多元变分模态分解
Matlab基于SSA-MVMD麻雀算法优化多元变分模态分解 目录 Matlab基于SSA-MVMD麻雀算法优化多元变分模态分解效果一览基本介绍程序设计参考资料效果一览 基本介绍 Matlab基于SSA-MVMD麻雀算法优化多元变分模态分解 可直接运行 分解效果好 适合作为创新点(Matlab完整源码和数据),…...
工程师必读! 3 个最常被忽略的 TDR 测试关键细节与原理
TDR真的是一个用来看阻抗跟Delay的好工具,通过一个Port的测试就可以看到通道各个位置的阻抗变化。 可是使用上其实没这么单纯,有很多细节需要非常地小心,才可以真正地看到您想看的信息! 就让我们整理3个极为重要的TDR使用小细节&…...
Spring Boot 项目中什么时候会抛出 FeignException?
在 Spring Boot 项目中使用 Feign 时,FeignException 是 Feign 客户端在执行 HTTP 请求过程中可能抛出的基础异常。它有很多子类,分别对应不同类型的错误。以下是一些常见的会抛出 FeignException (或其子类) 的情况: 网络连接问题 (Network …...
Spring Boot Swagger 安全防护全解析:从旧版实践到官方规范
摘要 本文系统梳理 Swagger 安全防护的核心方案,涵盖旧版 Swagger(SpringFox)的swagger.basic配置实践、官方推荐的 Spring Security 方案,以及多环境管理、反向代理过滤等全链路技术。结合权威文档,明确不同方案的适…...
基于 PLC 的轮式服务机器人研究
标题:基于 PLC 的轮式服务机器人研究 内容:1.摘要 本文以轮式服务机器人为研究对象,探讨基于可编程逻辑控制器(PLC)的设计与实现。在智能化服务需求不断增长的背景下,旨在开发一种具备稳定运动控制和高效服务功能的轮式服务机器人…...
emed64_20.9.2.msi 安装步骤(超简单版)
找到安装包 首先,先下载安装包链接:https://pan.quark.cn/s/2efb908815a4(可能在下载文件夹或者别人发给你的位置),双击它就行。如果双击没反应,就右键点它,选“安装”。 弹出安装向导 这时候会…...
HTML、CSS 和 JavaScript 基础知识点
HTML、CSS 和 JavaScript 基础知识点 一、HTML 基础 1. HTML 文档结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.…...
直接在Excel中用Python Matplotlib/Seaborn/Plotly......
本次分享如何利用pyxll包,实现直接在Excel中使用Python Matplotlib/Seaborn/Plotly等强大可视化工具。 pyxll配置 pyxll安装 pip install pyxll pyxll install pyxll自定义方法 例如,自定义一个计算斐波那契数的方法fib,并使用pyxll装饰器…...
互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-5
互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-5 第一轮面试:业务场景切入 面试官(技术总监): 欢迎郑薪苦参与今天的面试。我们先从一个实际业务场景谈起——假设你正在设计一个电商平台的优惠券服务系统&…...
KV cache 缓存与量化:加速大型语言模型推理的关键技术
引言 在大型语言模型(LLM)的推理过程中,KV 缓存(Key-Value Cache) 是一项至关重要的优化技术。自回归生成(如逐 token 生成文本)的特性决定了模型需要反复利用历史token的注意力计算结果&#…...
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
目录 Node.js 24 版本发布:Windows 平台构建工具链转向 ClangCL Node.js 24 版本发布:Windows 平台构建工具链转向 ClangCL 流行的开源跨平台 JavaScript 运行时环境 Node.js 近日发布了 24.0 版本。此版本带来了多项性能提升、安全增强和开发体验的改进…...
Linux常用命令39——free显示系统内存使用量情况
在使用Linux或macOS日常开发中,熟悉一些基本的命令有助于提高工作效率,free命令的功能是显示系统内存使用量情况,包含物理内存和交换内存的总量、使用量、空闲量情况。本篇学习记录free命令的基本使用。 首先查看帮助文档: 语法格…...
4. 文字效果/2D-3D转换 - 3D翻转卡片
4. 文字效果/2D-3D转换 - 3D翻转卡片 案例:3D产品展示卡片 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">.scene {width: 300px;height…...
游戏引擎学习第276天:调整身体动画
运行游戏,演示我们遇到的拉伸问题,看起来不太好,并考虑切换到更顶视角的视角 我们开始讨论游戏开发中的一些美学决策,特别是在处理动画方面。虽然我们是游戏程序员,通常不负责设计或艺术部分,但因为这是一…...
Java线程池性能优化全解析:从配置到实践
一、线程池配置原则 1.1 核心参数设定 线程池的性能优化始于合理配置,关键参数包括: 核心线程数(corePoolSize) CPU密集型任务:设为Runtime.getRuntime().availableProcessors()(通常为CPU核心数)IO密集型任务:设为CPU核心数 * 2(或更高,根据IO等待时间调整)最大线…...
【入门】歌德巴赫猜想
描述 任一个大于等于4的偶数都可以拆分为两个素数之和。 输入描述 一个整数n( 4 < n < 200 ) 输出描述 将小于等于n的偶数拆分为2个质数之和,列出所有方案! 用例输入 1 10 用例输出 1 422 633 835 1037 1055 #include<b…...
kafka----初步安装与配置
目录标题 ⭐kafka 与 zookeeper间的关系一.集群部署二.修改配置文件三.分发安装包四.启动与关闭 kafka 与 zookeeper 相同,是以集群的形式使用 ⭐kafka 与 zookeeper间的关系 kafka 的使用 要在 zookeeper 集群配置好的基础上 使用要想启动kafka 要先启动 zookeep…...
如何通过 Windows 图形界面找到 WSL 主目录
WSL(Windows Subsystem for Linux)是微软开发的一个软件层,用于在 Windows 11 或 10 上原生运行 Linux 二进制可执行文件。当你在 WSL 上安装一个 Linux 发行版时,它会在 Windows 内创建一个 Linux 环境,包括自己的文件系统和主目录。但是,如何通过 Windows 的图形文件资…...
Cursor 编辑器 的 高级使用技巧与创意玩法
以下是针对 Cursor 编辑器 的 高级使用技巧与创意玩法 深度解析,涵盖代码生成优化、工作流定制、隐藏功能等层面,助你将 AI 辅助编程效率提升至新高度: 一、代码生成进阶技巧 1. 精准控制生成粒度 行级控制: 在代码行内用 // > 指定生成方向(替代模糊注释)def merge_…...
element-ui 源码调用接口跨域问题
今天在看 upload 组件源码时,在组件源码当中调用的本地启动的 nodejs 服务写的上传接口,遇到跨域问题: 问题一、在 upload.md 中调用 nodejs 服务中的 上传接口,控制台报跨域报错。 解决方法1:在根目录增加 vue.conf…...
Docker与PostgreSQL
1. 背景介绍 Docker是一种开源的容器化技术,它通过使用容器来隔离应用程序及其运行环境,使得开发人员能够快速、可靠地构建、部署和运行应用程序。Docker容器是轻量级的虚拟化单元,能够在任何支持Docker的操作系统上运行,从而消除…...
iVX 研发基座:大型系统开发的协作与安全架构实践
通过图形化开发、组件化封装和多厂商协作机制,iVX 解决了传统开发模式在效率、安全和扩展性上的痛点。文章结合政务、教育、企业等行业案例,展示其在数据治理、权限控制和 DevOps 等方面的创新实践,为大型系统开发提供完整的技术参考。 一、…...
Vxe UI vue vxe-table 实现表格数据分组功能,不是使用树结构,直接数据分组
Vxe UI vue vxe-table 实现表格数据分组功能,不是使用树结构,直接数据分组 查看官网:https://vxetable.cn gitbub:https://github.com/x-extends/vxe-table gitee:https://gitee.com/x-extends/vxe-table 代码 通过…...
基于TI AM6442+FPGA解决方案,支持6网口,4路CAN,8个串口
TI AM6442FPGA解决方案具有以下技术优势及适用领域: 一、技术优势 异构多核架构:AM6442处理器集成7个内核(2xCortex-A534xCortex-R5F1xCortex-M4F),可实现应用处理、实时控制和独立任务分核协同,满足…...
6. 多列布局/用户界面 - 杂志风格文章布局
6. 多列布局/用户界面 - 杂志风格文章布局 案例:多栏杂志排版 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">body {font-family: "…...
计算机系统----软考中级软件设计师(自用学习笔记)
目录 1、计算机的基本硬件系统 2、CPU的功能 3、运算器的组成 4、控制器 5、计算机的基本单位 6、进制转换问题 7、原码、反码、补码、移码 8、浮点数 9、寻址方式 10、奇偶校验码 11、海明码 12、循环冗余校验码 13、RISC和CISC 14、指令的处理方式 15、存储器…...
FPGA图像处理(六)------ 图像腐蚀and图像膨胀
默认迭代次数为1,只进行一次腐蚀、膨胀 一、图像腐蚀 1.相关定义 2.图像腐蚀效果图 3.fpga实现 彩色图像灰度化,灰度图像二值化,图像缓存生成滤波模块(3*3),图像腐蚀算法 timescale 1ns / 1ps // // Des…...
2025年RIS SCI2区,改进白鲸优化算法+复杂非线性方程组求解,深度解析+性能实测
目录 1.摘要2.白鲸优化算法BWO原理3.改进策略4.结果展示5.参考文献6.代码获取7.读者交流 1.摘要 本文提出了一种改进白鲸优化算法(ABWOA)用来解决非线性方程组(SNLEs)求解问题。ABWOA引入了平衡因子和非线性自适应参数࿰…...
【论信息系统项目的资源管理】
论信息系统项目的资源管理 前言一、规划好资源管理,为保证项目完成做好人员规划二、估算活动资源,为制订项目进度计划提供资源需求三、获取项目资源,组建一个完备的项目团队四、建设项目团队,提高工作能力,促进团队成员…...
开发与AI融合的Windsurf编辑器
Windsurf编辑器是开发人员和人工智能真正融合在一起的地方,提供了一种感觉像文字魔术的编码体验。 手册:Windsurf - Getting Started 下载链接:Download Windsurf Editor for Windows | Windsurf (formerly Codeium) 下载安装 从上面的下载…...
maven工程跳过@SpringTest
每次跑springboot都比较费劲,会自动测试所有的SpringBootTest的类,这里对根pom添加这个插件,即可跳过测试,实测节省时间2分钟以上 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>ma…...
算法竞赛相关 Java 二分模版
目录 找和目标值相关 方法 Arrays.binarySearch(); 二分答案模版 找和目标值相关 public class BinarySearchTemplate {// 查找大于 x 的最小值(即严格上界)public static int upperBound(int[] arr, int x) {int left 0, right arr.length;while (…...
如何使用远程桌面控制电脑
目的: 通过路由器使用pc控制台式机,实现了有线/无线pc与台式机的双向远程桌面控制 最核心就两条:get ip地址与被控制机器的账户与密码。 现象挺神奇:被控制电脑的电脑桌面处于休眠模式,此时强行唤醒被控电脑会导致中断…...
运行Spark程序-在shell中运行1
(一)分布式计算要处理的问题 【老师提问:分布式计算要面临什么问题?】 【老师总结】 分布式计算需要做到: 1.分区控制。把大的数据拆成一小份一小份的(分区,分片)让多台设备同时计算…...
多边形,矩形,长方体设置
在cesium中,我们可以通过既有的库来进行对地图的构建 // 向场景中添加一个几何体(立方体) scene.primitives.add(new Cesium.Primitive({// 定义几何体实例geometryInstances: new Cesium.GeometryInstance({// 使用BoxGeometry.fromDimensions方法创建…...
3.3 阶数的作用
第一步:引入背景与动机 在数学中,特别是在使用泰勒公式进行函数近似时,阶数的选择对结果的精度和适用范围有着重要影响。阶数越高,近似的精度通常也越高,但计算复杂度也会增加。因此,理解不同阶数的作用及…...
OAuth安全架构深度剖析:协议机制与攻防实践
目录 一、OAuth协议核心架构解析 1. 协议框架与核心组件 2. 授权流程类型对比 二、OAuth安全漏洞技术原理与攻击向量 1. 重定向URI劫持攻击 2. 令牌注入与滥用 3. 跨站请求伪造(CSRF) 三、纵深防御体系构建指南 1. 协议层加固 2. 工程化防护 3…...
关于网站提交搜索引擎
发布于Eucalyptus-blog 一、前言 将网站提交给搜索引擎是为了让搜索引擎更早地了解、索引和显示您的网站内容。以下是一些提交网站给搜索引擎的理由: 提高可见性:通过将您的网站提交给搜索引擎,可以提高您的网站在搜索结果中出现的机会。当用…...
一文理清人工智能,机器学习,深度学习的概念
目录 一、人工智能的起源与核心范畴(1950-1980) 1.1 智能机器的最初构想 1.2 核心范畴的初步分化 二、机器学习的兴起与技术分化(1980-2010) 2.1 统计学习的黄金时代 2.2 神经网络的复兴与子集定位 2.3 技术生态的形成与AI…...
MySQL 数据库:创建新数据库和数据表全攻略
MySQL 数据库:创建新数据库和数据表全攻略 在 MySQL 数据库管理中,创建新的数据库和数据表是基础且关键的操作。无论是开发新的应用程序,还是对现有数据进行整理和存储,都离不开这些操作。本文将详细介绍如何在 MySQL 中创建新数…...
React Native 与 Expo
🧩 Expo 和 React Native 的关系 项目定义React Native一个由 Meta(Facebook)开发的原生移动端开发框架,使用 JavaScript React 来构建 iOS 和 Android 应用Expo一个构建在 React Native 之上的开发工具链,封装了很多…...
【RabbitMQ】七种工作模式介绍
文章目录 1. 简单模式2. 工作队列模式3. 发布订阅模式交换机类型 Publish/Subscribe 模式 4. Routing(路由模式)5. Topics(通配符模式)6. RPC(RPC 通信)7. Publisher Confirms(发布确认…...
【C++进阶篇】二叉搜索树的实现(赋源码)
掌握二叉搜索树:从基础知识到实际应用的全貌 一. 二叉搜索树简介1.1 基本概念1.2 意义与价值1.3 典型应用场景1.4 性能分析1.5 总结与展望 二. 搜索二叉树实现2.1 插入2.2 查找2.3 删除2.3.1 单或无孩型2.3.2 双孩型2.3.4 整合代码 三. ⼆叉搜索树key和key/value使⽤…...