Telegram智能代理

一个具有Telegram接口的智能代理,具备本地存储(SQLite)、向量知识库、MCP工具集成和通过Docker Compose或systemd自动启动的功能。

  • by AndreyBychenkow
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AndreyBychenkow/my_mcp_bot_agent

使用说明

🐍 MCP Telegram 代理

🖋 基于Telegram的智能代理,具备本地存储(SQLite)、向量知识库、与MCP工具集成以及通过Docker Compose或systemd自动启动的功能。

⚡ 功能

  • 通过带有指令的Telegram机器人进行对话 /help 和 /health。
  • 会话记忆:SQLite中带有上下文理解的完整对话历史。
  • 向量数据库:在文件夹中搜索本地文档(轻量级嵌入) knowledge/。
  • MCP工具(3件): weather, github, stackoverflow。
  • 上下文理解:代理记住名字,回答有关对话的问题。
  • 部署:Docker Compose 或 systemd 单元。

📌 克隆仓库

git clone https://github.com/AndreyBychenkow/my_mcp_bot_agent.git

🚀 快速启动(本地)

  1. 创建 .env:
    • TELEGRAM_BOT_TOKEN=...
    • (可选) GITHUB_PERSONAL_ACCESS_TOKEN= — 用于提高GitHub API的限制
  2. 安装依赖项: pip install -e . (可选,如果不使用Docker)。
  3. 无需Docker的启动(在单独的终端中):
    • python -m src.mcp_servers.weather.server
    • python -m src.mcp_servers.github.server
    • python -m src.mcp_servers.stackoverflow.server
    • python -m src.telegram_bot.bot
  4. 在Telegram上:请检查 /health,然后使用以下请求格式。

🚀 通过 Docker 部署

docker compose up -d --build

服务:

  • agentTelegram机器人
  • mcp_weather , mcp_github , mcp_stackoverflow

🚀 通过 systemd 部署

复制 deploy/agent.service (此处“в”在俄语中通常作为介词使用,但单独出现时没有具体含义,若作为句子或短语的一部分,需结合上下文翻译。若单独作为开头,可能表示开始或引入某个话题,但直接翻译无具体对应中文词汇,故在此处保留原样或根据上下文灵活处理。) /etc/systemd/system/,然后:

sudo systemctl daemon-reload
sudo systemctl enable agent
sudo systemctl start agent

确保 .env (注:原文“(с”似乎是一个不完整的表达或特定上下文中的符号,没有足够的信息来准确翻译,因此这里仅保留原样并说明其不完整性。) TELEGRAM_BOT_TOKEN)位于目录中 WorkingDirectory 并指出在 EnvironmentFile。

🧷 MCP工具

  • 天气Open-Meteo搜索城市+当前天气(无需密钥)。
  • **github(注:这是一个专有名词,通常不翻译,直接使用原词,意为“一个代码托管平台”或具体指“GitHub网站”)**公开API(无密钥,限制较少;带 GITHUB_PERSONAL_ACCESS_TOKEN — 超过限额)。
  • **Stack Overflow(一个编程问答网站)**Stack Exchange API 用于搜索问题/答案(无需密钥)。

限制:公开API对请求频率有限制。

📝 对话日志

文件夹 conversations/ 保存Cursor对话导出内容以及(可选)会话JSON日志。

建议不要将日志中的私密内容公开发布。

🟢 安全

  • 通过环境变量设置密钥。
  • 代码遵循KISS/DRY/SOLID原则。
  • 静态类型检查(mypy/ruff)和代码检查工具。

💾 请求格式(Telegram)

⚠ MCP命令:

  • погода <город> — 城市当前天气
  • so <запрос> — 在StackOverflow上搜索
  • github <запрос> — 搜索GitHub仓库

❓ 上下文问题:

  • Привет, меня зовут <имя> — 代理人会记住名字
  • Как меня зовут? — 代理人会从对话中回忆起名字
  • Как дела? / Как ты? — 关于状况的一般问题

📌 命令:

  • /help — 可用命令列表
  • /health — 检查代理状态

📌 使用示例:

📋 简短报告:

  • 用途Telegram中的智能助手,具备对话上下文理解能力。
  • MCP工具: weather , github , stackoverflow .
  • 记忆SQLite(src/agent/memory.py) 带有完整对话历史的 chat_id.
  • 上下文理解代理记住名字,回答有关对话的问题。
  • 矢量生物安全(或生物防护): src/agent/vector_store.py 基于(fastembed+numpy) src/knowledge/*。
  • 界面: aiogram,团队 /help, /health,支持上下文问题。
  • 部署Docker Compose(restart: unless-stopped) 或 systemd 单元 deploy/agent.service。