LangChain AI Agent开发终极指南:MCP接入全流程详解(2025最新版)
本技术分享系列基于笔者在LangChain和LangGraph平台的实战开发经验精心整理,旨在为开发者提供系统化的学习路径,快速掌握基于这两个框架的AI智能体开发核心技术栈。
本技术分享系列基于笔者在LangChain和LangGraph平台的实战开发经验精心整理,旨在为开发者提供系统化的学习路径,快速掌握基于这两个框架的AI智能体开发核心技术栈。
一、MCP知识点回顾
MCP(全称是Model Context Protocol,模型上下文协议), 是由Claude母公司Anthropic于2024年11月正式提出。
MCP的核心作用是统一了Agent开发过程中大模型调用外部工具的技术实现流程,从而大幅提高了Agent开发效率。在MCP诞生前,大模型通过Function Calling技术与工具函数对接,不同的工具函数有不同的调用方式,要连接这些外部工具开发Agent就必须“每一把锁单独配一把钥匙”,开发工作非常繁琐。
而MCP的诞生,则统一了这些外部工具的调用流程,使得无论什么样的工具都可以借助MCP技术按照统一的流程快速接入到大模型中从而大幅加快Agent开发效率。这就好比现在很多设备都可以使用type-c和电脑连接。
从技术实现角度,我们可以将MCP看成是Function Calling的一种封装,通过server-client
架构和一整套开发工具来规范化Function Calling
开发流程。程序员可以根据MCP协议开发包含不同工具功能的MCP服务端,并将这些服务端分享出来方便大家接入,减少了重复的开发工作,大大加速了Agent开发效率。
此前笔者曾分享了MCP从入门到精通的多篇文章,在学习本篇分享前大家需简单了解MCP完整技术体系,详细内容可见笔者合集:从0到1学习MCP
二、MCP+LangChain基础调用流程
本期分享我们使用LangChain编写代码调用PlayWright MCP实现浏览器自动化。LangChain调用MCP的原理是将MCP的工具函数直接转换为LangChain的工具函数,然后通过预定义的MCP_Client实现与外部MCP的读写操作。简而言之,我们只需要使用LangChain编写MCP Client 客户端代码并接入外部MCP Server即可。
2.1 环境搭建
\1. 首先在我们之前创建的anaconda
虚拟环境langchainenv
中执行如下命令安装LangChain MCP的相关依赖:
pip install langchain-mcp-adapters
\2. 其次要调用PlayWright官方的浏览器工具需要本地安装node.js,详细的安装流程这里不再赘述,大家可参考我的文章不写一行代码! VsCode+Cline+高德地图MCP Server 帮你搞定和女友的出行规划(附原理解析)。
\3. 最后编写配置文件,在项目目录下新建servers_config.json
文件,在mcp汇总网站(https://mcp.so/server/playwright-mcp/microsoft?tab=tools)中找到PlayWright的配置并写入servers_config.json
文件中,同时添加MCP通信方式的配置项transport
。servers_config.json
完整内容如下, 基本原理是通过npx
下载PlayWright MCP Server到本地并通过stdio
方式与LangChain搭建的MCP Client进行通信。
{ "mcpServers": { "playwright": { "command": "npx", "args": [ "@playwright/mcp@latest" ], "transport": "stdio" } }}
2.2 使用LangChain实现MCP Client
- 引入相关依赖, LangChain通过
MultiServerMCPClient
构建MCP Server连接工具。
import asyncioimport jsonimport logging
from dotenv import load_dotenvfrom langchain import hubfrom langchain.agents import AgentExecutor, create_openai_tools_agentfrom langchain.chat_models import init_chat_modelfrom langchain_mcp_adapters.client import MultiServerMCPClient
\2. 创建环境配置类,保存DeepSeek大模型的api_key
等相关配置,通过load_servers
函数加载mcp服务器配置文件servers_config.json
# ────────────────────────────# 环境配置# ────────────────────────────
class Configuration: def __init__(self) -> None: load_dotenv() self.api_key='你注册的DeepSeek api key' self.model="deepseek-chat"
@staticmethod def load_servers(file_path = "servers_config.json"): with open(file_path, "r", encoding="utf-8") as f: return json.load(f).get("mcpServers", {})
\3. 编写MCP接入智能体, 代码如下:
async def run_chat_loop(): """启动 MCP-Agent 聊天循环""" cfg = Configuration() servers_cfg = Configuration.load_servers()
# 1️.连接多台 MCP 服务器 mcp_client = MultiServerMCPClient(servers_cfg) tools = await mcp_client.get_tools() # LangChain Tool 对象列表 logging.info(f"✅ 已加载 {len(tools)} 个 MCP 工具: {[t.name for t in tools]}")
# 2️.初始化大模型(DeepSeek / OpenAI / 任意兼容 OpenAI 协议的模型) llm = init_chat_model( model=cfg.model, model_provider="deepseek", api_key=cfg.api_key )
# 3️. 构造 LangChain Agent(用通用 prompt) prompt = hub.pull("hwchase17/openai-tools-agent") agent = create_openai_tools_agent(llm, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 4️. CLI 聊天 print("\n🤖 MCP Agent 已启动,输入 'quit' 退出") while True: user_input = input("\n你: ").strip() if user_input.lower() == "quit": break try: result = await agent_executor.ainvoke({"input": user_input}) print(f"\nAI: {result['output']}") except Exception as exc: print(f"\n⚠️ 出错: {exc}")
以上代码中的关键部分是LangChain连接MCP Server,首先通过mcp_client = MultiServerMCPClient(servers_cfg)
创建MCP Server连接对象,其次通过mcp_client.get_tools()
将连接后的MCP Server中的方法全部转换为LangChain可用的工具函数。我们查看mcp_client.get_tools()
的源码,可以看到内部调用了load_mcp_tools()
函数一键将连接MCP Server的所有工具函数转化为标准的LangChain工具函数,所以可以直接在LangChain环境中进行使用:
转换之后代码具备LangChain智能体构建的三要素模型、提示词和工具函数,可以使用s上篇文章讲过的create_openai_tools_agent
和AgentExecutor
构建并执行智能体。
\4. 编写主函数执行智能体,本期分享使用与上篇相同的案例,要求智能体爬取Copilot官方介绍页并总结相关内容, 提示词为"访问这个网站 https://www.microsoft.com/en-us/microsoft-365/blog/2025/01/16/copilot-is-now-included-in-microsoft-365-personal-and-family/?culture=zh-cn&country=cn 并帮我总结一下这个网站的内容",执行结果如下,可以看到PlayWright MCP自动打开浏览器并导航到相关页面进行爬取分析:
完整代码如下:
"""多服务器 MCP + LangChain Agent 示例---------------------------------1. 读取 .env 中的 LLM_API_KEY / BASE_URL / MODEL2. 读取 servers_config.json 中的 MCP 服务器信息3. 启动 MCP 服务器(支持多个)4. 将所有工具注入 LangChain Agent,由大模型自动选择并调用"""
import asyncioimport jsonimport logging
from dotenv import load_dotenvfrom langchain import hubfrom langchain.agents import AgentExecutor, create_openai_tools_agentfrom langchain.chat_models import init_chat_modelfrom langchain_mcp_adapters.client import MultiServerMCPClient
# ────────────────────────────# 环境配置# ────────────────────────────
class Configuration: def __init__(self) -> None: load_dotenv() self.api_key='你注册的DeepSeek API KEY' self.model="deepseek-chat"
@staticmethod def load_servers(file_path = "servers_config.json"): with open(file_path, "r", encoding="utf-8") as f: return json.load(f).get("mcpServers", {})
# ────────────────────────────# 主逻辑# ────────────────────────────async def run_chat_loop(): """启动 MCP-Agent 聊天循环""" cfg = Configuration() servers_cfg = Configuration.load_servers()
# 1️⃣ 连接多台 MCP 服务器 mcp_client = MultiServerMCPClient(servers_cfg)
tools = await mcp_client.get_tools() # LangChain Tool 对象列表
logging.info(f"✅ 已加载 {len(tools)} 个 MCP 工具: {[t.name for t in tools]}")
# 2️⃣ 初始化大模型(DeepSeek / OpenAI / 任意兼容 OpenAI 协议的模型) llm = init_chat_model( model=cfg.model, model_provider="deepseek", api_key=cfg.api_key )
# 3️⃣ 构造 LangChain Agent(用通用 prompt) prompt = hub.pull("hwchase17/openai-tools-agent") agent = create_openai_tools_agent(llm, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 4️⃣ CLI 聊天 print("\n🤖 MCP Agent 已启动,输入 'quit' 退出") while True: user_input = input("\n你: ").strip() if user_input.lower() == "quit": break try: result = await agent_executor.ainvoke({"input": user_input}) print(f"\nAI: {result['output']}") except Exception as exc: print(f"\n⚠️ 出错: {exc}")
# ────────────────────────────# 入口# ────────────────────────────if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") asyncio.run(run_chat_loop())
三、总结
本期内容分享了LangChain接入MCP服务端的实现流程,基本原理是LangChain编写MCP客户端并将MCP服务端函数通过load_mcp_tools()
转化为LangChain可识别的函数并构建智能体,本期内容通过PlayWright自动爬虫项目演示了LangChain+MCP的基本流程。
随着大模型的持续火爆,各行各业纷纷开始探索和搭建属于自己的私有化大模型,这无疑将催生大量对大模型人才的需求,也带来了前所未有的就业机遇。**正如雷军所说:“站在风口,猪都能飞起来。”**如今,大模型正成为科技领域的核心风口,是一个极具潜力的发展机会。能否抓住这个风口,将决定你是否能在未来竞争中占据先机。
那么,我们该如何学习大模型呢?
人工智能技术的迅猛发展,大模型已经成为推动行业变革的核心力量。然而,面对复杂的模型结构、庞大的参数量以及多样的应用场景,许多学习者常常感到无从下手。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。
为此,我们整理了一份全面的大模型学习路线,帮助大家快速梳理知识,形成自己的体系。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
大型预训练模型(如GPT-3、BERT、XLNet等)已经成为当今科技领域的一大热点。这些模型凭借其强大的语言理解和生成能力,正在改变我们对人工智能的认识。为了跟上这一趋势,越来越多的人开始学习大模型,希望能在这一领域找到属于自己的机会。
L1级别:启航篇 | 极速破界AI新时代
- AI大模型的前世今生:了解AI大模型的发展历程。
- 如何让大模型2C能力分析:探讨大模型在消费者市场的应用。
- 行业案例综合分析:分析不同行业的实际应用案例。
- 大模型核心原理:深入理解大模型的核心技术和工作原理。
L2阶段:攻坚篇 | RAG开发实战工坊
- RAG架构标准全流程:掌握RAG架构的开发流程。
- RAG商业落地案例分析:研究RAG技术在商业领域的成功案例。
- RAG商业模式规划:制定RAG技术的商业化和市场策略。
- 多模式RAG实践:进行多种模式的RAG开发和测试。
L3阶段:跃迁篇 | Agent智能体架构设计
- Agent核心功能设计:设计和实现Agent的核心功能。
- 从单智能体到多智能体协作:探讨多个智能体之间的协同工作。
- 智能体交互任务拆解:分解和设计智能体的交互任务。
- 10+Agent实践:进行超过十个Agent的实际项目练习。
L4阶段:精进篇 | 模型微调与私有化部署
- 打造您的专属服务模型:定制和优化自己的服务模型。
- 模型本地微调与私有化:在本地环境中调整和私有化模型。
- 大规模工业级项目实践:参与大型工业项目的实践。
- 模型部署与评估:部署和评估模型的性能和效果。
专题集:特训篇
- 全新升级模块:学习最新的技术和模块更新。
- 前沿行业热点:关注和研究当前行业的热点问题。
- AIGC与MPC跨领域应用:探索AIGC和MPC在不同领域的应用。
掌握以上五个板块的内容,您将能够系统地掌握AI大模型的知识体系,市场上大多数岗位都是可以胜任的。然而,要想达到更高的水平,还需要在算法和实战方面进行深入研究和探索。
- AI大模型学习路线图
- 100套AI大模型商业化落地方案
- 100集大模型视频教程
- 200本大模型PDF书籍
- LLM面试题合集
- AI产品经理资源合集
以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
二、640套AI大模型报告合集
这套包含640份报告的合集,全面覆盖了AI大模型的理论探索、技术落地与行业实践等多个维度。无论您是从事科研工作的学者、专注于技术开发的工程师,还是对AI大模型充满兴趣的爱好者,这套报告都将为您带来丰富的知识储备与深刻的行业洞察,助力您更深入地理解和应用大模型技术。
三、大模型经典PDF籍
随着人工智能技术的迅猛发展,AI大模型已成为当前科技领域的核心热点。像GPT-3、BERT、XLNet等大型预训练模型,凭借其卓越的语言理解与生成能力,正在重新定义我们对人工智能的认知。为了帮助大家更高效地学习和掌握这些技术,以下这些PDF资料将是极具价值的学习资源。
四、AI大模型商业化落地方案
AI大模型商业化落地方案聚焦于如何将先进的大模型技术转化为实际的商业价值。通过结合行业场景与市场需求,该方案为企业提供了从技术落地到盈利模式的完整路径,助力实现智能化升级与创新突破。
希望以上内容能对大家学习大模型有所帮助。如有需要,请微信扫描下方CSDN官方认证二维码免费领取相关资源【保证100%免费
】。
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
祝大家学习顺利,抓住机遇,共创美好未来!
更多推荐
所有评论(0)