使用说明
项目简介
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 等常用服务的集成示例。
安装步骤
- 克隆仓库
git clone https://github.com/asadudin/personal-ai-agent.git cd personal-ai-agent - 创建并激活虚拟环境
# On Windows python -m venv venv venv\Scripts\activate # On macOS/Linux python3 -m venv venv source venv/bin/activate - 安装 Python 依赖
pip install -r requirements.txt - 配置环境变量
- 复制 '.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' 部分列出了各服务器启动时需要设置的环境变量,客户端通常无需直接配置,但了解这些信息有助于理解服务器的依赖。
基本使用方法
-
运行主程序
python mcp_agent_army.py -
在提示符下输入您的请求
- 系统将启动所有子智能体的 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 智能体)
-
退出程序
- 输入 'exit', 'quit', 'bye', 或 'goodbye' 即可退出程序。
信息
分类
生产力应用