多工具协调AI代理框架

SmolAgentWithMCP是一个基于Python的AI代理框架,通过连接多个模型上下文协议(MCP)工具服务器,并利用大型语言模型(LLM)进行协调,实现强大的工具增强问答工作流。

  • by ashishpatel26
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 ashishpatel26/SmolAgentWithMCP

使用说明

SmolAgentWithMCP

概述

SmolAgentWithMCP 是一个基于Python的AI代理框架,它连接多个模型上下文协议(MCP)工具服务器,并使用大型语言模型(LLM)对其进行编排。通过支持Brave Search和其他MCP兼容工具,它实现了强大的、工具增强的问答工作流程。代理人利用 烟雾剂, 文学硕士,以及MCP协议,以提供灵活、可扩展和现代的AI工具。


用例

该项目非常适合希望:

  • 将多个工具服务器(例如Brave Search、自定义MCP爬虫)集成到单个AI代理中。
  • 使对话式AI代理能够使用外部工具来增强应答能力。
  • 以最少的设置原型化和部署高级AI工作流程。
  • 使用MCP协议使用自定义工具扩展代理。

示例场景:

  • 使用实时网络搜索数据和自定义知识库回答查询的助手。
  • 一个同时利用公共API和私有数据集/工具的研究代理。
  • 一个自动化机器人,可以通过启用MCP的工具与外部服务进行交互。

特性

  • 多工具编排: 连接到多个MCP工具服务器。
  • 工具调用代理: 使用LLM来决定何时以及如何调用工具。
  • 可通过以下方式配置 .env: 支持多个API密钥和环境设置。
  • 异步工作流: 高效的异步工具管理。
  • 可扩展: 轻松添加新的MCP工具或更改LLM模型。

项目结构

- smolagentwithmcp.py         # Main agent source code
- requirements.txt            # Python dependencies
- .env.example                # Example env file
- README.md                   # Project documentation

设置和安装

  1. 克隆存储库:

    git clone https://github.com/ashishpatel26/SmolAgentWithMCP.git
    cd SmolAgentWithMCP
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 配置环境变量:

    • 复制 .env.example 向 .env 并填写您的API密钥。
    cp .env.example .env
    
  4. 运行代理:

    python smolagentwithmcp.py
    

代码工作流程图

flowchart TD
    subgraph User Interaction
        U([User]) -->|Query| AGENT[SmolAgentWithMCP]
    end
    AGENT -->|Loads| MCP1[MCP Tool Server 1: Brave Search]
    AGENT -->|Loads| MCP2[MCP Tool Server 2: Custom]
    AGENT -->|Initializes| LLM[LiteLLM Model]
    U -->|Input| AGENT
    AGENT -->|Decides tool usage| TOOLCALL[ToolCallingAgent]
    TOOLCALL -->|Calls| MCP1
    TOOLCALL -->|Calls| MCP2
    MCP1 -->|Returns Data| TOOLCALL
    MCP2 -->|Returns Data| TOOLCALL
    TOOLCALL -->|Generates Answer| AGENT
    AGENT -->|Output| U

运作原理

  1. 初始化: 加载MCP工具服务器(如Brave Search、自定义爬虫)并配置LLM。
  2. 用户查询: 通过终端接受用户输入。
  3. 工具编排: 确定查询需要调用哪些工具。
  4. 执行: 调用工具,收集结果,并使用LLM生成最终响应。
  5. 异步管理: 异步处理多个工具集合和步骤。
  6. 输出: 以交互方式向用户返回答案。

配置

编辑 .env 设置API密钥:

BRAVE_API_KEY=your_brave_search_api_key
OPENAI_API_KEY=your_openai_api_key

需求

看 requirements.txt:

  • smolagents
  • python-dotenv
  • mcp
  • litellm

许可证

MIT许可证。看 许可证 了解详情。


贡献

欢迎投稿!请打开问题或PR以获取功能请求、错误修复或增强。


鸣谢