2026/4/18 9:59:04
网站建设
项目流程
phpcms怎么做网站,一个网站的后台怎么做,福州交通建设投资集团网站,分销系统多少钱本篇文章是#xff1a;从零开始#xff0c;亲手开发你的第一个AI大模型#xff01;的最终篇。在第二篇的基础上配合 Gemini 大模型#xff0c;实现智能 Agent 的工具链集成。
本系列文章分为三篇#xff0c;前两篇为基础知识#xff0c;将分别介绍什么是ADK#xff0c;A…本篇文章是从零开始亲手开发你的第一个AI大模型的最终篇。在第二篇的基础上配合 Gemini 大模型实现智能 Agent 的工具链集成。本系列文章分为三篇前两篇为基础知识将分别介绍什么是ADKAgentMCP。本篇为具体实现。在我上一篇文章中我们探讨了如何通过 Model Context ProtocolMCP将 Gemini 大模型集成为 MCP 客户端从而实现结构化、具备工具调用能力的智能交互同时也介绍了 MCP 的核心理念、典型应用场景并展示了相关演示。而本篇文章将进一步深入重点讲解如何借助 ADK 中的 Agent以 MCP 客户端的形式调用外部 MCP 工具的能力配合 Gemini 大模型实现智能 Agent 的工具链集成。话不多说我们直接进入代码实现 我们的最终目标我们将使用 Google 开源的 Agent Development KitADK结合 Gemini 大语言模型 和 MCP 工具协议从零构建一个智能航班查询 Agent实现以下功能 当用户输入诸如“帮我查查从亚特兰大到拉斯维加斯 5 月 5 号的航班”这样的请求时Agent 会自动调用 MCP 接口查找实时航班信息并以结构化方式返回给用户。代码结构我们将延续上一篇文章中使用的架构并在此基础上引入 ADKAgent Development Kit进行集成。实现部分接下来我们将通过拆解关键步骤逐步构建这个由ADK MCP Gemini AI组成的智能 Agent 流水线。准备工作在开始实现之前请确保已完成以下环境配置已安装 Python 3.8 及以上版本拥有 Google Gemini 生成式 AI 的 API Key用于调用 Gemini 大模型有效的 SerpAPI 密钥用于获取实时航班数据上述KEY如何申请在本系列文章的第二篇均有介绍Step1设置虚拟环境我们首先需要创建并激活一个 Python 虚拟环境然后安装所需的依赖库。# 设置虚拟环境适用于 macOS 或 Unix 系统python -m venv venv source venv/bin/active # 安装 Agent Development Kit代理开发工具包pip install google-adk# 安装 MCP server pip install mcp-flight-search# 安装 GenAI Python SDKpip install google-genaigoogle-sdkGoogle 推出的 Agent Development Kit用于构建智能代理Agent。google-genaiGoogle 提供的库用于与生成式 AI 模型如 Gemini进行交互。mcp-flight-search一个基于 MCP 协议的服务端利用 SerpAPI 通过 MCP 库实现航班搜索功能。设置环境变量请注意这里的区别在 ADK 中使用的是GOOGLE_API_KEY而不是GEMINI_API_KEY。export GOOGLE_API_KEYyour-google-api-keyexport SERP_API_KEYyour-serpapi-keyStep2:安装 MCP 服务端 mcp-flight-search为了让 Gemini 能与真实世界的 API 交互我们将使用一个符合 MCP 协议的服务端。在本文中我们选择使用 mcp-flight-search —— 这是一个基于 FastMCP 构建的轻量级 MCP 服务端它通过 SerpAPI 提供实时航班查询工具。你可以通过以下链接验证该 MCP 服务端包是否已正确安装 https://pypi.org/project/mcp-flight-search/# Install from PyPI ( Already Installed from Step 1)pip install mcp-flight-searchStep3:理解 ADK 作为 MCP 客户端的角色from google.adk.agents.llm_agent import LlmAgentfrom google.adk.runners import Runnerfrom google.adk.sessions import InMemorySessionServicefrom google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StdioServerParametersLlmAgent是 ADK 中的核心组件负责充当应用中的“思考大脑”。它利用大语言模型LLM的能力来进行推理、理解自然语言、做出决策、生成响应并与各类工具进行交互。Runner负责在 Agent 生命周期中协调各个组件之间的交互。它采用内存级实现来管理 artifact工件、session会话和 memory记忆服务从而为 Agent 的运行提供一个轻量级、独立的执行环境。InMemorySessionService是 ADK 中SessionService接口的一个实现它将所有会话数据包括对话历史、状态信息和元数据直接存储在应用的内存中。这意味着一旦应用停止或重启所有会话信息都将丢失。当用户与 AI Agent 进行交互时系统会创建一个 Session 对象用于跟踪整个对话过程。MCPToolSet是 ADK 中的一个类用于让我们的 AI Agent 能够连接外部的 MCP 服务端。这些服务端通常会暴露一些工具如 API 或服务供 Agent 调用以完成特定任务。通过使用 MCPToolSetAgent 可以实现对这些外部工具的自动发现、调用与管理从而实现无缝集成。StdioServerParameters是一个配置类用于指定 Agent 如何通过标准输入/输出流stdin/stdout与 MCP 服务端建立连接。当 MCP 服务端作为本地进程并通过控制台进行通信时这个类尤其有用。 MCPToolSet 与 StdioServerParameters 如何协同工作将 MCPToolSet 与 StdioServerParameters 结合使用时ADK Agent 可以实现以下功能建立连接通过StdioServerParameters定义启动 MCP 服务进程所需的命令及参数从而初始化连接。发现可用工具MCPToolSet连接 MCP 服务端并获取该服务端所暴露的所有可用工具列表。集成工具到 Agent将发现的工具适配成 ADK Agent 可识别和调用的格式实现运行过程中的无缝工具调用。管理连接生命周期MCPToolSet负责 MCP 服务连接的建立与断开确保资源得到妥善管理。Step4:链接MCP服务器StdioServerParameters用于定义 MCP 的配置使 MCPToolSet 能够以异步方式进行工具列表的获取与监听。# --- Step 1: 从 MCP 服务端获取工具 ---asyncdef get_tools_async(): 从航班搜索 MCP 服务端获取工具。 print(正在尝试连接 MCP 航班搜索服务端...) server_params StdioServerParameters( commandmcp-flight-search, args[--connection_type, stdio], env{SERP_API_KEY: os.getenv(SERP_API_KEY)}, ) tools, exit_stack await MCPToolset.from_server( connection_paramsserver_params ) print(MCP 工具集创建成功。) return tools, exit_stackStep5:使用ADK创建Agent如上所述我们使用的是LlmAgent它是应用中的“思考核心”部分。# --- 第二步定义 ADK Agent 的创建 ---asyncdef get_agent_async(): 创建一个配备了 MCP 工具的 ADK Agent。 tools, exit_stack await get_tools_async() print(f已从 MCP 服务端获取 {len(tools)} 个工具。) # 创建符合示例结构的 LlmAgent root_agent LlmAgent( modelos.getenv(GEMINI_MODEL, gemini-2.5-pro-preview-03-25), nameflight_search_assistant, instruction帮助用户根据提示使用可用工具搜索航班。如果未指定返程日期则将其设为空字符串表示单程。, toolstools, ) return root_agent, exit_stackStep6:将 Agent 创建、会话管理与运行协调整合到 Runner 中async def async_main(): # 创建服务 session_service InMemorySessionService() # 创建一个会话 session session_service.create_session( state{}, app_nameflight_search_app, user_iduser_flights ) # 定义用户输入的查询语句 query Find flights from Atlanta to Las Vegas 2025-05-05 print(f用户查询{query}) # 将输入格式化为 types.Content 类型 content types.Content(roleuser, parts[types.Part(textquery)]) # 获取 Agent 和资源释放堆栈 root_agent, exit_stack await get_agent_async() # 创建 Runner runner Runner( app_nameflight_search_app, agentroot_agent, session_servicesession_service, ) print(正在运行 Agent...) events_async runner.run_async( session_idsession.id, user_idsession.user_id, new_messagecontent ) # 处理事件流 final_content None asyncfor event in events_async: print(f接收到事件{event}) # 始终清理资源 print(正在关闭 MCP 服务端连接...) await exit_stack.aclose() print(资源清理完成。)Step7:运行你的Demo吧query Find flights from Atlanta to Las Vegas 2025-05-05Demo with Standard LoggingDemo with Debug logging将 MCP 集成到 ADK 中的关键注意事项1. MCP 与 ADK 的区别MCP 是一个开放协议用于标准化 AI 模型如何与外部工具和数据源进行交互。ADK 是一个基于 Python 的框架用于构建和部署智能代理AI Agents。MCPToolset连接 MCP 与 ADK使 ADK Agent 能够调用 MCP 服务端所暴露的工具功能。若需在 Python 中构建 MCP 服务端请使用 model-context-protocol 库。2. 工具类型与集成方式ADK 工具如 BaseTool、FunctionTool 等 Python 对象可直接在 ADK Agent 中使用。MCP 工具由 MCP 服务端提供的功能经过 MCPToolset 适配后可供 ADK Agent 调用。第三方工具如 LangChain 和 CrewAI 提供的工具可通过 LangchainTool 或 CrewaiTool 包装后集成到 ADK 中。3. 异步架构设计ADK 和 MCP 的 Python 实现均基于 Python 的 asyncio 框架构建。工具实现和服务端处理器应采用 async def 定义以确保非阻塞执行。4. MCP 中的有状态会话与常见的无状态 REST API 不同MCP 建立的是持久、有状态的客户端与服务端连接。有状态机制支持上下文保留但也要求开发者妥善管理会话状态。5. 部署注意事项MCP 的长连接特性在部署和扩展时可能带来挑战尤其是在服务远程部署、同时处理多个用户的情况下。基础设施层面需考虑负载均衡与会话亲和性session affinity以维持连接稳定性。6. 在 ADK 中管理 MCP 连接MCPToolset 在 ADK 内部负责 MCP 连接的生命周期管理。使用 exit_stack 可确保在 Agent 执行结束后正确关闭连接防止资源泄露。️ 常见问题排查Troubleshooting默认情况下ADK 库会要求配置 GCP 项目、Vertex AI 所在区域以及 VertexAI 的相关设置。请务必使用 GOOGLE_API_KEY而不是 GEMINI_API_KEY因为错误提示可能不会明确指出缺少的是哪个环境变量。✅ 解决方案确保将 API Key 设置为环境变量 GOOGLE_API_KEY。ValueError: Missing key inputs argument! To use the Google AI API,provide (api_key) arguments. To use the Google Cloud API, provide (vertexai, project location) arguments.经常出现 429 和 500google.genai.errors.ClientError: 429 RESOURCE_EXHAUSTED. {error: {code: 429, message: You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits., status: RESOURCE_EXHAUSTED, details: [{type: type.googleapis.com/google.rpc.QuotaFailure, violations: [{quotaMetric: generativelanguage.googleapis.com/generate_content_free_tier_requests, quotaId: GenerateRequestsPerDayPerProjectPerModel-FreeTier, quotaDimensions: {model: gemini-2.0-pro-exp, location: global}, quotaValue: 25}]}, {type: type.googleapis.com/google.rpc.Help, links: [{description: Learn more about Gemini API quotas, url: https://ai.google.dev/gemini-api/docs/rate-limits}]}, {type: type.googleapis.com/google.rpc.RetryInfo, retryDelay: 27s}]}}An error occurred during execution: 500 INTERNAL. {error: {code: 500, message: An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting, status: INTERNAL}}✅ 解决方案切换至 Gemini 2 Flash 模型。原因Gemini API 的“免费套餐free tier”是通过 API 服务提供的适用于测试用途其速率限制较低容易触发请求限制。使用 Gemini 2 Flash 可有效缓解该问题。 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 大模型的风口别犹豫这份免费资料就是你的 “起跑线”