返回市场
电报AI MCP助手机器人

电报AI MCP助手机器人

作者:shettysaish206 星标更新:2025-05-02

项目介绍

Telegram AI 助手机器人

概述

Telegram AI 助手机器人是一个基于推理的人工智能代理,名为Cortex-R,设计用于通过Telegram与用户交互。它使用多个模型上下文协议(MCP)服务器执行各种任务,如网络搜索、文档处理、数学计算以及Google服务集成(例如Gmail和Google Sheets)。该机器人采用stdiosse传输协议与这些MCP服务器通信。

特性

  • Telegram集成:机器人通过Telegram与用户互动,响应用户的查询和任务。
  • 多MCP服务器支持:利用多个MCP服务器实现多种功能。
    • 集成Gmail进行电子邮件管理。
    • 集成Google Sheets进行电子表格操作。
    • 使用DuckDuckGo进行网络搜索能力。
    • 文档处理和语义搜索。
    • 数学计算。
  • 动态工具发现:在初始化时自动从MCP服务器中发现工具。
  • 可定制代理策略:支持不同的策略,如保守型、重试一次和探索所有。
  • 内存管理:检索并存储记忆项以增强任务解决能力。
  • 可配置角色:允许自定义语气、冗长程度和行为。

架构

机器人由以下组件构建:

1. Telegram机器人集成

机器人在telegram_agent.py中实现,使用python-telegram-bot库。它处理用户消息和命令,如/start/help。用户查询由Cortex-R代理处理。

2. 核心组件

  • 代理循环(core/loop.py:管理代理的主要执行循环,包括感知、规划和工具执行。
  • 会话管理(core/session.py:使用stdiosse传输协议与多个MCP服务器通信。
  • 策略(core/strategy.py:实现决策制定的规划策略。

3. MCP服务器

机器人与以下MCP服务器交互:

  • Gmail服务器(gmail_server.py:管理电子邮件操作,如发送、阅读和删除邮件。
  • Google Sheets服务器(mcp_gdrive_server.py:处理电子表格操作,如创建、更新和共享Google Sheets。
  • 网络搜索服务器(mcp_server_3.py:使用DuckDuckGo进行网络搜索并获取网页内容。
  • 文档处理服务器(mcp_server_2.py:处理文档以进行语义搜索和索引。
  • 数学服务器(mcp_server_1.py:执行数学计算。

4. 配置

  • 配置文件(config/profiles.yaml:定义代理设置,包括策略、内存配置和MCP服务器详情。
  • 模型(config/models.json:指定用于文本生成和嵌入的模型。
  • 环境变量(.env:存储敏感信息,如API密钥和文件路径。

工作流程

  1. 初始化

    • 机器人从profiles.yaml加载MCP服务器配置。
    • 初始化MultiMCP调度器以从所有配置的MCP服务器中发现工具。
  2. 用户交互

    • 用户通过Telegram与机器人互动。
    • 机器人处理用户消息并确定完成任务所需的工具。
  3. 任务执行

    • 代理使用感知理解用户查询。
    • 使用定义的策略计划下一步行动。
    • 执行来自适当MCP服务器所需工具。
    • 获取结果并回复用户。
  4. 内存管理

    • 存储工具输出和用户查询作为记忆项。
    • 检索相关记忆以协助任务解决。

配置

环境变量

.env文件中设置以下变量:

  • GEMINI_API_KEY:Gemini模型的API密钥。
  • SERVICE_ACCOUNT_PATH:Google服务账户JSON文件的路径。
  • DRIVE_FOLDER_ID:用于存储文件的Google Drive文件夹ID。
  • CREDENTIALS_PATH:OAuth客户端凭据文件的路径。
  • TOKEN_PATH:Google API令牌文件的路径。

MCP服务器配置

config/profiles.yaml中定义MCP服务器:

mcp_servers:
  - id: gmail
    type: stdio
    script: gmail_server.py
    cwd: <server路径>
  - id: gdrive
    type: stdio
    script: mcp_gdrive_server.py
    cwd: <server路径>
  - id: math
    type: sse
    script: mcp_server_1.py
    url: http://localhost:8000/sse
    cwd: <server路径>
  - id: documents
    type: stdio
    script: mcp_server_2.py
    cwd: <server路径>
  - id: websearch
    type: stdio
    script: mcp_server_3.py
    cwd: <server路径>

安装

  1. 克隆仓库:
    git clone <仓库URL>
    cd <仓库文件夹>
    
  2. 使用uv同步依赖:
    uv sync
    
  3. .env中设置环境变量。
  4. 启动Telegram机器人:
    uv run telegram_agent.py
    

使用

  • 使用/start命令在Telegram上启动机器人。
  • 向机器人发送查询或任务,例如:
    • "查找当前F1排名并在Google Sheets中分享它们。"
    • "向example@gmail.com发送主题为'Meeting Update'的电子邮件。"

贡献

欢迎贡献!请遵循以下步骤:

  1. 分叉仓库。
  2. 为您的功能或错误修复创建一个新分支。
  3. 提交包含详细更改描述的拉取请求。

许可证

本项目根据MIT许可证发布。详见LICENSE文件。