面经整理——AI

Agent

解释一下什么是agent

Agent(智能体) 是能够自主感知环境、决策并执行动作,以实现特定目标的实体。

  • 感知:机器人的摄像头、NLP Agent 的文本输入等
  • 决策:推荐系统 Agent 根据用户浏览历史,决策推荐哪些商品;无人机 Agent 根据地形,决策最优飞行路径,ChatExcel通过解析表格内容和用户提示词决定处理的步骤
  • 行动:工业机器人 Agent 执行 "抓取零件" 的动作;邮件自动回复 Agent 发送预设邮件;LLM Agent 调用工具(如计算器、搜索引擎)完成任务,ChatExcel执行pandas代码操作表格。

MCP

什么是MCP

模型上下文协议(Model Context Protocol)

旨在统一大模型与外部数据源和工具之间的通信协议 。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。

将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务器和资源。
客户端负责发送请求给 MCP 服务器 ,服务器则将这些请求转发给相应的资源。这种分层的设计使得 MCP 协议能够更好地控制访问权限 ,确保只有经过授权的用户才能访问特定的资源。

MCP基本工作流程:

  • 初始化连接:客户端向服务器发送连接请求,建立通信通道。
  • 发送请求:客户端根据需求构建请求消息,并发送给服务器。
  • 处理请求:服务器接收到请求后,解析请求内容,执行相应的操作(如查询数据库、读取文件等)。
  • 返回结果:服务器将处理结果封装成响应消息,发送回客户端。
  • 断开连接:任务完成后,客户端可以主动关闭连接或等待服务器超时关闭。
    MCP核心架构
    MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
    MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
    MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
    本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
    远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)。

MCP Client

MCP client 充当 LLM 和 MCP server 之间的桥梁,MCP client 的工作流程如下:

  • MCP client 首先从 MCP server 获取可用的工具列表。
  • 将用户的查询连同工具描述通过 function calling 一起发送给 LLM。
  • LLM 决定是否需要使用工具以及使用哪些工具。
  • 如果需要使用工具,MCP client 会通过 MCP server 执行相应的工具调用。
  • 工具调用的结果会被发送回 LLM。
  • LLM 基于所有信息生成自然语言响应。
  • 最后将响应展示给用户。

通信机制

stdio(Standard Input/Output)即标准输入输出流,是操作系统为进程提供的默认通信管道。在 MCP 协议中,MCP Client 和 MCP Server 运行在同一台机器上,作为两个独立进程,通过 stdin(标准输入)和 stdout(标准输出)直接传输 JSON-RPC 消息,无需经过网络协议栈。

  • 进程启动:MCP Host 启动时,会 fork 一个子进程运行 MCP Server(如本地文件管理 Server),并建立 stdio 管道连接。
  • 消息发送:Client 把 JSON-RPC 请求消息序列化为字符串,通过 stdout 写入管道。
  • 消息接收:Server 从 stdin 读取管道中的字符串,反序列化为 JSON 对象,执行对应的方法(如读取本地文件)。
  • 响应返回:Server 将执行结果封装为 JSON-RPC 响应消息,通过自身的 stdout 写回管道,Client 从 stdin 读取响应。
    SSE(Server-Sent Events)是一种基于 HTTP 协议的单向服务器推送技术,允许服务器主动向客户端发送实时数据。在 MCP 协议中,MCP Client 和 MCP Server 部署在不同主机,通过 HTTP 连接建立 SSE 通道,传输 JSON-RPC 消息,实现跨网络的远程通信。与 WebSocket(双向全双工)不同,SSE 是单向的:客户端发起一次 HTTP GET 请求后,连接会被保持为长连接,后续只有 Server 能主动向 Client 推送数据;如果 Client 需要发送请求(如调用远程方法),则需要单独发起 HTTP POST 请求。
  • 建立长连接:Client 向 Server 的 SSE 端点(如 http://remote-mcp-server.com/sse)发送 HTTP GET 请求,请求头中指定 Accept: text/event-stream,表示要建立 SSE 连接。
  • 发送远程请求:Client 若需调用 Server 方法(如查询远程天气 API),则发起 HTTP POST 请求,将 JSON-RPC 消息体放在请求体中。
  • Server 处理并推送响应:
  • Server 执行方法后,将 JSON-RPC 响应消息封装为 SSE 格式的事件;
  • 通过已建立的 SSE 长连接,将事件推送给 Client。
  • 实时数据推送:如果 Server 有主动更新(如航班动态、股票价格变化),可直接通过 SSE 向 Client 推送 JSON-RPC 消息,无需 Client 轮询。

身份认证

单一key

对 MCP 服务器,我们采用一种现代、标准的方法:JWT Bearer Token 身份验证。

基本思路如下:

  • 一个授权服务器/身份提供商(Authorization Server / Identity Provider)向客户端签发一个JSON Web Token(JWT) ,这是带数字签名的"通行证"。
  • 客户端在请求头中附带该令牌:Authorization: Bearer <很长的 JWT 字符串>。
  • 我们的 MCP 服务器作为资源服务器(Resource Server) ,无需与授权服务器通信;它只需要授权服务器的公钥,用来验证令牌签名的有效性与未被篡改。
    这种方式既安全又易扩展。你的 MCP 服务器不处理密码或机密,只需验证签名令牌。下面分别用 fastmcp 与 mcp 来实现。

Rag

LangGraph

相关推荐
code bean10 小时前
【AI 】OpenSpec 实战指南:在 Cursor 中落地 AI 原生开发工作流
人工智能·cursor·ai工作流·openspec
多恩Stone10 小时前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
江瀚视野10 小时前
多家银行向甲骨文断贷,巨头甲骨文这是怎么了?
大数据·人工智能
ccLianLian10 小时前
计算机基础·cs336·损失函数,优化器,调度器,数据处理和模型加载保存
人工智能·深度学习·计算机视觉·transformer
asheuojj10 小时前
2026年GEO优化获客效果评估指南:如何精准衡量TOP5关
大数据·人工智能·python
多恩Stone10 小时前
【RoPE】Flux 中的 Image Tokenization
开发语言·人工智能·python
callJJ10 小时前
Spring AI ImageModel 完全指南:用 OpenAI DALL-E 生成图像
大数据·人工智能·spring·openai·springai·图像模型
铁蛋AI编程实战10 小时前
2026 大模型推理框架测评:vLLM 0.5/TGI 2.0/TensorRT-LLM 1.8/DeepSpeed-MII 0.9 性能与成本防线对比
人工智能·机器学习·vllm
23遇见11 小时前
CANN ops-nn 仓库高效开发指南:从入门到精通
人工智能
SAP工博科技11 小时前
SAP 公有云 ERP 多工厂多生产线数据统一管理技术实现解析
大数据·运维·人工智能