AI智能体演示:结合LangChain与模型上下文协议(MCP)
MCP(Model 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/servers
2. 如何用 LangChain 集成 MCP?
本节将通过实操演示,介绍如何将
LangChain与MCP工具集成,打造一个拥有算术能力的AI智能体。
注意:示例来自https://github.com/langchain-ai/langchain-mcp-adapters。
准备步骤概览:
| 步骤 | 内容 |
|---|---|
|
1 |
创建并激活 |
|
2 |
安装必要依赖 |
|
3 |
编写 |
|
4 |
编写客户端接入 |
|
5 |
分析输出流程 |
3. 环境准备与依赖安装
创建虚拟环境
python3 -m venv MCP_Demosource MCP_Demo/bin/activate
安装依赖:
pip install langchain-mcp-adapters langgraph langchain-openaiexport OPENAI_API_KEY=<your_api_key>
请将文本<your_api_key> 替换为您的OpenAI API密钥。
4. 编写 MCP Server(数学计算工具)
创建 math_server.py 文件:
from mcp.server.fastmcp import FastMCPmcp FastMCP("Math")@mcp.tool()def add(a: int, b: int) -> int:return a + b@mcp.tool()def multiply(a: int, b: int) -> int:return a * bif __name__ == "__main__":mcp.run(transport="stdio")
运行服务器:
python3 math_server.py
5. 编写客户端(集成 LangGraph 智能体)
创建 client.py:
from mcp import ClientSession, StdioServerParametersfrom mcp.client.stdio import stdio_clientfrom langchain_mcp_adapters.tools import load_mcp_toolsfrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAIimport asynciomodel = ChatOpenAI(model="gpt-4o")server_params = StdioServerParameters(command="python",args=["math_server.py"], # 替换为绝对路径)async def run_agent():async with stdio_client(server_params) as (read, write):async with ClientSession(read, write) as session:await session.initialize()tools = await load_mcp_tools(session)agent = create_react_agent(model, tools)result = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})return resultif __name__ == "__main__":print(asyncio.run(run_agent()))
运行客户端:
python3 client.py
6. 消息交互流程解析
完整消息
客户端输出如下:
{'messages': [# 1. 用户原始提问HumanMessage(content="what's (3 + 5) x 12?",id='87a8b6b6-...', # 消息唯一标识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_reason='tool_calls' # 终止原因:触发了工具调用),# 3. 工具执行结果返回ToolMessage(content='8', # add工具的执行结果name='add', # 对应工具名称tool_call_id='call_1eyRzR...' # 关联的工具调用ID),ToolMessage(content='96', # multiply工具的执行结果name='multiply',tool_call_id='call_q82CX...'),# 4. AI最终响应AIMessage(content='content=‘The result of (3 + 5) × 12 is 96.', # 最终自然语言答案finish_reason='stop', # 正常终止token_usage={ # 总Token消耗'input_tokens': 143,'output_tokens': 22,'total_tokens': 165})]}
执行流程说明
-
用户输入阶段
-
HumanMessage记录原始问题:"3加5乘12等于多少?" -
包含元数据:消息
ID、响应元数据等
-
-
AI推理阶段
-
第一步调用
add工具计算3+5 -
第二步调用
multiply工具计算8x12
-
AIMessage显示分步思考过程: -
finish_reason: tool_calls表示需要等待工具执行结果
-
-
工具执行阶段
-
add工具返回8(对应3+5) -
multiply工具返回96(对应8x12)
-
ToolMessage包含工具执行结果: -
每个结果都通过
tool_call_id关联到对应的工具调用请求
-
-
最终响应阶段
-
新的
AIMessage生成自然语言答案 -
使用LaTeX格式展示数学表达式:
-
finish_reason: stop表示正常结束
-
7. 元数据与性能指标分析
关键字段说明
| 字段 | 说明 |
|---|---|
token_usage |
记录各阶段的令牌消耗情况 |
system_fingerprint |
模型版本指纹(fp_eb9dce56a8) |
tool_call_id |
工具调用的唯一关联标识 |
finish_reason |
终止类型(tool_calls/stop) |
Token 使用情况示例:
| 阶段 | 输入
令牌 | 输出令牌 | 总计 |
|---|---|---|---|
|
初始请求 |
77 |
51 |
128 |
|
最终响应 |
143 |
22 |
165 |
| 总计 |
220 |
73 |
293 |
8. 小结:MCP + LangChain 的价值
-
✅ 标准化接入:无需为每种数据源编写专属适配器
-
✅ 模块化复用:工具作为可组合单元,多智能体可复用
-
✅ 提升智能体能力:突破“模型只能聊天”的边界
-
✅ 安全可控:客户端-服务端通信可附带权限控制

如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

更多推荐
所有评论(0)