返回市场
自动生成sse标准输入输出

自动生成sse标准输入输出

作者:SaM-9227 星标更新:2025-04-14

项目介绍

🤖 使用AutoGen的MCP服务器示例

此仓库提供了一个使用模型上下文协议(MCP)AutoGen框架中集成工具与AI代理的实际演示。

展示的关键特性:

  • 双MCP集成: 展示如何连接一个AutoGen代理到:
    • 使用标准输入输出(Stdio)传输的本地工具服务器(math_server.py)。
    • 使用服务器发送事件(SSE)传输的远程工具服务器(Apify的RAG Web浏览器Actor)。
  • 本地工具示例: 通过math_server.py运行的简单计算器(addmultiply)。
  • 远程工具示例: 利用Apify的RAG Web浏览器Actor,通过其MCP服务器进行网络搜索和内容检索。
  • AutoGen代理: 配置为利用两套工具来回答用户查询的AssistantAgent

目标: 展示MCP在使AI代理能够通过标准化通信协议(Stdio和SSE)访问各种工具(无论是本地托管还是远程托管)方面的灵活性。

场景: 示例代理回答两个不同的问题:

  1. 一个数学问题((3 + 5) x 12?),预期使用本地的math_server.py
  2. 请求最近的新闻("总结伊朗和美国谈判的最新消息..."),预期使用远程的Apify网络浏览工具。

MCP工作流程

📚 使用的库和框架

  • AutoGen:AI代理框架(autogen_agentchat,autogen_core,autogen_ext)
  • MCP:用于工具集成的模型上下文协议
  • Python-dotenv:用于环境变量管理
  • OpenAI API:用于大语言模型能力
  • Apify API:用于网络浏览能力

🛠️ 环境设置

仔细遵循以下步骤设置您的环境:

  1. 先决条件

    • 确保已安装Python 3.12
    • 如果尚未安装,请安装uv
      pip install uv
      
  2. 导航至项目目录

    cd mcp_autogen_sse_stdio
    
  3. 创建并激活虚拟环境

    # 使用uv创建虚拟环境
    uv venv --python  3.12
    
    # 激活虚拟环境
    source .venv/bin/activate  # 在macOS/Linux上
    # 或者
    .\.venv\Scripts\activate  # 在Windows上
    
  4. 安装依赖项

    # 安装项目依赖项
    uv pip install -e .
    

    故障排除提示:如果您遇到任何MCP CLI安装问题,可以手动安装它:

    uv add "mcp[cli]"
    
  5. 配置环境变量

    • mcp_autogen_sse_stdio目录下创建一个.env文件。
    • 添加您的API密钥:
      OPENAI_API_KEY=your_openai_api_key_here
      APIFY_API_KEY=your_apify_api_key_here
      
    • Apify MCP服务器页面获取您的Apify API密钥。

🚀 运行项目

  1. 确保您位于父目录(项目目录之上一级):

    cd ..
    
  2. 使用uv运行主脚本:

    uv run mcp_autogen_sse_stdio/main.py
    

这将运行演示,该演示:

  1. 使用Apify工具总结伊朗-美国谈判的新闻。
  2. 解决一个简单的数学问题:(3 + 5) x 12,使用本地数学工具。

🔌 理解MCP(模型上下文协议)

MCP是一种标准化AI模型与工具之间通信的协议。此示例展示了两种使用MCP的方式:

1. 本地工具(StdioServerParams)

  • 使用标准输入输出进行通信
  • 工具在您的机器上本地运行
  • 示例:我们的math_server.py提供简单的数学运算

2. 远程工具(SseServerParams)

  • 使用服务器发送事件(SSE)进行通信
  • 工具在远程服务器上运行(如Apify)
  • 示例:通过Apify的rag-web-browser提供的网络浏览能力

📝 代码解析

我们的main.py演示了:

  1. 环境设置

    • 加载API密钥并验证它们
  2. 工具配置

  3. 代理创建

    • 创建一个带有两套工具的AutoGen助手
    • 使用GPT-4作为基础模型
  4. 任务执行

    • 运行两个演示任务,展示两种工具的操作
    • 网络浏览以总结新闻
    • 数学计算解决算术问题

🔄 通信流程

用户 → AutoGen代理 → MCP工具 → 结果 → 用户

此示例展示了如何轻松地将不同类型的工具集成到一个使用MCP的代理中!