AI代理工具集成示例

展示如何在AutoGen框架中使用模型上下文协议(MCP)集成本地和远程工具,实现数学计算和网络内容检索功能。

  • by SaM-92
  • Python
  • 本地部署
  • 29 星标
  • 更新于
在 GitHub 查看 SaM-92/mcp_autogen_sse_stdio

使用说明

🤖 使用AutoGen的MCP服务器示例

该存储库提供了使用 模型上下文协议(MCP) 在...之内 AutoGen 框架。

演示的主要功能:

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

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

脚本: 示例代理回答了两个不同的问题:

  1. 一道数学题((3 + 5) x 12?),预计使用本地 math_server.py.
  2. 请求获取最新消息(“总结伊朗和美国谈判的最新消息……”),预计将使用远程Apify网络浏览工具。

📚 使用的库和框架

  • AutoGen:AI代理框架(autogen_agentchat、autogen_core、autogen_ext)
  • 主控程序:用于工具集成的模型上下文协议
  • Python dotenv:用于环境变量管理
  • OpenAI API:用于LLM能力
  • Apify API:用于网页浏览功能

🛠️ 设置

请仔细按照以下步骤设置您的环境:

  1. 先决条件:

    • 确保你有 Python 3.12 安装。
    • 安装 uv 如果尚未安装:
      pip install uv
      
  2. 导航到项目目录:

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

    # Create virtual environment using uv
    uv venv --python 3.12
    
    # Activate the virtual environment
    source .venv/bin/activate  # On macOS/Linux
    # OR
    .\.venv\Scripts\activate  # On Windows
    
  4. 再进行:

    # Install project dependencies
    uv pip install -e .
    

    故障排除说明:如果您在安装MCP CLI时遇到任何问题,可以手动安装:

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

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

🚀 运行项目

  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网络浏览器进行网络浏览

📝 代码走读

我们的 main.py 演示:

  1. 环境设置:

    • 加载API密钥并对其进行验证
  2. 工具配置:

    • 使用StdioServerParams设置本地数学工具
    • 使用来自的SseServerParams(API连接到Apify的web浏览器https://apify.com/apify/actors-mcp-server)
  3. 代理创建:

    • 使用这两个工具集创建AutoGen助手
    • 使用GPT-4作为基础型号
  4. 任务执行:

    • 运行两个演示任务,显示两个工具的运行情况
    • 网页浏览新闻摘要
    • 算术题的数学计算

🔄 通信流

User → AutoGen Agent → MCP Tools → Results → User

此示例显示了使用MCP将不同工具类型集成到一个代理中是多么容易!