【AI大模型】 LangChain + 模型上下文协议(MCP):AI 智能体 Demo

📅 发布时间:2026/8/27 14:34:29
【AI大模型】 LangChain + 模型上下文协议(MCP):AI 智能体 Demo
LangChain 模型上下文协议MCPAI 智能体 DemoMCPModel Context Protocol是由 Anthropic 推出的开源协议旨在为大型语言模型LLM提供安全、可解释、可扩展的外部数据与工具集成方案。1. 背景与动机MCP 的意义何在在基于大语言模型构建应用时一个核心痛点是数据与工具的接入困难。模型虽然能力强大但通常处于“沙盒”状态无法直接访问外部环境。为此RAG检索增强生成、微调、插件等方案陆续诞生。而MCP的目标正是统一接口协议以便标准化集成上下文、工具、服务与数据源。✅ MCP 的愿景提供标准协议简化LLM与外部系统的通信安全可扩展支持权限管理、细粒度访问控制模块化生态建立社区驱动的“AI工具市场”可以将MCP看作AI世界的“软件版USB-C”。MCP 架构图官方资源MCP协议简介https://modelcontext.org/GitHub示例项目https://github.com/modelcontextprotocol/servers2. 如何用 LangChain 集成 MCP本节将通过实操演示介绍如何将LangChain与MCP工具集成打造一个拥有算术能力的AI智能体。注意示例来自https://github.com/langchain-ai/langchain-mcp-adapters。准备步骤概览步骤内容1创建并激活Python虚拟环境2安装必要依赖3编写MCP Server数学工具4编写客户端接入LangChain智能体5分析输出流程3. 环境准备与依赖安装创建虚拟环境python3-m venv MCP_Demosource MCP_Demo/bin/activate安装依赖:pip install langchain-mcp-adapters langgraph langchain-openaiexport OPENAI_API_KEYyour_api_key请将文本your_api_key替换为您的OpenAI API密钥。4. 编写 MCP Server数学计算工具创建math_server.py文件frommcp.server.fastmcpimportFastMCP mcpFastMCP(Math)mcp.tool()defadd(a:int,b:int)-int:returnabmcp.tool()defmultiply(a:int,b:int)-int:returna*bif__name____main__:mcp.run(transportstdio)运行服务器python3 math_server.py5. 编写客户端集成 LangGraph 智能体创建client.pyfrommcpimportClientSession,StdioServerParametersfrom mcp.client.stdioimportstdio_clientfrom langchain_mcp_adapters.toolsimportload_mcp_toolsfrom langgraph.prebuiltimportcreate_react_agentfrom langchain_openaiimportChatOpenAIimport asyncio modelChatOpenAI(modelgpt-4o)server_paramsStdioServerParameters(commandpython,args[math_server.py],# 替换为绝对路径)asyncdefrun_agent():asyncwithstdio_client(server_params)as(read,write):asyncwithClientSession(read,write)assession:awaitsession.initialize()toolsawaitload_mcp_tools(session)agentcreate_react_agent(model,tools)resultawaitagent.ainvoke({messages:whats (3 5) x 12?})returnresultif__name____main__:print(asyncio.run(run_agent()))运行客户端python3 client.py6. 消息交互流程解析完整消息客户端输出如下{messages:[# 1. 用户原始提问 HumanMessage( contentwhats (3 5) x 12?, id87a8b6b6-..., # 消息唯一标识 metadata{...} ),# 2. AI首次响应工具调用 AIMessage( content, tool_calls[ { name: add, # 第一个工具调用加法 args: {a:3, b:5}, # 参数 id: call_1eyRzR... # 工具调用ID }, { name: multiply, # 第二个工具调用乘法 args: {a:8, b:12}, id: call_q82CX... } ], token_usage{...}, # 本次调用的Token消耗 finish_reasontool_calls # 终止原因触发了工具调用 ),# 3. 工具执行结果返回 ToolMessage( content8, # add工具的执行结果 nameadd, # 对应工具名称 tool_call_idcall_1eyRzR... # 关联的工具调用ID ), ToolMessage( content96, # multiply工具的执行结果 namemultiply, tool_call_idcall_q82CX... ),# 4. AI最终响应 AIMessage( contentcontent‘The result of (3 5) × 12 is 96., # 最终自然语言答案 finish_reasonstop, # 正常终止 token_usage{ # 总Token消耗 input_tokens: 143, output_tokens: 22, total_tokens: 165 } ) ]}执行流程说明用户输入阶段HumanMessage记录原始问题“3加5乘12等于多少”包含元数据消息ID、响应元数据等AI推理阶段第一步调用add工具计算35第二步调用multiply工具计算8x12AIMessage显示分步思考过程finish_reason: tool_calls表示需要等待工具执行结果工具执行阶段add工具返回8对应35multiply工具返回96对应8x12ToolMessage包含工具执行结果每个结果都通过tool_call_id关联到对应的工具调用请求最终响应阶段新的AIMessage生成自然语言答案使用LaTeX格式展示数学表达式finish_reason: stop表示正常结束7. 元数据与性能指标分析关键字段说明字段说明token_usage记录各阶段的令牌消耗情况system_fingerprint模型版本指纹fp_eb9dce56a8tool_call_id工具调用的唯一关联标识finish_reason终止类型tool_calls/stopToken 使用情况示例阶段输入令牌输出令牌总计初始请求7751128最终响应14322165总计220732938. 小结MCP LangChain 的价值✅ 标准化接入无需为每种数据源编写专属适配器✅ 模块化复用工具作为可组合单元多智能体可复用✅ 提升智能体能力突破“模型只能聊天”的边界✅ 安全可控客户端-服务端通信可附带权限控制最后的最后感谢你们的阅读和喜欢作为一位在一线互联网行业奋斗多年的老兵我深知在这个瞬息万变的技术领域中持续学习和进步的重要性。为了帮助更多热爱技术、渴望成长的朋友我特别整理了一份涵盖大模型领域的宝贵资料集。这些资料不仅是我多年积累的心血结晶也是我在行业一线实战经验的总结。这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习相信它们一定能为你提供实质性的帮助。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】