使用说明
带MCP服务器的LangChain代理
LangChain代理使用MCP适配器与模型上下文协议(MCP)服务器进行工具集成。
概述
该项目演示了如何构建一个使用模型上下文协议(MCP)与各种服务交互的LangChain代理:
- 塔维利搜索:网络搜索和新闻搜索功能
- 天气:模拟天气信息检索
- 数学:数学表达式评估
代理使用LangGraph的ReAct代理模式根据用户查询动态选择和使用这些工具。
特性
- 优雅地关闭:所有MCP服务器都实现了正确的信号处理,以实现干净的端接
- 子流程管理:主代理跟踪和管理所有MCP服务器子流程
- 错误处理:在整个应用程序中进行稳健的错误处理
- 模块化设计:易于通过额外的MCP服务器进行扩展
优雅的关机机制
该项目实施了一个全面的优雅关机系统:
- 信号处理:捕获信号情报和信号终端信号以启动正常关机
- 过程跟踪:主代理维护所有子进程的注册表
- 清理过程:确保所有子流程在退出时正确终止
- 关机标志:每个MCP服务器都有一个关闭标志,以防止在启动关闭时进行新的操作
- 异步合作:使用asyncio允许正在进行的操作在可能的情况下完成
安装
# Clone the repository
git clone https://github.com/yourusername/langchain-mcp.git
cd langchain-mcp
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .
配置
创建一个 .env 项目根目录中的文件,包含以下变量:
OPENAI_API_KEY=your_openai_api_key
TAVILY_API_KEY=your_tavily_api_key
用法
从命令行运行代理:
python src/agent.py
代理将提示您的查询,然后使用适当的工具进行处理。
发展
要添加新的MCP服务器,请执行以下操作:
- 在中创建新文件
src/mcpserver/ - 使用适当的信号处理来实现服务器
- 更新
src/mcpserver/__init__.py公开新服务器 - 将服务器配置添加到
src/agent.py
许可证
麻省理工学院