AI代理Telegram机器人

一个支持MCP服务器、向量搜索和对话记忆的智能Telegram机器人,集成Google Gemini生成回答,适用于自动化客服、信息检索和智能对话场景。

  • by 18shadow20
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 18shadow20/ai_agent_mcp

使用说明

AI Agent Telegram Bot

Интеллектуальный Telegram бот с поддержкой MCP (Model Context Protocol) серверов, векторного поиска и памяти диалогов.

Возможности

  • 🤖 LLM интеграция: Использует Google Gemini для генерации ответов
  • 🧠 Память диалогов: Сохраняет историю разговоров в SQLite
  • 🔍 Векторный поиск: Поиск по коллекции фактов через ChromaDB
  • 🌐 MCP серверы: Интеграция с внешними сервисами через MCP
  • 📱 Telegram Bot: Полнофункциональный бот на aiogram

Требования

  • Python 3.11+
  • Telegram бот-токен (TG_TOKEN)
  • Ключ Google API (GOOGLE_API_KEY)
  • Настроенные MCP серверы (опционально)

Установка зависимостей (локально)

python -m venv .venv
# PowerShell: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass; .\.venv\Scripts\Activate.ps1
# CMD: .\.venv\Scripts\activate.bat
pip install -r requirements.txt

Настройка окружения

Создайте файл .env по примеру:

TG_TOKEN=your_telegram_bot_token_here
GOOGLE_API_KEY=your_google_api_key_here
# LLM_MODEL=gemini-flash-latest

Настройка MCP серверов

Проект поддерживает интеграцию с настоящими MCP серверами. Настройте в ~/.cursor/mcp.json:

{
  "mcpServers": {
    "open-weather": {
      "transport": "streamableHttp",
      "url": "https://mcp.open-mcp.org/api/server/open-weather@latest/mcp"
    },
    "Github": {
      "type": "http",
      "url": "https://server.smithery.ai/@smithery-ai/github/mcp?api_key=YOUR_API_KEY",
      "headers": {}
    },
    "Notion": {
      "type": "http", 
      "url": "https://server.smithery.ai/notion/mcp?api_key=YOUR_API_KEY",
      "headers": {}
    }
  }
}

Запуск локально

python main.py

Docker

Сборка и запуск:

# Скопируйте .env или создайте его рядом с docker-compose.yml
# Пример значений см. в разделе "Настройка окружения"

docker build -t ai_agent:latest .
docker compose up -d

Остановка:

docker compose down

Использование бота

  • /help — список команд
  • /health — проверка состояния бота
  • факт <запрос> — поиск в коллекции фактов
  • Обычные сообщения — ответы через LLM с памятью диалога

Структура проекта

  • main.py — входная точка, инициализация БД и запуск бота
  • app/bot.py — aiogram роутеры и хендлеры
  • app/core.py — маршрутизация команд, интеграция LLM/VectorStore
  • app/memory.py — SQLite хранение диалогов
  • app/vecstore.py — ChromaDB векторное хранилище
  • app/llm_client.py — клиент Google Gemini
  • requirements.txt — зависимости Python
  • Dockerfile, docker-compose.yml — контейнеризация
  • conversation.db — база данных диалогов (создается автоматически)

MCP интеграция

Бот поддерживает работу с настоящими MCP серверами через Cursor IDE:

  • Open Weather — получение данных о погоде
  • GitHub — работа с репозиториями GitHub
  • Notion — интеграция с Notion workspace

Все MCP серверы настраиваются через файл ~/.cursor/mcp.json и работают через Cursor IDE.