交互式聊天代理

一个基于LangChain、Groq LLM和Model Context Protocol (MCP)服务器的交互式聊天应用,具备会话记忆功能,可与多个MCP服务器交互实现网页浏览、搜索等功能。

  • by RishithaAppikonda
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 RishithaAppikonda/Interactive-MCP-Chat-Agent

使用说明

MyDemo-交互式MCP聊天代理

由LangChain、Groq LLM和模型上下文协议(MCP)服务器提供支持的交互式聊天应用程序。该项目演示了如何构建一个具有对话记忆的AI代理,该代理可以与多个MCP服务器进行交互,以实现网页浏览、搜索和其他功能。

特性

  • 🤖 交互式聊天界面:带对话记忆的命令行聊天界面
  • 🧠 对话记忆:内置存储系统,可在对话中保持上下文
  • 🌐 MCP服务器集成:连接到多个MCP服务器以扩展功能:
    • 剧作家:浏览器自动化和网络交互
    • Airbnb:搜索和浏览Airbnb房源
    • DuckDuckGo搜索:Web搜索功能
  • 🔄 异步支持:完全异步实现以获得更好的性能
  • ⚙️ 可配置的:通过JSON文件轻松配置

先决条件

  • Python 3.11或更高版本
  • Node.js和npm(用于MCP服务器)
  • Groq API密钥(在这里买一个)

安装

1.克隆存储库

git clone <your-repo-url>
cd mydemo

2.安装Python依赖项

使用 uv (推荐):

uv sync

或使用 pip:

pip install -r requirements.txt

3.安装Node.js依赖项

npm install

4.设置环境变量

创建 .env 项目根目录中的文件:

GROQ_API_KEY=your_groq_api_key_here

配置

该项目使用 browser_mcp.json 配置MCP服务器。默认配置包括:

  • 剧作家MCP服务器:用于浏览器自动化
  • Airbnb MCP服务器:Airbnb搜索功能
  • DuckDuckGo搜索MCP服务器:用于网络搜索(有速率限制)

您可以修改 browser_mcp.json 根据需要添加或删除MCP服务器。

用法

运行应用程序

python app.py

交互式命令

应用程序启动后,您可以:

  • 正常聊天:键入您的信息,然后按Enter键
  • 清除历史记录:类型 clear 清除对话历史记录
  • 退出:类型 exit 或 quit 结束对话

交互示例

You: Search for hotels in Paris on Airbnb
Assistant: [Agent searches Airbnb and provides results]

You: What's the weather like today?
Assistant: [Agent uses browser to check weather]

You: Search for latest Python news
Assistant: [Agent uses DuckDuckGo to search and summarize results]

MCP服务器

此项目与以下MCP服务器集成:

  1. @剧作家/mcp:浏览器自动化和网页抓取
  2. @openbnb/mcp服务器airbnb:Airbnb房源搜索和详细信息
  3. duckduckgo mcp服务器:Web搜索功能

依赖项

Python依赖关系

  • langchain-groq>=1.1.0:LangChain的Groq LLM整合
  • langchain-openai>=1.1.0:OpenAI集成(如果需要)
  • mcp-use>=1.5.0:MCP客户端和代理实用程序
  • python-dotenv:环境变量管理

Node.js依赖关系

  • @playwright/mcp:剧作家MCP服务器
  • @openbnb/mcp-server-airbnb:Airbnb MCP服务器
  • duckduckgo-mcp-server:DuckDuckGo搜索MCP服务器
  • playwright:浏览器自动化库

运作原理

  1. 初始化:应用程序加载环境变量和MCP服务器配置
  2. MCP客户端:创建连接到已配置服务器的MCP客户端
  3. 代理创建:使用以下命令初始化MCPAgent:
    • Groq LLM(qwen/qwen3-32b型号)
    • 用于工具访问的MCP客户端
    • 对话记忆已启用
  4. 交互式循环:使用可用的MCP工具处理用户输入并生成响应
  5. 内存管理:自动维护交互中的对话上下文

故障排除

常见问题

  1. MCP服务器连接错误

    • 确保已安装Node.js依赖项: npm install
    • 检查MCP服务器是否在中正确配置 browser_mcp.json
  2. API密钥错误

    • 验证您的 .env 文件存在并包含 GROQ_API_KEY
    • 确保API密钥有效并且具有足够的信用
  3. 导入错误

    • 确保所有Python依赖项都已安装: uv sync 或 pip install -r requirements.txt