当前位置: 首页 > article >正文

【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,也就是用户提示词,一般就是我们提出的问题或者想说的话 但是我们…...

Mysql数据库之集群进阶

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

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

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

精益数据分析(64/126):移情阶段的用户触达策略——从社交平台到精准访谈

精益数据分析(64/126):移情阶段的用户触达策略——从社交平台到精准访谈 在创业的移情阶段,精准找到目标用户并开展深度访谈是验证需求的关键。今天,我们结合《精益数据分析》中的方法论,探讨如何利用Twit…...

苹果新一代车载系统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…...

mock 数据( json-server )

json-server 实现数据 mock 实现步骤: 1. 在项目中安装 json-server npm install -D json-server 2. 准备一个 json 文件 server/data.json {"posts": [{ "id": "1", "title": "a title", "views"…...

Java多线程编程中的常见问题与陷阱汇总

线程安全问题 多线程环境下,多个线程同时访问共享资源时,可能会导致数据不一致或程序行为异常。常见的线程安全问题包括竞态条件、死锁、活锁等。 public class Counter {private int count 0;public void increment() {count;}public int getCount()…...

ARP Detection MAC-Address Static

一、ARP Detection(ARP检测) ✅ 定义: ARP检测是一种防止ARP欺骗攻击的安全机制。它通过监控或验证网络中的ARP报文,来判断是否存在伪造的ARP信息。 🔍 工作原理: 网络设备(如交换机&#xf…...

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…...

相机Camera日志分析之十一:高通相机Camx hal预览1帧logcat日志process_capture_result详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:高通相机Camx 日志分析之五:camx hal预览1帧logcat日志process_capture_request详解 这一篇我们开始讲: 高通相机Camx 日志分析之十一:camx hal预览1帧logcat日志process_capture_result详解,这里我…...

Python函数库调用实战:以数据分析为例

一、引言 Python之所以在编程领域广受欢迎,很大程度上得益于其丰富且强大的函数库。这些函数库涵盖了从数据分析、科学计算到Web开发、机器学习等众多领域,极大地提高了开发效率。本文将以数据分析为例,介绍如何调用Python的一些常用函数库。…...

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

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

顶层设计-IM系统架构

一、系统总体架构概览 即时通讯(IM)系统的核心目标,是让用户可以随时随地稳定地发送和接收消息。为了支撑成千上万用户同时在线交流,我们需要将整个系统划分成多个专职模块,每个模块只负责一件事情,彼此协同…...

信任的进阶:LEI与vLEI协同推进跨境支付体系变革

在全球经济版图加速重构的背景下,跨境支付体系正经历着前所未有的变革。2022年全球跨境支付规模突破150万亿美元,但平均交易成本仍高达6.04%,支付延迟超过2.7天。 这种低效率背后,隐藏着复杂的身份识别困境:超过40%的…...

安全性(三):信息安全的五要素及其含义

五要素及其含义 序号要素英文缩写含义说明1保密性Confidentiality仅授权用户才能访问信息,防止信息被非法获取或泄露(例如:加密、访问控制)2完整性Integrity信息在传输、存储和处理过程中保持准确、完整、未被篡改(例…...

PHP 与 面向对象编程(OOP)

PHP 是一种支持面向对象编程(OOP)的多范式语言,但其面向对象特性是逐步演进而非原生设计。以下是关键分析: 1. PHP 对面向对象编程的支持 核心 OOP 特性: 类和对象: PHP 支持通过 class 关键字定义类&…...

Axios全解析:从基础到高级实战技巧

目录 核心特性 安装配置 基础使用 高级功能 错误处理 拦截器机制 请求取消 TypeScript支持 最佳实践 常见问题 1. 核心特性 1.1 核心优势 全平台支持:浏览器 & Node.js 双环境 自动转换:JSON数据自动序列化 拦截器系统:请求…...

EXO 可以将 Mac M4 和 Mac Air 连接起来,并通过 Ollama 运行 DeepSeek 模型

EXO 可以将 Mac M4 和 Mac Air 连接起来,并通过 Ollama 运行 DeepSeek 模型。以下是具体实现方法: 1. EXO 的分布式计算能力 EXO 是一个支持 分布式 AI 计算 的开源框架,能够将多台 Mac 设备(如 M4 和 Mac Air)组合成…...

数据库故障排查指南

数据库连接问题 检查数据库服务是否正常运行,确认网络连接是否畅通,验证数据库配置文件的正确性,确保用户名和密码无误。 性能问题 分析慢查询日志,优化SQL语句,检查索引使用情况,调整数据库参数配置&am…...

RBTree的模拟实现

1:红黑树的概念 红⿊树是⼀棵⼆叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束,红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍,因…...

docker-compose——安装mongo

编写docker-compose.yml version : 3.8services:zaomeng-mongodb:container_name: zaomeng-mongodbimage: mongo:latestrestart: alwaysports:- 27017:27017environment:- MONGO_INITDB_ROOT_USERNAMEroot- MONGO_INITDB_ROOT_PASSWORDpssw0rdvolumes:- ./mongodb/data:/data/…...