sidebar_position: 4
title: "Tutorial: Team Telegram Assistant"
description: "Step-by-step guide to setting up a Telegram bot that your whole team can use for code help, research, system admin, and more"
lang: ru
Настройте командного помощника Telegram
В этом руководстве рассказывается, как настроить бота Telegram на базе агента Hermes, которого могут использовать несколько членов команды. В конце концов, у вашей команды будет общий ИИ-помощник, к которому они смогут обращаться за помощью с кодом, исследованиями, системным администрированием и всем остальным, защищенным авторизацией для каждого пользователя.
Что мы строим
Telegram-бот, который:
Любой авторизованный член команды может обратиться за помощью в личные сообщения — обзоры кода, исследования, команды оболочки, отладка.
Запускается на вашем сервере с полным доступом к инструментам — терминалу, редактированию файлов, веб-поиску, выполнению кода.
Сеансы для каждого пользователя — каждый человек получает свой собственный контекст разговора.
Безопасно по умолчанию — взаимодействовать могут только одобренные пользователи, есть два метода авторизации.
Запланированные задачи – ежедневные отчеты, проверки работоспособности и напоминания, отправляемые в командный канал.
Предварительные условия
Прежде чем начать, убедитесь, что у вас есть:
Агент Hermes установлен на сервере или VPS (не на вашем ноутбуке — бот должен продолжать работать). Следуйте руководству по установке, если вы еще этого не сделали.
Аккаунт Telegram для себя (владельца бота)
Настроенный поставщик LLM — как минимум ключ API для OpenAI, Anthropic или другого поддерживаемого поставщика в ~/.hermes/.env.
:::совет
VPS за 5 долларов в месяц вполне достаточно для работы шлюза. Сам Hermes легкий — вызовы LLM API стоят денег, и они происходят удаленно.
Шаг 1: Создайте бота Telegram
Каждый бот Telegram начинается с @BotFather — официального бота Telegram для создания ботов.
Откройте Telegram и найдите @BotFather или перейдите по адресу t.me/BotFather
Отправьте /newbot — BotFather спросит вас о двух вещах:
Отображаемое имя — то, что видят пользователи (например, Team Hermes Assistant).
Имя пользователя — должно заканчиваться на bot (например, myteam_hermes_bot).
Скопируйте токен бота — BotFather отвечает примерно так:
Use this token to access the HTTP API:
7123456789:AAH1bGciOiJSUzI1NiIsInR5cCI6Ikp...
Сохраните этот токен — он понадобится вам на следующем шаге.
Задайте описание (необязательно, но рекомендуется):
/setdescription
Выберите своего бота и введите что-то вроде:
Team AI assistant powered by Hermes Agent. DM me for help with code, research, debugging, and more.
Задать команды боту (необязательно — открывает пользователю командное меню):
/setcommands
Выберите своего бота и вставьте:
new - Start a fresh conversation
model - Show or change the AI model
status - Show session info
help - Show available commands
stop - Stop the current task
:::предупреждение
Держите свой токен бота в секрете. Любой, у кого есть токен, может управлять ботом. В случае утечки используйте /revoke в BotFather, чтобы создать новый.
Шаг 2. Настройте шлюз
У вас есть два варианта: интерактивный мастер настройки (рекомендуется) или настройка вручную.
Вариант A: Интерактивная настройка (рекомендуется)
hermesgatewaysetup
Это проведет вас через все с помощью клавиш со стрелками. Выберите Telegram, вставьте свой токен бота и введите свой идентификатор пользователя при появлении соответствующего запроса.
Вариант Б: настройка вручную
Добавьте эти строки в ~/.hermes/.env:
# Telegram bot token from BotFatherTELEGRAM_BOT_TOKEN=7123456789:AAH1bGciOiJSUzI1NiIsInR5cCI6Ikp...
# Your Telegram user ID (numeric)TELEGRAM_ALLOWED_USERS=123456789
Как найти свой идентификатор пользователя
Ваш идентификатор пользователя Telegram представляет собой числовое значение (а не ваше имя пользователя). Чтобы найти его:
Он мгновенно отвечает вашим числовым идентификатором пользователя.
Скопируйте этот номер в TELEGRAM_ALLOWED_USERS.
:::информация
Идентификаторы пользователей Telegram — это постоянные номера, например 123456789. Они отличаются от вашего @username, который может измениться. Всегда используйте числовой идентификатор для белых списков.
Шаг 3: Запустите шлюз
Быстрый тест
Сначала запустите шлюз на переднем плане, чтобы убедиться, что все работает:
Откройте Telegram, найдите своего бота и отправьте ему сообщение. Если он ответит, вы в деле. Нажмите Ctrl+C, чтобы остановить.
Производство: установка как услуга
Для постоянного развертывания, которое выдерживает перезагрузку:
hermesgatewayinstall
sudohermesgatewayinstall--system# Linux only: boot-time system service
При этом создается фоновая служба: служба systemd пользовательского уровня в Linux по умолчанию, служба launchd в macOS или системная служба Linux во время загрузки, если вы передадите --system.
# Linux — manage the default user service
hermesgatewaystart
hermesgatewaystop
hermesgatewaystatus
# View live logs
journalctl--user-uhermes-gateway-f
# Keep running after SSH logout
sudologinctlenable-linger$USER# Linux servers — explicit system-service commands
sudohermesgatewaystart--system
sudohermesgatewaystatus--system
journalctl-uhermes-gateway-f
# macOS — manage the service
hermesgatewaystart
hermesgatewaystop
tail-f~/.hermes/logs/gateway.log
:::подсказка ПУТЬ macOS
Plist launchd фиксирует PATH вашей оболочки во время установки, чтобы подпроцессы шлюза могли находить такие инструменты, как Node.js и ffmpeg. Если вы позже установите новые инструменты, повторно запустите hermes gateway install, чтобы обновить список.
Убедитесь, что он работает
hermesgatewaystatus
Затем отправьте тестовое сообщение своему боту в Telegram. Вы должны получить ответ в течение нескольких секунд.
Шаг 4. Настройте групповой доступ
Теперь давайте предоставим доступ вашим товарищам по команде. Есть два подхода.
Подход А: статический белый список
Соберите идентификаторы пользователей Telegram каждого члена команды (отправьте им сообщение @userinfobot) и добавьте их в виде списка, разделенного запятыми:
# In ~/.hermes/.envTELEGRAM_ALLOWED_USERS=123456789,987654321,555555555
Перезапустите шлюз после изменений:
hermesgatewaystop&&hermesgatewaystart
Подход Б: Объединение DM (рекомендуется для команд)
Сопряжение DM более гибкое — вам не нужно заранее собирать идентификаторы пользователей. Вот как это работает:
Товарищ по команде отправляет боту личное сообщение — поскольку его нет в белом списке, бот отвечает одноразовым кодом сопряжения:
🔐 Pairing code: XKGH5N7P
Send this code to the bot owner for approval.
Командник отправляет вам код (по любому каналу — Slack, по электронной почте, лично).
Вы подтверждаете это на сервере:
bash
hermes pairing approve telegram XKGH5N7P
Они здесь — бот сразу начинает отвечать на их сообщения.
Управление парными пользователями:
# See all pending and approved users
hermespairinglist
# Revoke someone's access
hermespairingrevoketelegram987654321# Clear expired pending codes
hermespairingclear-pending
:::совет
Сопряжение DM идеально подходит для команд, поскольку вам не нужно перезапускать шлюз при добавлении новых пользователей. Одобрения вступают в силу немедленно.
Вопросы безопасности
Никогда не устанавливайте GATEWAY_ALLOW_ALL_USERS=true для бота с терминальным доступом — любой, кто найдет вашего бота, сможет запускать команды на вашем сервере.
Срок действия кодов сопряжения истекает через 1 час и используется криптографическая случайность.
Ограничение скорости предотвращает атаки методом перебора: 1 запрос на пользователя за 10 минут, максимум 3 ожидающих кода на платформу.
После 5 неудачных попыток утверждения платформа блокируется на 1 час.
Все данные сопряжения хранятся с разрешениями chmod 0600.
Шаг 5: Настройте бота
Установите домашний канал
Домашний канал — это место, где бот доставляет результаты заданий cron и упреждающие сообщения. Без него запланированным задачам некуда отправлять выходные данные.
Вариант 1. Используйте команду /sethome в любой группе или чате Telegram, участником которого является бот.
Вариант 2: Установите его вручную в ~/.hermes/.env:
# Soul
You are a helpful team assistant. Be concise and technical.
Use code blocks for any code. Skip pleasantries — the team
values directness. When debugging, always ask for error logs
before guessing at solutions.
Добавить контекст проекта
Если ваша команда работает над конкретными проектами, создайте контекстные файлы, чтобы бот знал ваш стек:
<!-- ~/.hermes/AGENTS.md -->
# Team Context-We use Python 3.12 with FastAPI and SQLAlchemy
-Frontend is React with TypeScript
-CI/CD runs on GitHub Actions
-Production deploys to AWS ECS
-Always suggest writing tests for new code
:::информация
Контекстные файлы вводятся в системное приглашение каждого сеанса. Будьте краткими — каждый персонаж учитывается в вашем бюджете токенов.
Шаг 6. Настройте запланированные задачи
При работающем шлюзе вы можете планировать повторяющиеся задачи, которые доставляют результаты в канал вашей команды.
Агент автоматически создает задание cron и отправляет результаты в чат, куда вы запросили (или на домашний канал).
Проверка работоспособности сервера
Every 6 hours, check disk usage with 'df -h', memory with 'free -h',
and Docker container status with 'docker ps'. Report anything unusual —
partitions above 80%, containers that have restarted, or high memory usage.
Управление запланированными задачами
# From the CLI
hermescronlist# View all scheduled jobs
hermescronstatus# Check if scheduler is running# From Telegram chat
/cronlist# View jobs
/cronremove<job_id># Remove a job
:::предупреждение
Запросы заданий Cron запускаются в совершенно новых сеансах, без памяти о предыдущих разговорах. Убедитесь, что каждое приглашение содержит весь контекст, необходимый агенту: пути к файлам, URL-адреса, адреса серверов и четкие инструкции.
Советы по производству
Используйте Docker для безопасности
В общем командном боте используйте Docker в качестве серверной части терминала, чтобы команды агента выполнялись в контейнере, а не на вашем хосте:
# In ~/.hermes/.envTERMINAL_BACKEND=docker
TERMINAL_DOCKER_IMAGE=nikolaik/python-nodejs:python3.11-nodejs20
Таким образом, даже если кто-то попросит бота запустить что-то разрушительное, ваша хост-система будет защищена.
Мониторинг шлюза
# Check if the gateway is running
hermesgatewaystatus
# Watch live logs (Linux)
journalctl--user-uhermes-gateway-f
# Watch live logs (macOS)
tail-f~/.hermes/logs/gateway.log
Держите Гермес в курсе
Из Telegram отправьте боту /update — он подтянет последнюю версию и перезагрузится. Или с сервера: