← На главную

Опубликовано

Hermes Agent - настройка Telegram и постинг в канал

Автор: Гусев Николай [портфолио]

Темы: ai-agents, llm-api, vision

У Hermes Agent есть встроенный шлюз для Telegram. Подключается за пару минут, а дальше можно общаться с агентом из любого чата. Рассказываю, как настроить.

Шаг 1. Создаём бота

Открываете @BotFather, команда /newbot. Придумываете имя - получаете токен вида 123456:ABCdef. Всё.

Шаг 2. Подключаем к агенту

На сервере с Hermes Agent запускаете мастер:

`hermes gateway setup`

Выбираете Telegram, вводите токен бота и свой Telegram User ID (узнать - @userinfobot). Мастер сам пропишет всё в конфиг.

Запускаете шлюз:

`hermes gateway`

Можно установить как сервис:

`sudo hermes gateway install --system`

Шаг 3. Канал для постов

Создаёте канал, добавляете бота администратором с правом публикации. Теперь агент может постить в канал через send_message с chat_id канала.

chat_id канала - отрицательное число, узнать можно через @get_id_bot: пересылаете любое сообщение из канала - бот показывает ID.

Шаг 4. Постинг с картинками (история одной боли)

Вот тут начинается самое интересное. Когда агент отправляет пост с картинкой, используется формат MEDIA:/путь/к/файлу в начале сообщения. Казалось бы.

На практике Hermes отправляет ДВА сообщения:

    1. Текст (sendMessage)
    1. Картинку (sendPhoto без caption)

Вместо одного - фото с текстом-подписью (sendPhoto с caption).

Мы полезли в исходники, нашли причину (файл tools/send_message_tool.py, функция _send_telegram), пропатчили - добавили caption к sendPhoto. Тест в канал показал... что патч не взлетел. То ли кеш, то ли перезапуск не тот, то ли руки не оттуда.

Итог: автор этого канала сдался и будет редактировать посты руками. Фото добавлять - через редактирование уже опубликованного поста. Это занимает 10 секунд, а не 2 часа дебага Telegram Bot API.

Мораль: иногда проще сделать руками, чем чинить автоматизацию. Особенно когда автоматизация чинится через патчи в продакшн-коде на коленке.

Что ещё можно

Через Telegram-шлюз агент не только отвечает на сообщения, но и:

  • Принимает голосовые сообщения (автоматическая транскрибация)

  • Отправляет результаты cron-задач

  • Работает в групповых чатах

  • Понимает команды /new, /model, /retry, /status


🌐 hermes-agent.ru - сайт проекта

Есть вопросы по настройке? Напишите в контакты на сайте - поможем.