LangChain代理工具集成

一个使用MCP适配器与模型上下文协议(MCP)服务器集成的LangChain代理,提供网络搜索、天气信息检索和数学表达式评估等功能。

  • by esakrissa
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 esakrissa/langchain-mcp

使用说明

带MCP服务器的LangChain代理

LangChain代理使用MCP适配器与模型上下文协议(MCP)服务器进行工具集成。

概述

该项目演示了如何构建一个使用模型上下文协议(MCP)与各种服务交互的LangChain代理:

  • 塔维利搜索:网络搜索和新闻搜索功能
  • 天气:模拟天气信息检索
  • 数学:数学表达式评估

代理使用LangGraph的ReAct代理模式根据用户查询动态选择和使用这些工具。

特性

  • 优雅地关闭:所有MCP服务器都实现了正确的信号处理,以实现干净的端接
  • 子流程管理:主代理跟踪和管理所有MCP服务器子流程
  • 错误处理:在整个应用程序中进行稳健的错误处理
  • 模块化设计:易于通过额外的MCP服务器进行扩展

优雅的关机机制

该项目实施了一个全面的优雅关机系统:

  1. 信号处理:捕获信号情报和信号终端信号以启动正常关机
  2. 过程跟踪:主代理维护所有子进程的注册表
  3. 清理过程:确保所有子流程在退出时正确终止
  4. 关机标志:每个MCP服务器都有一个关闭标志,以防止在启动关闭时进行新的操作
  5. 异步合作:使用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服务器,请执行以下操作:

  1. 在中创建新文件 src/mcpserver/
  2. 使用适当的信号处理来实现服务器
  3. 更新 src/mcpserver/__init__.py 公开新服务器
  4. 将服务器配置添加到 src/agent.py

许可证

麻省理工学院