2026/1/23 11:17:34
网站建设
项目流程
成都网站建设公司电话,wordpress 网站模板,微信小程 wordpress,专业企业网站设计网络公司本系列文章分为三篇#xff0c;前两篇为基础知识#xff0c;将分别介绍什么是ADK#xff0c;Agent#xff0c;MCP。
在 GPT-4、Claude、Gemini 和 Llama3 等大型语言模型#xff08;LLM#xff09;不断演进的今天#xff0c;我们迫切需要一种标准化方式#xff0c;将它…本系列文章分为三篇前两篇为基础知识将分别介绍什么是ADKAgentMCP。在 GPT-4、Claude、Gemini 和 Llama3 等大型语言模型LLM不断演进的今天我们迫切需要一种标准化方式将它们与外部工具、API 和系统进行连接。 但问题是这些模型都是“闭环”的 —— 它们只能处理预训练数据无法直接访问实时数据、数据库、API 或本地文件系统。今天我们要介绍的主角 ——Model Context ProtocolMCP就可以帮助我们解决上述的问题。什么是 Model Context Protocol随着大语言模型LLM的能力越来越强它们已经不只是“聊天机器人”而正在演变成具备实际执行力的智能体Agent。但 LLM 有个“致命限制”它们是封闭系统无法直接访问外部世界的数据、接口和工具。这就像你拥有一位博学多才的助手但他关在屋子里既看不到新闻也摸不到文件手脚都被绑住了。MCP 就是打开这扇门的钥匙**Model Context ProtocolMCP**是一种由 Anthropic 推出的通用协议它让大语言模型可以查询实时数据访问数据库操作本地文件甚至调用 CRM、Git 等业务系统。你可以把 MCP 理解为 “AI 工具的插头和插座” —— 不管是 Gemini、Claude 还是 GPT只要符合 MCP 协议就能通过统一方式接入这些“外部世界的工具”。MCP LLM 的万能转接头 LLM ⟶ MCP ⟶ 外部工具/API/数据库它为 AI 系统打通了“感知-思考-执行”的完整闭环是 Agent 系统落地的关键基建。✦ ✧ ✦MCP 的工作原理就像“遥控指挥 实时执行”MCP 采用的是一个 “客户端 - 服务端”架构角色分工非常清晰角色作用客户端一般是 AI 模型如 Gemini、GPT-4 等或模型应用服务端MCP 工具提供方用来暴露功能比如“搜索航班”工具、“查询数据库”等举个例子假设你给 Gemini 发一句话“查一下明天从北京到上海的高铁票”系统执行过程大致如下Gemini 接收到自然语言它通过 MCP 协议得知有一个叫 search_trains 的工具它根据 prompt 自动生成结构化函数调用如 source: 北京destination: 上海这个调用通过 MCP 协议传给 MCP ServerMCP Server 实际调用第三方 API比如 12306 数据接口返回结果后反馈给 GeminiGemini 再用自然语言将结果表达给用户。整个过程像是一场模型和工具之间的“协同舞蹈”由 MCP 串联而成。✦ ✧ ✦MCP 工具的应用示例以下是 MCP 可支持的一些典型工具类型覆盖了日常应用、商业系统、开发运维等多个场景工具类型示例功能说明 本地文件系统file_browser读取、列出本地文件夹内容 实时搜索工具web_search基于 Bing、Google 进行网页搜索 数据查询工具sql_query_tool连接 PostgreSQL/MySQL 数据库进行 SQL 查询 CRM 工具salesforce_tool调用 Salesforce 接口查询客户或订单信息 开发工具集成git_tool查询 Git 仓库中的提交记录或差异 产品信息查询ecommerce_tool搜索电商平台商品详情如亚马逊实际例子企业可以使用 MCP LLM 实现“智能客服”自动调用数据库查订单AI 编程助手可通过 MCP 工具调用 Git 工具查找代码变更财务助手通过 MCP 查询 Excel 文件或 ERP 系统发票信息只要你能把功能封装成 MCP 工具LLM 就能学会使用它。MCP 的典型使用场景✅ 构建 Agent 系统具备感知、记忆、执行能力的 AIMCP 是 AI Agent 的“胳膊和腿”是连接语言和行动之间的桥梁。✅ 搭建多工具工作流需要串联多个工具完成任务时如搜索 → 总结 → 存储MCP 可以让每个环节模块化、可重用。✅ 自然语言 实时外部数据结合任何“用嘴控制工具”的场景 —— 比如语音助手、智能问答、企业数据 Copilot都离不开 MCP。✅ 企业内部系统集成无论你用的是 Oracle、SAP、Salesforce、还是自研系统都可以包装成 MCP 工具暴露出去。只要遵循协议模型就能自动发现并调用。✦ ✧ ✦实战教程基于 Gemini MCP 构建实时航班查询系统 准备工作Python ≥ 3.8拥有 Google Gemini API Key拥有 SerpAPI Key用于实时航班数据Google Gemini API KeyGoogle Gemini 是 Google 推出的系列大型语言模型LLM通过 Google AI Studio 提供 API 接口。✅ 步骤如下打开官网https://makersuite.google.com/app这是 Google AI Studio 的入口页面国内建议使用科学上网访问。登录你的 Google 账号点击右上角头像选择 “Get API Key” 或进入控制台https://aistudio.google.com/app/apikey同意服务条款生成 API KeySerpAPI KeySerpAPI 是一个第三方 API 服务可以将 Google、Bing、YouTube 等搜索结果结构化返回非常适合 LLM 使用。✅ 步骤如下打开官网https://serpapi.com/点击右上角「Sign Up」注册一个账号支持 Google 登录登录后进入控制台https://serpapi.com/dashboard在页面上找到你的 API Key复制即可Step 1创建虚拟环境python -m venv venvsource venv/bin/activatepip install google-genai mcpgoogle-genai与 Google 的生成式 AI 模型如 Gemini交互的官方 Python 库用于与 MCPModel Context Protocol模型上下文协议服务器交互的 Python SDK该 SDK 提供了与外部工具或服务通信的相关功能设置环境变量export GEMINI_API_KEY你的 Gemini API 密钥export SERP_API_KEY你的 SerpAPI 密钥Step 2安装 MCP 服务器mcp-flight-searchpip install mcp-flight-search为了让 Gemini 能够与真实世界的 API 交互我们需要使用一个符合 MCP 协议的服务器。在本文中我们将使用名为mcp-flight-search的服务器 —— 这是一个基于 FastMCP 构建的轻量级 MCP Server它通过 SerpAPI 暴露了一个可以实时搜索航班数据的工具。你可以通过以下链接在 PyPI 上安装该 MCP 服务器包 https://pypi.org/project/mcp-flight-search/如果你的 MCP 服务器包安装成功你将会看到下面的内容。Step 3导入关键库导入用于初始化 Gemini 和 MCP SDK 的库并为异步执行做好准备。from google import genai上面这行代码导入的是google-generativeai库中的genai模块 它使我们可以访问 Google 强大的语言模型例如 Gemini 1.5、2.0 和 2.5并提供了与模型进行自然语言交互的客户端方法。from google.genai import types这行代码提供了 Gemini API 中使用的类型定义和配置结构。 例如Tool定义模型可以调用的工具函数GenerateContentConfig用于配置模型的响应方式如温度、是否启用函数调用等。from mcp import ClientSession, StdioServerParameters这行代码来自 mcp-sdk-python 库是与 MCP 服务器交互所必需的组件ClientSession用于管理客户端或应用与 MCP 服务端之间的通信会话StdioServerParameters指定通过标准输入输出stdio方式与 MCP 服务端交互语言无关易于集成。from mcp.client.stdio import stdio_client这行代码导入了stdio_client它是一个异步上下文管理器 用于通过标准输入输出stdin/stdout建立与 MCP Server 的连接确保服务器正确启动客户端可以结构化地发送和接收请求。完整导入模块from google import genaifrom google.genai import typesfrom mcp import ClientSession, StdioServerParametersfrom mcp.client.stdio import stdio_clientStep 4初始化 Gemini 客户端client genai.Client(api_keyos.getenv(GEMINI_API_KEY))genai.Client()是与 Google 生成式模型例如 Gemini 2.5 Pro、Gemini 2 Flash交互的主要接口。一旦初始化了 GenAI 客户端该客户端对象就可以执行以下操作向 Gemini 模型发送提示语prompt传递工具定义用于函数调用接收结构化的响应结果和函数调用对象。Step 5配置 MCP 工具服务器参数以下代码块用于设置启动 MCP 服务器并与之通信所需的参数该服务器会暴露一些工具在我们的示例中是一个航班搜索功能。server_params StdioServerParameters( commandmcp-flight-search, args[--connection_type, stdio], env{SERP_API_KEY: os.getenv(SERP_API_KEY)},)mcp-flight-search—— 这是用于运行本地 MCP 服务器的命令行入口也可以是一个实现了 MCP 协议的 Python 模块在我们的例子中即如此。stdio—— 指定服务器使用标准输入/输出stdio作为通信通道。Stdio 简单、语言无关非常适合在本地或子进程中运行工具服务器。SERP_API_KEY—— 通过环境变量将 SERP_API_KEY 传递给运行该工具的子进程。在我们的案例中这个工具需要使用该密钥来验证并访问 SerpAPI以获取实时航班数据。一旦定义了 server_params我们就可以使用 stdio_client 异步上下文管理器来启动 MCP 服务器。Python 3.11.11 (main, Dec 3 2024, 17:20:40) [Clang 16.0.0 (clang-1600.0.26.4)] on darwinType help, copyright, credits or licensefor more information. import os from google import genai from google.genai import types from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client client genai.Client(api_keyos.getenv(GEMINI_API_KEY)) server_params StdioServerParameters(... commandmcp-flight-search,... args[--connection_type, stdio],... env{SERP_API_KEY: os.getenv(SERP_API_KEY)},... ) server_paramsStdioServerParameters(commandmcp-flight-search, args[--connection_type, stdio], env{SERP_API_KEY:XXXXXXXXX}, cwdNone, encodingutf-8, encoding_error_handlerstrict)Gemini 客户端负责处理语言理解、提示词生成以及函数调用。而 MCP 工具服务器航班搜索则监听来自模型的工具调用请求并通过 SerpAPI 实时执行这些操作。Step 6连接 MCP 服务 工具注册以下这段代码执行了三个重要的步骤建立与 MCP 服务器的连接初始化一个用于结构化工具通信的会话动态发现并格式化可供 Gemini 使用的工具信息。async def run(): asyncwith stdio_client(server_params) as (read, write): asyncwith ClientSession(read, write) as session: prompt Find Flights from Atlanta to Las Vegas 2025-05-05 await session.initialize() mcp_tools await session.list_tools() tools [ types.Tool(function_declarations[ { name: tool.name, description: tool.description, parameters: { k: v for k, v in tool.inputSchema.items() if k notin [additionalProperties, $schema] } } ]) for tool in mcp_tools.tools ] response client.models.generate_content( modelgemini-2.5-pro-exp-03-25, contentsprompt, configtypes.GenerateContentConfig( temperature0, toolstools ), )让我们逐行解析代码深入了解 MCP 客户端与服务器以及 Gemini 大模型之间是如何在底层进行通信的。stdio_client是一个异步上下文管理器主要负责以下几项任务以子进程的形式启动 MCP 服务器管理与服务器之间的输入/输出流用于交换消息其中的read和write是异步流对象read用于从 MCP 服务器读取响应或工具注册信息write用于向服务器发送请求或发起工具调用。prompt fFind Flights from Atlanta to Las Vegas 2025-05-05上述的 prompt 是我们要发送给 Gemini 模型的自然语言查询Gemini 会将其解析并转换为结构化的工具调用请求。await session.initialize()session.initialize()是触发客户端与 MCP 服务器之间初始握手的关键操作。在此过程中服务器会注册它所提供的全部工具在我们的示例中是一个航班搜索工具。一旦初始化完成当前会话就可以列出、调用并执行这些工具了。mcp_tools await session.list_tools()上述代码用于请求服务器所暴露的所有工具函数列表。在mcp_tools.tools中的每一个工具都包含以下信息工具名称name工具描述description输入参数的结构input schema即该工具接受哪些参数格式为 JSON Schema通过mcp_tools.toolsMCP 服务器具备了自描述能力这使得大语言模型LLM可以自动理解每个工具的调用方式。tools [ types.Tool( function_declarations[ { name: tool.name, description: tool.description, parameters: { k: v for k, v in tool.inputSchema.items() if k notin [additionalProperties, $schema] }, } ] ) for tool in mcp_tools.tools]上述步骤将 MCP 工具的定义转换为 Gemini 所需的function_declarations格式。此时MCP 服务器已经启动会话也已初始化Gemini 模型可以通过这个会话发现并使用 MCP Server 所提供的工具。Step 7执行函数调用并获取航班数据response client.models.generate_content( modelgemini-2.5-pro-exp-03-25, contentsprompt, configtypes.GenerateContentConfig( temperature0, toolstools, ),)最后用户的提示词prompt会连同从 MCP 服务器发现到的工具列表一起发送给 Gemini 模型。如果 Gemini 判断该提示词符合某个工具的函数定义schema它就会返回一个 function_call 对象其中包含要调用的工具名称和自动填充的参数。result await session.call_tool( function_call.name, argumentsdict(function_call.args))如果 Gemini 判断该提示词与某个函数基于名称、描述或参数匹配它就会返回一个结构化的function_call对象格式如下{ function_call: { name: search_flights, args: { source: ATL, destination: LAS, date: 2025-05-05 } }}此时Gemini 大语言模型就从一个被动的文本生成模型转变为一个主动的“决策执行者”具备以下能力理解自然语言输入自动选择合适的工具自动填充函数所需的参数我们完全没有编写任何解析逻辑Gemini 模型仅凭用户的自然语言输入就自动完成了所有字段的填充。最终生成的函数调用是结构化的并且已准备好交由工具执行。最终演示Gemini 2.5 Pro 搭配 MCP 协议下面的调试日志清晰地展示了 Gemini 与 Model Context ProtocolMCP如何协同工作解析用户意图匹配合适的工具并调用工具获取实时数据返回结果。✦ ✧ ✦ 总结本文以“自然语言航班搜索”为例手把手带你实践如何通过 Gemini 理解用户语言如何用 MCP 暴露结构化工具如何打通 LLM 实时数据的通路结合 Gemini 2.5 Pro 实验版 MCP我们构建了一个可以自主理解、动态决策、自动调用工具并返回结构化结果的智能系统 —— 无需硬编码任何逻辑。 GitHub 项目地址 完整代码已发布至 arjunprabhulal/mcp-gemini-search想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容2025 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”