多MCP AI代理
一个agent AI代理系统,利用多个MCP(模型控制协议)服务器提供广泛的功能,从基本的数学运算到高级的外部服务集成,如谷歌工作区和网络抓取。该代理包括一个Telegram机器人界面和用于实时通信的服务器发送事件(SSE)。
🌟 特性
- 多MCP架构:利用多个MCP服务器进行分布式处理和各种功能
- 认知模块:实现感知、决策、记忆和行动模块
- 外部服务集成:
- 谷歌工作区(Gmail、谷歌云端硬盘、谷歌表格) - 网络抓取和内容提取 - DuckDuckGo搜索集成
- 实时通信:
- Telegram Bot界面 - 实时更新的服务器发送事件(SSE)
- 核心组件:
- 代理循环管理 - 会话处理 - 上下文管理 - 战略决策
🏗️ 项目结构
├── agent.py # Main agent entry point
├── core/ # Core agent components
│ ├── context.py # Context management
│ ├── loop.py # Main agent loop
│ ├── session.py # Session handling
│ └── strategy.py # Strategic decision making
├── modules/ # Cognitive modules
│ ├── action.py # Action execution
│ ├── decision.py # Decision making
│ ├── memory.py # Memory management
│ ├── model_manager.py # Model management
│ ├── perception.py # Input processing
│ └── tools.py # Tool definitions
├── config/ # Configuration files
│ ├── models.json # Model configurations
│ └── profiles.yaml # MCP server profiles
└── mcp_server_*.py # MCP server implementations🚀 入门指南
先决条件
- Python 3.11+
- UV包管理器
- Telegram机器人令牌(用于机器人功能)
- Google Cloud凭据(用于Google Workspace集成)
安装
- 克隆存储库:
git clone
cd - 创建并激活虚拟环境:
uv venv
venv\Scripts\activate # On Mac: source venv/bin/activate- 使用UV安装依赖项:
uv sync- 设置环境变量:
- 创建 .env 使用Gemini API密钥和Telegram Bot令牌。 - 生成 credentials.json 使用Google OAuth客户端。
配置
- 在中配置MCP服务器
config/profiles.yaml - 在中设置模型配置
config/models.json - 配置Google Cloud凭据:
- 地方 credentials.json 在根目录中 - 运行应用程序一次以生成 token.json
🎮 用法
启动代理
uv run agent.py启动Telegram Bot服务器
uv run telegram_sse_server.py🛠️ MCP服务器
MCP服务器1:基本操作
- 数学运算
- 图像处理
- 文件 操作
MCP服务器2:文档处理
- 文献索引
- 语义搜索
- 内容提取
- 图像字幕
MCP服务器3:Web集成
- DuckDuckGo搜索
- Web内容获取
- 速率限制请求
MCP服务器4:Google工作区
- Gmail集成
- Google表格操作
- Google云端硬盘管理
- F1积分榜抓取器(URL抓取器)
📡 沟通
电报机器人
- 指挥处理
- 消息处理
- 实时响应
SSE服务器
- 实时事件流
- 客户端连接管理
- 事件广播
🧠 认知架构
代理通过以下模块实现认知架构:
- 感知:处理输入并提取相关信息
- 记忆:管理状态和历史数据
- 决定:根据投入和背景做出战略决策
- 行动:通过适当的工具执行决定的行动
📝 许可证
MIT许可证
