ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

【MCP集成实战】手把手打通LangChain + LangGraph + MCP生态!构建可交互AI Agent全流程

【MCP集成实战】手把手打通LangChain + LangGraph + MCP生态!构建可交互AI Agent全流程 核心概念解析1. MCP (Model Context Protocol)定义模型上下文协议是一个开放标准用于连接AI模型与外部数据源和工具。核心特性标准化接口统一的协议规范支持多种数据源工具抽象将外部功能抽象为工具供AI模型调用资源管理管理文件、数据库连接等资源流式支持支持流式数据处理协议组成{mcpServers:{server-name:{command:启动命令,env:{TRANSPORT:stdio,DSN:数据源连接串,READONLY:true}}}}2. LangChain定义一个用于构建LLM应用的框架提供组件化、可组合的AI应用开发工具。核心组件Chains链式调用多个组件Agents智能体能够使用工具Tools工具执行特定功能Memory记忆组件存储对话历史Callbacks回调机制监控执行过程3. LangGraph定义基于LangChain的状态图框架用于构建复杂的多智能体工作流。核心特性状态管理管理智能体间的状态传递条件路由根据条件决定下一步执行并行处理支持并行执行多个智能体可视化提供工作流图的可视化4. MCP Server定义实现MCP协议的服务器提供特定数据源或功能的访问接口。常见MCP Serverbytebase/dbhub数据库连接器MySQL、PostgreSQL等mcp-server-filesystem文件系统访问mcp-server-httpHTTP API访问mcp-server-weather天气数据服务5. MCP Client定义MCP协议的客户端实现用于连接和调用MCP Server。主要实现mcp-pythonPython官方客户端mcp-cli命令行客户端langchain-mcp-adaptersLangChain集成客户端6. langchain-mcp-adapters定义LangChain官方提供的MCP适配器将MCP工具转换为LangChain工具。核心功能工具转换MCP工具 → LangChain工具服务器管理管理多个MCP服务器连接资源处理处理MCP资源文件、数据等异步支持支持异步操作️ 技术架构关系整体架构图┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ LangGraph │ │ LangChain │ │ MCP Client ││(工作流编排)│◄──►│(智能体框架)│◄──►│(协议客户端)│└─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ MCP Adapters │ │ MCP Protocol │ │(工具转换层)│◄──►│(协议层)│ └─────────────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ │ MCP Servers │ │(数据源服务)│ └─────────────────┘数据流向LangGraph编排工作流调用LangChain智能体LangChain智能体通过MCP Adapters获取工具MCP Adapters将MCP工具转换为LangChain工具MCP Client通过协议与MCP Server通信MCP Server访问实际的数据源数据库、API、文件等 项目结构概览核心目录结构intelligent_modeling2/├── agents/# 智能体定义│ ├── base_agent.py # 基础智能体类│ ├── requirement_analyst.py # 需求分析智能体│ ├── data_modeler.py # 数据建模智能体│ └── ...├── utils/ # 工具和配置│ ├── env_config.py # 环境变量配置管理│ ├── mcp_config_manager.py # MCP配置管理器│ ├── cache_manager.py # 缓存管理器│ ├── logger.py # 统一日志系统│ ├── graph.py # LangGraph工作流定义│ ├── langchain_mcp_integration.py # LangChain MCP集成│ ├── mcp_database_connector.py # MCP数据库连接器│ └── ...├── examples/ # 示例和演示│ ├── data_warehouse_modeling.py # 数仓建模主程序│ ├── simple_data_modeling.py # 简化建模流程│ ├── mcp_bytebase_integration.py # MCP集成示例│ ├── research_assistant.py # 研究助手│ └── ...├── tests/ # 测试文件│ ├── test_mcp_integration.py # MCP集成测试│ └── ...├── docs/ # 文档│ ├── MCP_Integration_Guide.md # MCP集成指南│ ├── Simple_Modeling_Guide.md # 简化建模指南│ └── ...├── cache/ # 缓存目录├── outputs/ # 输出目录├── mcp_config.json # MCP服务器配置├── env.example # 环境变量示例└── main.py # 主程序入口配置文件说明1. mcp_config.json - MCP服务器配置{mcpServers:{dbhub-mysql-demo:{command:npx bytebase/dbhub,env:{TRANSPORT:stdio,DSN:mysql://user:passhost:port/db,READONLY:true}}}}2. env.example - 环境变量配置# LLM模型配置LLM_TEMPERATURE0.1LLM_MAX_TOKENS4000LLM_TIMEOUT300LLM_RETRY_COUNT5LLM_RETRY_DELAY5# 工作流配置WORKFLOW_RECURSION_LIMIT50WORKFLOW_MAX_LOOPS_PER_STAGE3# MCP配置MCP_INIT_TIMEOUT5.0MCP_READ_TIMEOUT10.0MCP_MYSQL_CONNECT_TIMEOUT30MCP_MYSQL_READ_TIMEOUT30MCP_MYSQL_WRITE_TIMEOUT30# API密钥OPENAI_API_KEYyour_openai_api_key_hereSILICONFLOW_API_KEYyour_siliconflow_api_key_hereSILICONFLOW_API_BASEhttps://api.siliconflow.cn/v1 MCP集成方式方式一直接使用MCP Python客户端优点简单直接无需额外框架性能好直接协议通信灵活性高完全控制通信过程缺点需要手动管理工具注册、错误处理等集成复杂需要自己处理与智能体的集成实现示例frommcpimportMCPClientimport asyncioclassDirectMCPClient:def__init__(self):self.clients{}asyncdefconnect_database(self,name:str,dsn:str):连接数据库clientMCPClient(commandnpx bytebase/dbhub,env{TRANSPORT:stdio,DSN:dsn,READONLY:true})self.clients[name]clientreturnclientasyncdefget_schema(self,db_name:str,table_name:strNone):获取schema信息clientself.clients.get(db_name)ifnotclient:returnNoneiftable_name:returnawaitclient.get_table_schema(table_name)else:returnawaitclient.list_tables()asyncdefexecute_query(self,db_name:str,query:str):执行查询clientself.clients.get(db_name)ifnotclient:returnNonereturnawaitclient.execute_sql(query)# 使用示例async def example_usage(): client DirectMCPClient()# 连接MySQL await client.connect_database( mysql-demo, mysql://user:passhost:port/db )# 获取schema schema await client.get_schema(mysql-demo) print(fTables: {schema})# 执行查询 result await client.execute_query( mysql-demo, SELECT COUNT(*) FROM orders ) print(fResult: {result})方式二使用langchain-mcp-adapters优点无缝集成与LangChain生态系统完美集成工具自动转换MCP工具自动转换为LangChain工具智能体友好智能体可以直接使用工具标准化遵循LangChain工具标准缺点依赖较重需要安装LangChain相关包学习成本需要了解LangChain概念实现示例fromlangchain_mcpimportMCPToolkitfrom langchain_mcp.serverimportMCPServerfrom langchain_core.toolsimportBaseToolimport asyncioclassLangChainMCPManager:def__init__(self):self.servers{}self.toolkits{}self.tools[]asyncdefregister_database(self,name:str,dsn:str):注册数据库MCP服务器serverMCPServer(namename,commandnpx bytebase/dbhub,env{TRANSPORT:stdio,DSN:dsn,READONLY:true})self.servers[name]server toolkitMCPToolkit(server)self.toolkits[name]toolkit# 获取工具 tools await toolkit.get_tools() self.tools.extend(tools)returntoolsdefget_tools_for_agent(self):获取供智能体使用的工具returnself.toolsasyncdefexecute_tool(self,tool_name:str,**kwargs):执行工具fortoolinself.tools:iftool.nametool_name:returnawaittool.ainvoke(kwargs)returnNone# 在LangGraph中使用from langchain_core.tools import toolfrom langgraph import StateGraph, END# 创建MCP管理器mcp_manager LangChainMCPManager()# 注册数据库await mcp_manager.register_database( mysql-demo, mysql://user:passhost:port/db)# 获取工具tools mcp_manager.get_tools_for_agent()# 在智能体中使用toolasync def query_database(query: str): 查询数据库 return await mcp_manager.execute_tool(query, sqlquery)# 创建工作流workflow StateGraph(AgentState)workflow.add_node(query_agent, query_database)workflow.add_edge(query_agent, END) 相关资源官方文档MCP协议规范LangChain文档LangGraph文档langchain-mcp-adapters常用MCP Serverbytebase/dbhub - 数据库连接器mcp-server-filesystem - 文件系统mcp-server-http - HTTP API示例项目MCP Python客户端示例LangChain MCP集成示例 总结MCP协议为AI应用提供了强大的数据源集成能力通过三种不同的集成方式可以满足不同场景的需求直接MCP客户端适合简单、直接的场景langchain-mcp-adapters适合LangChain生态系统自定义适配器适合需要深度定制的场景选择合适的集成方式结合最佳实践可以构建出强大、可靠的AI应用系统。最后为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表