使用说明

项目简介

MCP Agent Army 是一个强大的多智能体系统,它利用 Model Context Protocol (MCP) 协议和 Pydantic AI 框架构建。该系统由一个主控智能体和多个专业领域子智能体组成,每个子智能体都配备了专属的 MCP 服务器,负责处理特定第三方服务(如 Airtable, Brave Search, 文件系统, GitHub, Slack, Firecrawl)的交互任务。这种架构通过分散工具和职责,有效提升了大型语言模型在复杂任务中的表现。

主要功能点

  • 多智能体架构: 采用主控智能体协调多个专业子智能体的模式,提升任务处理效率和准确性。
  • MCP 协议支持: 基于 Model Context Protocol 标准构建,确保与兼容 MCP 协议的客户端进行标准化交互。
  • 资源管理与数据访问: 通过各子智能体及其 MCP 服务器,实现对多种第三方服务资源的访问和管理。
  • 工具注册与执行: 每个子智能体通过其 MCP 服务器提供专属工具,主控智能体可以调用这些工具执行特定功能。
  • 可扩展性: 易于扩展新的子智能体和 MCP 服务器,以支持更多第三方服务和功能。
  • 示例应用: 提供与 Airtable, Brave Search, 文件系统, GitHub, Slack, Firecrawl 等常用服务的集成示例。

安装步骤

  1. 克隆仓库
    git clone https://github.com/asadudin/personal-ai-agent.git
    cd personal-ai-agent
  2. 创建并激活虚拟环境
    # On Windows
    python -m venv venv
    venv\Scripts\activate
    
    # On macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
  3. 安装 Python 依赖
    pip install -r requirements.txt
  4. 配置环境变量
    • 复制 '.env.example' 文件为 '.env',并根据您的实际情况填写 API 密钥和配置信息。
    • 必须配置的环境变量包括:
      • 'PROVIDER': LLM 提供商 (例如 OpenAI, OpenRouter, Ollama)。
      • 'BASE_URL': LLM API 基础 URL。
      • 'LLM_API_KEY': LLM API 密钥。
      • 'MODEL_CHOICE': 使用的模型名称 (例如 gpt-4o-mini)。
      • 以及各个第三方服务所需的 API 密钥,例如 'BRAVE_API_KEY', 'AIRTABLE_API_KEY', 'GITHUB_TOKEN', 'SLACK_BOT_TOKEN', 'SLACK_APP_TOKEN', 'FIRECRAWL_API_KEY'。

服务器配置 (MCP 客户端配置)

对于需要连接 MCP 服务器的客户端,您需要配置以下服务器信息。以下是 MCP Agent Army 中各子智能体 MCP 服务器的配置示例 (JSON 格式):

[
  {
    "server_name": "airtable",
    "command": "npx",
    "args": ["-y", "airtable-mcp-server"],
    "env": {
      "AIRTABLE_API_KEY": "<您的 Airtable API 密钥>"
    },
    "description": "Airtable MCP 服务器,用于操作 Airtable 数据库。"
  },
  {
    "server_name": "brave_search",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-brave-search"],
    "env": {
      "BRAVE_API_KEY": "<您的 Brave Search API 密钥>"
    },
    "description": "Brave Search MCP 服务器,用于执行网页搜索。"
  },
  {
    "server_name": "filesystem",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "<本地文件目录路径>"],
    "description": "文件系统 MCP 服务器,用于管理本地文件和目录。"
    <!-- 注意: '<本地文件目录路径>' 需要替换为实际的本地文件目录路径 -->
  },
  {
    "server_name": "github",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "<您的 GitHub Personal Access Token>"
    },
    "description": "GitHub MCP 服务器,用于与 GitHub 仓库交互。"
  },
  {
    "server_name": "slack",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-slack"],
    "env": {
      "SLACK_BOT_TOKEN": "<您的 Slack Bot Token>",
      "SLACK_TEAM_ID": "<您的 Slack Team ID>"
    },
    "description": "Slack MCP 服务器,用于与 Slack 工作区交互。"
  },
  {
    "server_name": "firecrawl",
    "command": "npx",
    "args": ["-y", "firecrawl-mcp"],
    "env": {
      "FIRECRAWL_API_KEY": "<您的 Firecrawl API 密钥>"
    },
    "description": "Firecrawl MCP 服务器,用于网页数据抓取。"
  }
]

请注意:

  • '<... API 密钥>' 和 '<您的 Slack Team ID>' 等占位符需要替换为您在 '.env' 文件中配置的实际值。
  • '<本地文件目录路径>' 需要替换为您希望文件系统 MCP 服务器操作的本地目录的路径。
  • 'command' 和 'args' 提供了启动各 MCP 服务器的命令,客户端需要使用这些信息与服务器建立连接。
  • 'env' 部分列出了各服务器启动时需要设置的环境变量,客户端通常无需直接配置,但了解这些信息有助于理解服务器的依赖。

基本使用方法

  1. 运行主程序

    python mcp_agent_army.py
  2. 在提示符下输入您的请求

    • 系统将启动所有子智能体的 MCP 服务器。
    • 主控智能体会分析您的请求,并将其委派给合适的子智能体处理。
    • 您可以输入自然语言指令,例如:
      • "Search for the latest AI research papers on multi-agent systems" (使用 Brave Search 智能体)
      • "Create a new file called test.txt with 'Hello World' content" (使用文件系统智能体)
      • "Send a message to the #general channel in Slack" (使用 Slack 智能体)
  3. 退出程序

    • 输入 'exit', 'quit', 'bye', 或 'goodbye' 即可退出程序。

信息

分类

生产力应用