R
Rezinkin
Назад к блогу

Telegram-бот на Claude API: от идеи до продакшена

7 мин
PythonClaude AITelegram

Зачем создавал бота

Работая с Claude через веб-интерфейс, я постоянно переключался между окнами: IDE, браузер, терминал. Хотелось единую точку входа, доступную с любого устройства. Telegram идеально подошёл — он кроссплатформенный, поддерживает форматирование, файлы и голосовые сообщения. Идея была простой: отправляешь сообщение в Telegram — получаешь ответ от Claude с доступом к файлам проекта.

Выбор стека и архитектура

Основой стал Python с aiogram — асинхронным фреймворком для Telegram Bot API. Для взаимодействия с Claude используется официальный SDK от Anthropic. Архитектура включает несколько ключевых компонентов:

  • Менеджер сессий — хранит контекст диалога для каждого пользователя
  • Менеджер проектов — позволяет переключаться между рабочими директориями
  • Голосовой модуль — Whisper для распознавания речи, edge-tts для синтеза
  • Обработчик файлов — приём и отправка документов, изображений

Проблемы и решения

Главная сложность — управление контекстом. Claude работает в режиме диалога, и при каждом запросе нужно передавать историю. При длинных сессиях контекст разрастается, увеличивая стоимость и задержку. Я реализовал автоматическую компактизацию: когда история превышает порог, бот суммаризирует старые сообщения. Другая проблема — лимиты Telegram на размер сообщений (4096 символов). Решение — разбиение длинных ответов на части с сохранением Markdown-разметки.

Итоги и планы

Бот работает в продакшене несколько месяцев и стал основным инструментом для взаимодействия с Claude. Голосовые сообщения позволяют ставить задачи на ходу, мультипроектность — работать с разными кодовыми базами. В планах — поддержка нескольких моделей, интеграция с GitHub для автоматического review PR и расширение возможностей работы с файлами.