LangGraph MCP 代理
一个使用LangGraph构建的简单代理,该代理集成了模型上下文协议(MCP)工具。此代理展示了如何在LangGraph工作流中使用MCP工具来构建智能应用程序。
特点/特性
- LangGraph 集成使用LangGraph构建对话式AI工作流
- MCP工具支持与MCP服务器工具无缝集成
- 异步操作完全异步实现以提升性能
- 互动聊天提供程序化和交互式接口
- 工具绑定自动将MCP工具转换为兼容LangChain的工具
可用的MCP工具
该代理附带了以下来自……的MCP工具 mcp_server.py:
- 桌面() - 列出用户桌面目录中的文件
- add(a, b) 翻译为中文是“将a和b相加” - 对两个数进行数学加法运算
- 获取问候语(name) - 返回个性化的问候语
- 获取_fastmcp文档() - 获取FastMCP文档
设置
先决条件
- Python 3.8及以上版本
- Groq API密钥
安装
- 安装依赖项:
python setup.py或者手动地:
pip install -r requirements.txt- 设置Groq API密钥:
# PowerShell
$env:GROQ_API_KEY='your-api-key-here'
# Command Prompt
set GROQ_API_KEY=your-api-key-here使用方法
1. 互动聊天
运行交互式聊天界面:
python interactive_agent.py选择选项1进行互动聊天。示例对话:
👤 You: What files are on my desktop?
🤖 Agent: I found several files on your desktop: Documents folder, image.png, notes.txt...
👤 You: Add 15 and 27
🤖 Agent: The sum of 15 and 27 is 42.
👤 You: Give me a greeting for Alice
🤖 Agent: Hello, Alice!2. 演示示例
运行预定义示例:
python interactive_agent.py选择选项2以查看演示示例。
3. 程序化使用
import asyncio
from langgraph_agent import LangGraphMCPAgent
async def example():
agent = LangGraphMCPAgent()
await agent.initialize()
response = await agent.run("What files are on my desktop?")
print(response)
await agent.close()
asyncio.run(example())建筑学
组件
- LangGraphMCPAgent(可译为“语言图多条件规划智能体”或根据具体上下文调整为更贴切的表述,如“基于语言图的多条件规划智能代理”)主要代理类,用于协调工作流
- MCPTool(注:MCPTool可能是一个特定软件或工具的名称,根据上下文,这里直接保留原英文形式,不进行具体翻译,若需具体翻译需提供更多背景信息)将MCP工具转换为LangChain工具的包装类
- 代理状态定义对话状态的 TypedDict
- 图形工作流带有代理和工具节点的LangGraph状态机
工作流程
START → Agent Node → Should Continue? → Tool Node → Agent Node → END
↓
END- 代理节点处理用户输入并决定是否使用工具
- 工具节点当代理请求时执行MCP工具
- 条件逻辑决定是继续使用工具还是结束
文件结构
mcp/
├── langgraph_agent.py # Main agent implementation
├── interactive_agent.py # Interactive chat interface
├── mcp_client.py # Original MCP client
├── mcp_server.py # MCP server with tools
├── setup.py # Setup script
├── requirements.txt # Dependencies
└── README.md # This file配置
环境变量
GROQ_API_KEY大语言模型(使用Groq的Llama3模型)功能所需的
定制化
您可以通过以下方式自定义代理:
- 添加新的MCP工具 在
mcp_server.py - 修改大型语言模型(LLM) 在
LangGraphMCPAgent.__init__() - 扩展工作流程 在
_create_graph()方法 - 定制工具转换 在……里
MCPTool班级(或“类别”,根据上下文可灵活翻译)
错误处理
该代理包含全面的错误处理机制,针对:
- 缺少API密钥
- MCP服务器连接问题
- 工具执行错误
- Groq API故障
故障排除
常见问题
- “GROQ_API_KEY”环境变量是必需的
- 解决方案:按照设置中的示例设置您的Groq API密钥
- MCP服务器连接错误
- 解决方案:确保 mcp_server.py 在同一目录下
- 工具执行失败
- 解决方案:检查所有必需的依赖项是否已安装
调试模式
通过设置环境变量来启用调试日志记录:
$env:LANGGRAPH_DEBUG='true'贡献
欢迎通过以下方式参与贡献:
- 添加新的MCP工具
- 改进错误处理
- 提升对话流畅度
- 为新代理添加功能
许可证
此项目作为教育示例提供。
