Telegram AI 助手机器人是一个基于推理的人工智能代理,名为Cortex-R,设计用于通过Telegram与用户交互。它使用多个模型上下文协议(MCP)服务器执行各种任务,如网络搜索、文档处理、数学计算以及Google服务集成(例如Gmail和Google Sheets)。该机器人采用stdio和sse传输协议与这些MCP服务器通信。
机器人由以下组件构建:
机器人在telegram_agent.py中实现,使用python-telegram-bot库。它处理用户消息和命令,如/start和/help。用户查询由Cortex-R代理处理。
core/loop.py):管理代理的主要执行循环,包括感知、规划和工具执行。core/session.py):使用stdio和sse传输协议与多个MCP服务器通信。core/strategy.py):实现决策制定的规划策略。机器人与以下MCP服务器交互:
gmail_server.py):管理电子邮件操作,如发送、阅读和删除邮件。mcp_gdrive_server.py):处理电子表格操作,如创建、更新和共享Google Sheets。mcp_server_3.py):使用DuckDuckGo进行网络搜索并获取网页内容。mcp_server_2.py):处理文档以进行语义搜索和索引。mcp_server_1.py):执行数学计算。config/profiles.yaml):定义代理设置,包括策略、内存配置和MCP服务器详情。config/models.json):指定用于文本生成和嵌入的模型。.env):存储敏感信息,如API密钥和文件路径。初始化:
profiles.yaml加载MCP服务器配置。MultiMCP调度器以从所有配置的MCP服务器中发现工具。用户交互:
任务执行:
内存管理:
在.env文件中设置以下变量:
GEMINI_API_KEY:Gemini模型的API密钥。SERVICE_ACCOUNT_PATH:Google服务账户JSON文件的路径。DRIVE_FOLDER_ID:用于存储文件的Google Drive文件夹ID。CREDENTIALS_PATH:OAuth客户端凭据文件的路径。TOKEN_PATH:Google API令牌文件的路径。在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路径>
git clone <仓库URL>
cd <仓库文件夹>
uv sync
.env中设置环境变量。uv run telegram_agent.py
/start命令在Telegram上启动机器人。欢迎贡献!请遵循以下步骤:
本项目根据MIT许可证发布。详见LICENSE文件。