LangChain代理与MCP集成

一个集成了MCP(模型上下文协议)工具的LangChain代理,提供数学运算和统计计算等增强功能。

  • by omii1703
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 omii1703/MCP-Server

使用说明

带有MCP(模型上下文协议)的LangChain代理

一个强大的LangChain代理,集成了MCP(模型上下文协议)工具,以增强功能,包括数学运算和统计计算。

🚀 特点

  • LangChain 代理使用LangChain框架构建,以处理智能对话
  • MCP集成与模型上下文协议工具无缝集成
  • 数学运算加法,减法,乘法,除法
  • 统计函数平均数、中位数、众数的计算
  • PostgreSQL 内存使用 PostgreSQL 数据库实现持久聊天记忆
  • **双子座大型语言模型(Gemini LLM)**由谷歌Gemini 2.0闪电模型提供支持
  • FastAPI工具服务器工具操作的RESTful API

🛠️ 架构设计

langchain-agent-mcp/
├── main.py                 # Main application entry point
├── custom_llm.py          # Custom LLM wrapper for Gemini
├── tool_server.py         # FastAPI server for MCP tools
├── memory/
│   └── postgres_memory.py # PostgreSQL-based chat memory
├── tools/
│   ├── mcp_tool.py        # MCP tool integration
│   ├── calculator.py      # Mathematical operations
│   └── statistics.py      # Statistical functions
└── requirements.txt       # Python dependencies

📋 前提条件

  • Python 3.8及以上版本
  • PostgreSQL 数据库
  • 根据您的指示,以下是原文内容的翻译:“Google AI API密钥(用于Gemini)”

🔧 安装

  1. 克隆仓库

    git clone <your-repo-url>
    cd langchain-agent-mcp
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 设置环境变量 创建一个 .env 根目录下的文件:

    GOOGLE_API_KEY=your_google_api_key_here
    POSTGRES_URL=postgresql://username:password@localhost:5432/langchain_mcp
    
  4. 设置 PostgreSQL 数据库

    CREATE DATABASE langchain_mcp;
    

🚀 使用方法

1. 启动工具服务器

python tool_server.py

这将启动FastAPI服务器 http://localhost:8080

2. 运行主应用程序

python main.py

3. 示例交互

该代理能够处理各种数学和统计查询:

  • 基础数学“使用MCP将10乘以4”
  • 顺序操作“现在将这个结果除以2”
  • 统计学“10、20、30、40的平均数是多少?”
  • 模式计算“3,3,4,5,5,5,6的众数是什么?”

🔌 可用工具

数学运算

  • add_tool两个数的相加
  • subtract_tool两个数的减法
  • multiply_tool两个数的乘法
  • divide_tool两个数的除法

统计函数

  • mean_tool计算算术平均值
  • median_tool计算中位数
  • mode_tool计算众数(出现频率最高的值)

🧠 记忆系统

该代理使用PostgreSQL来持久化聊天记录,从而能够:

  • 记住之前的对话
  • 在不同会话之间保持上下文
  • 存储聊天记录并管理会话

🛠️ API 接口

工具服务器提供以下端点:

  • POST /tools/add - 加法运算
  • POST /tools/subtract - 减法运算
  • POST /tools/multiply - 乘法运算
  • POST /tools/divide - 除法运算
  • POST /tools/mean - 平均值计算
  • POST /tools/median - 中位数计算
  • POST /tools/mode - 模式计算

🔧 配置

代理配置

  • 代理类型零样本ReAct描述
  • 最大迭代次数3
  • **提前终止(或提前停止)**生成方法
  • 详细模式已启用调试功能

内存配置

  • 数据库PostgreSQL
  • 会话管理可配置的会话ID
  • 持久化存储聊天记录保存

📝 示例输出

🔧 Query 1:
Response: I'll multiply 10 by 4 using the MCP tool.
[Tool execution details...]
The result is 40.

🔧 Query 2:
Response: I'll divide the previous result (40) by 2.
[Tool execution details...]
The result is 20.

🧠 Memory Chat History:
Human: Multiply 10 by 4 using MCP.
AI: The result is 40.
Human: Now divide that result by 2.
AI: The result is 20.

🤝 贡献(或“参与贡献”)

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推送至分支(git push origin feature/amazing-feature)
  5. 提交一个拉取请求(或:发起一个合并请求)

📄 许可证

此项目遵循MIT许可证授权——详情请参见LICENSE文件。

🙏 致谢