带有MCP工具服务器的LangChain代理
此仓库包含两个示例,展示了如何构建使用MCP(模型-上下文协议)服务器上托管的外部工具的LangChain代理。
- 单服务器一个连接到本地一个数学工具服务器的基本代理示例。
- 多服务器一个更高级的示例是,智能体能够同时连接到多个独立的工具服务器(数学、Oracle数据库、天气和网页搜索)。
项目结构
.
├── MultiServer/
│ ├── Servers/
│ │ ├── DB.py
│ │ ├── Math.py
│ │ ├── Weather.py
│ │ └── Web.py
│ ├── Client.py
│ ├── config.py
│ └── requirements.txt
│
├── SingleServer/
│ ├── Server.py
│ ├── Client.py
│ ├── config.py
│ └── requirements.txt
│
└── README.md先决条件
- Python 3.10及以上版本
- 一个Azure OpenAI账户和API凭据。
- 一个OpenWeatherMap API密钥(用于MultiServer示例)。
- 一个正在运行的Oracle数据库实例(用于MultiServer示例)。
⚙️ 配置
在运行任一示例之前,您必须创建一个 .env 在相应的项目目录中创建文件(SingleServer 或者 MultiServer)。
从下面的模板中复制相关变量,并填写您的凭据。
# Azure OpenAI Credentials
AZURE_OPENAI_MODEL="gpt-4o-2"
AZURE_OPENAI_ENDPOINT="[https://your-endpoint.openai.azure.com/](https://your-endpoint.openai.azure.com/)"
AZURE_OPENAI_API_KEY="your_azure_openai_api_key"
# OpenWeatherMap API Key (for MultiServer only)
OPENWEATHERMAP_API_KEY="your_openweathermap_api_key"
# Oracle DB Credentials (for MultiServer only)
DB_USER="your_oracle_user"
DB_PASSWORD="your_oracle_password"
DB_HOST="localhost"
DB_PORT="1521"
DB_SERVICE_NAME="your_oracle_service_name"______________________________________________________________________
🚀 运行示例
1. 单服务器示例
这个示例运行了一个能够执行数学计算的简单代理。
A. 设置
cd SingleServer
pip install -r requirements.txtB. 跑步
打开一个终端并运行客户端。它会自动在后台启动数学服务器。
python Client.py2. 多服务器示例
这个示例运行了一个代理,该代理能够执行数学运算、查询数据库、获取天气信息以及搜索网络。
A. 设置
cd MultiServer
pip install -r requirements.txtB. 跑
你需要先分别在各自的终端中启动三个SSE服务器。客户端将自动启动 stdio 数学服务器。
- 1号航站楼(启动数据库服务器):
python Servers/DB.py- 2号航站楼(启动天气服务器):
python Servers/Weather.py- 3号航站楼(启动Web服务器):
python Servers/Web.py- 4号航站楼(启动客户端):
python Client.py现在,您可以在第四个终端中与代理进行交互。
