AI代理交互平台

MCP Agent是一个基于Streamlit的交互式Web应用,利用Google ADK和MCP协议提供与多种专用AI代理交互的环境,适用于多会话管理和实时模型切换等场景。

  • by Homin0321
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Homin0321/mcpagent

使用说明

MCP代理

MCP Agent是一个基于Streamlit构建的交互式web应用程序。它利用Google ADK(代理开发工具包)和MCP(模型上下文协议)提供与各种专用AI代理交互的环境。

🌟 主要特点

  • 多会话管理:通过创建、切换和删除多个聊天会话来独立管理它们。
  • 专业代理选择:选择适合您每次会话目标的专业代理(例如,基本聊天、搜索、URL分析)。
  • 灵活的模型切换:从侧边栏实时选择和更改各种Gemini型号(Flash、Pro等)。
  • 可视化Agent思维过程:展开“思考过程”面板,查看代理如何使用工具或执行复杂的推理。
  • Markdown优化:包括一个实用程序,用于防止Streamlit中由数学符号或特殊字符引起的markdown渲染问题。还支持“显示Markdown代码”功能来查看原始响应。
  • 后端服务器控制:重新启动API服务器(adk api_server)只需在UI中单击一下即可。

🤖 支持的代理

该项目包括以下专业代理:

  • gemini:一个基本的会话代理,仅依赖于底层的大型语言模型(LLM)功能,没有实时信息检索工具。
  • search:利用 google_search 实时获取最新信息并提供基于事实的答案的工具。
  • url:使用 url_context 该工具用于从用户提供的特定网页中提取、分析和总结内容。
  • fetch:连接到Fetch MCP服务器的代理,可以直接检索和处理网页内容。
  • 其他推广代理: collab, jira, googleapis (可根据环境进行配置)

📂 项目结构

mcpagent/
├── app.py               # Main Streamlit frontend application
├── api_client.py        # Client for communicating with the backend server (ADK API)
├── utils.py             # Utility functions, including markdown rendering bug fixes
├── requirements.txt     # List of project dependencies
├── .env                 # Environment variable configuration file (e.g., model name)
├── gemini/              # Folder defining the basic Gemini agent
├── search/              # Folder defining the Google Search specialized agent
├── url/                 # Folder defining the URL analysis specialized agent
└── fetch/               # Folder defining the Fetch MCP tool integration agent

🛠️ 安装和设置

  1. 导航到目录

    cd /home/worker/mcpagent
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 配置环境变量 创建一个 .env 在项目根目录中创建文件,并设置必要的环境变量。(例如,要使用的默认模型)

    MODEL=gemini-flash-lite-latest
    # Add any other required API keys or settings
    

    (注意:通过Streamlit应用程序中的侧边栏动态更改模型将自动更新 .env 文件。)

🚀 如何运行

此应用程序通过分离后端API服务器和前端UI(Streamlit)来运行。

  1. 运行后端API服务器 在后台运行基于ADK的API服务器。

    nohup adk api_server > /dev/null 2>&1 &
    

    (您也可以使用应用程序侧栏中的“重新启动API服务器”按钮重新启动服务器。)

  2. 运行Streamlit前端

    streamlit run app.py
    

    使用运行命令后打印的本地地址通过浏览器访问应用程序(通常 http://localhost:8501).

📝 操作注意事项

  • 根据代理的提示说明,如果用户在 韩语,代理被严格配置为在 韩语。否则,默认为英语。
  • 如果后端API发生通信错误或会话管理问题,可以通过Streamlit UI中的错误框和可扩展的“错误详细信息”面板检查详细信息。