Telegram AI助手机器人

Telegram AI助手机器人是一个基于推理的AI代理,通过Telegram与用户交互,支持多种功能如网页搜索、文档处理、数学计算和Google服务集成。

  • by shettysaish20
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 shettysaish20/Telegram-AI-MCP-Assistant-Bot

使用说明

Telegram人工智能助理机器人

概述

Telegram AI Assistant Bot是一个推理驱动的AI代理,名为Cortex-R,旨在通过Telegram与用户交互。它使用多个模型上下文协议(MCP)服务器来执行各种任务,如网络搜索、文档处理、数学计算和谷歌服务集成(如Gmail和谷歌表格)。机器人同时使用了这两种 stdio 和 sse 与这些MCP服务器通信的传输协议。

特性

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

建筑

机器人是使用以下组件构建的:

1. Telegram Bot集成

该机器人在 telegram_agent.py 使用 python-telegram-bot 图书馆。它处理用户消息和命令,例如 /start 和 /help用户查询由Cortex-R代理处理。

2. 核心组件

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

3. MCP服务器

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

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

4. 配置

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

工作流程

  1. 初始化:

    • 机器人从以下位置加载MCP服务器配置 profiles.yaml.
    • 初始化 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服务器配置

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

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

安装

  1. 克隆存储库:
    git clone <repository-url>
    cd <repository-folder>
    
  2. 使用uv同步依赖关系:
    uv sync
    
  3. 在中设置环境变量 .env.
  4. 启动Telegram机器人:
    uv run telegram_agent.py
    

用法

  • 使用以下命令在Telegram上启动机器人 /start 命令。
  • 向机器人发送查询或任务,例如:
    • “找到当前的F1排名,并在谷歌表格中分享。”
    • “发送电子邮件至example@gmail.com主题为“会议更新”。"

贡献

欢迎投稿!请按照以下步骤操作:

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

许可证

该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取详细信息。