Что мы настроим
В этом руководстве вы создадите Telegram-бота на базе Hermes Agent, которым сможет пользоваться вся команда. Бот будет помогать с написанием и ревью кода, проведением исследований, администрированием серверов и автоматизацией рутинных задач — прямо в чате Telegram.
Шаг 1: Создайте бота в Telegram
Откройте @BotFather в Telegram и создайте нового бота:
- Отправьте команду
/newbot - Задайте имя бота (например,
Hermes Team Assistant) - Задайте уникальный username (например,
myteam_hermes_bot) - Скопируйте полученный API-токен — он понадобится на следующем шаге
Шаг 2: Установите и настройте Hermes Agent
Установите Hermes Agent на сервер, если он ещё не установлен:
pip install hermes-agent
Запустите интерактивную настройку гейтвея:
hermes gateway setup --platform telegram
Система запросит токен бота и предложит выбрать способ авторизации участников. Можно также настроить вручную в файле ~/.hermes/config.yaml:
telegram:
bot_token: "ВАШ_ТОКЕН"
auth_mode: pairing
Шаг 3: Запустите гейтвей
Гейтвей — это процесс, который связывает Hermes с Telegram. Управление гейтвеем:
| Команда | Описание |
|---|---|
hermes gateway run |
Запуск в foreground (для тестирования) |
hermes gateway install |
Установить как системный сервис (для продакшена) |
hermes gateway start |
Запустить сервис |
hermes gateway stop |
Остановить сервис |
hermes gateway restart |
Перезапустить сервис |
hermes gateway status |
Проверить статус |
Для тестирования запустите гейтвей в foreground-режиме:
hermes gateway run
Для продакшена установите его как системный сервис:
hermes gateway install
hermes gateway start
Проверить статус можно командой:
hermes gateway status
Совет: если гейтвей падает при закрытии SSH-сессии, включите linger: sudo loginctl enable-linger $USER
Шаг 4: Настройте доступ команды
Вариант A: Статический список разрешений
Добавьте Telegram User ID сотрудников в конфигурацию. Узнать свой ID можно, написав боту @userinfobot.
Вариант B: Привязка через личные сообщения (рекомендуется)
Режим DM Pairing позволяет каждому участнику команды привязать свой аккаунт, написав боту в личные сообщения. Администратор подтверждает привязку — после этого пользователь может работать с ботом в групповых чатах.
Управление привязками из терминала:
| Команда | Описание |
|---|---|
hermes pairing list |
Показать все привязки (ожидающие и подтверждённые) |
hermes pairing approve USER_ID |
Подтвердить привязку пользователя |
hermes pairing revoke USER_ID |
Отозвать привязку пользователя |
Привязки также можно одобрять прямо из Telegram-чата с помощью slash-команд:
/approve— одобрить последнюю ожидающую привязку/deny— отклонить привязку
Важно: для командного использования рекомендуется запускать команды бота в Docker-контейнере, чтобы изолировать хост-систему. В ~/.hermes/config.yaml укажите:
terminal:
backend: docker
container_cpu: 1
container_memory: 5120
Шаг 5: Настройте поведение бота
Домашний канал
Задайте канал, куда бот будет отправлять результаты запланированных задач. В чате с ботом выполните:
/sethome
Личность бота
Отредактируйте файл ~/.hermes/SOUL.md, чтобы задать стиль общения бота:
# Soul
Ты — технический ассистент команды. Отвечай кратко и по делу.
Используй блоки кода для примеров. При отладке всегда запрашивай логи ошибок.
Контекст проекта
Создайте файл ~/.hermes/AGENTS.md с описанием вашего стека:
# Контекст команды
- Backend: Python 3.12, FastAPI, SQLAlchemy
- Frontend: React + TypeScript
- CI/CD: GitHub Actions
- Деплой: AWS ECS
Шаг 6: Групповые чаты
Добавление бота в группу
Добавьте бота в групповой чат команды. По умолчанию бот реагирует только на упоминания (@botname). Это поведение настраивается параметром:
telegram:
require_mention: true # бот отвечает только при @упоминании
require_mention: false # бот реагирует на все сообщения
Forum Topics
Для супергрупп с включёнными форумами бот поддерживает работу с топиками (темами). Каждый топик обрабатывается как отдельный контекст беседы.
Одобрение команд
Для безопасности бот может запрашивать подтверждение перед выполнением потенциально опасных команд (удаление файлов, git push и т.д.). Администратор получает запрос и решает:
/approve— разрешить выполнение команды/deny— отклонить команду
Шаг 7: Голосовые сообщения
Hermes автоматически расшифровывает голосовые сообщения из Telegram. Участники команды могут отправлять голосовые вместо текста — бот транскрибирует их и отвечает на содержание.
Настройка STT (Speech-to-Text) в config.yaml:
stt:
enabled: true
provider: local # local (faster-whisper), groq, openai, mistral
Провайдеры STT:
| Провайдер | Ключ | Бесплатно? |
|---|---|---|
| Local faster-whisper | Не нужен | Да (по умолчанию) |
| Groq Whisper | GROQ_API_KEY |
Да (free tier) |
| OpenAI Whisper | VOICE_TOOLS_OPENAI_KEY |
Платно |
| Mistral Voxtral | MISTRAL_API_KEY |
Платно |
Шаг 8: Отправка медиафайлов
Публикация в каналы
Для публикации сообщений и файлов в Telegram-каналы используйте инструмент send_message. Бот должен быть администратором целевого канала.
Отправка медиа
Чтобы отправить файл или изображение, используйте префикс MEDIA: с путём к файлу:
MEDIA:/path/to/image.png
Бот отправит файл как вложение в Telegram-чат. Поддерживаются изображения, документы, аудио и видео.
Шаг 9: Настройте автоматические задачи
Напишите боту в Telegram, чтобы создать расписание. Примеры:
- Ежедневный стендап: «Каждый будний день в 9:00 проверяй GitHub-репозиторий на новые PR, issues и падения CI. Отправь краткую сводку.»
- Мониторинг серверов: «Каждые 6 часов проверяй
df -h,free -hиdocker ps. Сообщай, если диск занят более 80% или контейнеры перезапускались.»
Управлять задачами можно из Telegram-чата: /cron list для просмотра, /cron remove ID для удаления.
Лимиты Telegram
| Параметр | Значение |
|---|---|
| Длина текстового сообщения | 4096 символов |
| Размер вложения | до 100 МБ (200 МБ с Premium) |
| Размер фото | до 10 МБ |
Если ответ бота превышает 4096 символов, он автоматически разбивается на несколько сообщений. Длинные файлы отправляются как документы.
Полезные советы
- Обновляйте Hermes командой
/updateпрямо из Telegram - Логи гейтвея:
journalctl --user -u hermes-gateway -f(Linux) или~/.hermes/logs/gateway.log(macOS) - Контекстные файлы инжектируются в каждый промпт — следите за их размером
- Один гейтвей может одновременно обслуживать Discord, Slack и WhatsApp
- Используйте
hermes doctorдля проверки конфигурации и зависимостей - Команда
/restartв Telegram-чате перезапускает гейтвей без доступа к серверу