用户和AI对话的一次全流程

用户构建 User Prompt 发送给 Agent;
Agent 注册工具函数的信息,比如Tool的功能,调用方式,返回值类型等等,然后将其转化为System Prompt或者Function Calling的格式;
Agent 将注册的工具函数信息封装进 System Prompt(或者封装为符合Fuction Calling格式的json,现在大多是Sys Prompt和json共存),并将其和 User Prompt 一起发送给大模型;
大模型根据Prompt来思考和”选择“ 函数工具的调用请求,这个请求符合Function Calling规范;
Agent 构建符合MCP协议的调用方式,调用工具函数并获取返回值;
Agent 将返回值转发给大模型;
大模型根据Tools的返回值进行“整理和思考”,然后把推理结果发送给 Agent;
Agent将推理结果返回给用户。
AI服务
AI Agent
简介:宏观上的Agent是指是一种基于大型语言模型(LLM)构建的智能系统,具备环境感知、自主理解、决策制定及执行行动的能力。Agent能够模拟独立思考过程,灵活调用各类工具,逐步达成预设目标。
MCP Client 也就是代码(微观)层面的Agent。
Agent是一个组件,用于在用户、大模型、工具函数之间进行传话;
Agent会注册工具函数的信息,比如Tool的功能,调用方式,返回值类型等等。
工具函数Tools
简介:工具是模型上下文协议(MCP)中的一个强大原语,使服务器能够向客户端暴露可执行的功能。通过工具,LLMs可以与外部系统交互、执行计算并在现实世界中采取行动。
概述
在 MCP 中,工具允许服务器暴露可被客户端调用并由LLMs使用的可执行函数。工具的关键方面包括:
发现: 客户可以通过tools/list端点列出可用的工具
调用: 工具通过tools/call端点被调用,服务器执行请求的操作并返回结果
灵活性: 工具可以是从简单计算到复杂 API 交互的各种类型
像资源 一样,工具通过唯一名称进行标识,并可以包含描述以指导其使用。然而,与资源不同,工具代表动态操作,可以修改状态或与外部系统交互。
在实现工具时:
1.提供清晰、描述性的名称和描述
2.使用详细的 JSON Schema 定义参数
3.在工具描述中包含示例,以演示模型应如何使用它们
4.实现适当的错误处理和验证
5.使用进度报告来报告长时间的操作
6.保持工具操作集中且原子化
7.文档化预期的返回值结构
8.实现适当的超时机制
9.考虑对资源密集型操作进行速率限制
10.记录工具使用情况以供调试和监控
大模型
简介:Large Language Model (LLM) 是一种基于深度学习技术的自然语言处理模型,也被称作大语言模型。它可以学习自然语言的语法和语义,从而生成可读的文本。这种模型只用于处理语言文字或符号体系,可以根据提示自动生成符合规律的内容。通常,LLM基于神经网络模型,使用大量的语料库进行训练,比如互联网上的大量文本数据。这些模型通常拥有数十亿到数万亿个参数,能够完成各种自然语言处理任务,如自然语言生成、文本分类、文本摘要、机器翻译和语音识别。
机制和架构
Function Call机制
原理:Function Calling 是 LLM 的一种能力,能够解析用户意图并生成格式化的函数调用请求(如 JSON 格式)。模型通过调用外部函数来完成任务,例如获取天气信息或查询数据库。
MCP协议
简介:MCP(模型上下文协议)是一个使大型语言模型(LLMs,如 Claude)能够与外部工具和数据源交互的协议。使用 MCP,您可以:
构建为 LLMs 提供工具和数据的服务器
将这些服务器连接到兼容 MCP 的客户端
通过自定义功能扩展 LLM 的能力
MCP将工具函数作为Server方,Agent作为Client方,规定了MCP Server如何和MCP Client通信;解耦了两者的关系,使得 工具函数 和 Agent 可以各自随意替换。

MCP Server既可以和Agent跑在同一台机器上通过标准输入输出进行通信,也可以部署在网络上,通过HTTP进行通信。
MCP Server 和 MCP Client 的通信方式:
stdio标准输入输出,即Server和Client跑在同一协议上;优点:简单
SSE远程调用,基于HTTP,需要处理验证授权等;优点:可以远程通信
A2A协议
简介:Agent to Agent Protocol (A2A) 是由 Google 推出的开源协议,旨在实现不透明 Agent 智能体应用程序之间的通信和互操作性。该协议使 Agent 智能体能够完成任务,而无需共享内存、想法或工具,相反,它们交换上下文、状态、指令和各自原生模态的数据。
主要功能与特性
开放标准 - 基于现有标准(HTTP、SSE 和 JSON-RPC)构建,易于实现和集成
企业就绪 - 内置身份验证、安全性、隐私保护和监控功能
异步优先 - 支持(非常)长时间运行的任务和人在环路中的交互
模态无关 - 支持文本、音频/视频、表单、iframe等多种交互模式
不透明执行 - Agent 智能体不需要共享思想、计划或工具

使用场景
多 Agent 智能体协作:不同系统和供应商的 Agent 智能体可以协同工作,共同完成复杂任务。
跨企业工作流:安全地连接多个企业系统,支持跨组织的协作流程。
长运行任务:支持需要持续数小时、数天甚至数周的复杂 Agent 智能体任务。
多模态交互:通过文本、音频、视频和交互式表单等多种方式实现自然交互。
RAG架构
简介: RAG(检索增强生成)是一种结合信息检索与文本生成的技术,通过“先查资料后回答”机制解决传统模型知识更新滞后及幻觉问题。其核心流程包括:1) 检索:从外部知识库中查找相关文本片段;2) 生成:将检索结果与用户查询输入给大语言模型生成回答。RAG利用Embedding模型将文本转为向量,通过语义匹配实现高效检索,提供更准确、实时的回答。
在大模型上下文有限的情况下,通过切块、压缩存储的方式缩减上下文长度,从而喂给大模型更加优质的prompt。

RAG的实现需要三方协作
智能体是“指挥官”:决定何时启动RAG,并管理整个流程。
函数工具是“侦察兵与仓库”:负责存储(向量化)和查找(检索)具体信息。
大模型是“分析师”:基于工具找到的情报,进行综合与创作。
文档索引
在 RAG 中,文档索引 是整个流程的基础环节之一,将文档(word,excel,PDF,Markdown 等)根据一定的规则容划分为文本块(chunk),然后通过 Embedding 模型将文本块转换为向量并存入向量数据库中。
文档索引的目的是为了实现高效、准确的信息检索,为后续的大语言模型生成提供可靠的上下文支持。
步骤
向量化用户问题:将 用户问题 用相同的 Embedding 模型转换为向量,用以检索相关知识分片
检索(Retrieval):通过向量数据库一系列高效的数学计算 (如余弦相似度、欧氏距离等),检索出语义相似度最高的几个知识分片(Top_k)
构建 Prompt :将 Prompt + 检索结果+ 用户问题 构建成完整的 Prompt
生成(Generation):大语言模型再根据这个 Prompt 生成结果
思考:这种架构更像是一种prompt处理,语义切割、压缩、匹配的最终目的都是更加精炼的传达用户的意思。更像是一种语言学?这种架构实际还存在一些问题,切割后前后文信息割裂,语法问题导致的主语缺失?