Агент Гермес интегрируется с Matrix — открытым федеративным протоколом обмена сообщениями. Matrix позволяет вам запускать небольшой домашний сервер или использовать общедоступный, например, Matrix.org — в любом случае вы сохраните контроль над своими сообщениями. Бот используется через Python SDK mautrix, обрабатывает сообщения через конвейер Hermes Agent (включая использование инструментов, память и рассуждения) и отвечает в кратчайшие сроки. Он поддерживает текст, файлы приложений, изображения, аудио, видео и опциональное сквозное шифрование (E2EE).
Hermes работает с любым домашним сервером Matrix — Synapse, Conduit, Dendrite или Matrix.org.
Перед настройкой вот та часть, которую большинство людей хотят знать: как Гермес ведет себя после подключения.
Как Гермес себя ведёт
Контекст
Поведение
Личные сообщения
Гермес отвечает за каждое сообщение. Упоминание через @ не требуется. Каждое личное сообщение имеет свою сессию. Установите MATRIX_DM_MENTION_THREADS=true, чтобы создать ветку при упоминании бота через @ в личных сообщениях.
Комнаты
По умолчанию Гермес требует упоминания через @ для ответа. Установите MATRIX_REQUIRE_MENTION=false или добавьте идентификатор комнаты в MATRIX_FREE_RESPONSE_ROOMS для комнаты со свободным ответом. Приглашения в комнаты принимаются автоматически.
Ветки
Подставки Hermes ветки Matrix (MSC3440). Если вы отвечаете на ветку, Hermes изолирует контекст ветки от основного временного показателя комнаты. Ветки, в которых бот уже участвовал, не требуют упоминаний.
Автоматическое создание веток
По умолчанию Гермес автоматически создает ветку для каждого сообщения, которая отвечает в комнате. Это изолирует разговоры. Установите MATRIX_AUTO_THREAD=false, чтобы отключить.
Общие комнаты с несколькими пользователями
По умолчанию Гермес изолирует историю сеанса для каждого пользователя внутри комнаты. Два человека, разговаривающие в одной комнате, не делят одну стенограмму, если вы явно не отключите ее.
Бот автоматически присоединяется к комнатам по приглашению. Просто пригласите пользователя бота Matrix в любую комнату, и он присоединится и начнёт есть.
### Модель сессии в Матрице
По умолчанию:
каждое личное сообщение получает свою сессию
Ваша ветка получает свое пространство имён сессии
Каждый пользователь в общей комнате получает свою сессию внутри этой комнаты.
Это контролируется в config.yaml:
group_sessions_per_user:true
Установите «false», только если вы явно хотите один общий разговор для всей комнаты:
group_sessions_per_user:false
Общее заседание может быть полезно для совместной работы в зале, но также означают:
пользователи делят рост контекста и затраты на токены
длительная задача с большим количеством инструментов, один пользователь может раздуть контекст для всех остальных
выполняющийся запуск одного пользователя может прервать следующее сообщение другого в той же комнате
Конфигурация упоминаний и веток
Вы можете использовать дублирование и создание рук через переменное окружение или config.yaml:
matrix:require_mention:true# Требовать @упоминание в комнатах (по умолчанию: true)free_response_rooms:# Комнаты, освобождённые от требования упоминания-"!abc123:matrix.org"auto_thread:true# Автоматически создавать ветки для ответов (по умолчанию: true)dm_mention_threads:false# Создавать ветку при @упоминании в личных сообщениях (по умолчанию: false)
Или через переменные окружения:
MATRIX_REQUIRE_MENTION=trueMATRIX_FREE_RESPONSE_ROOMS=!abc123:matrix.org,!def456:matrix.org
MATRIX_AUTO_THREAD=trueMATRIX_DM_MENTION_THREADS=falseMATRIX_REACTIONS=true# по умолчанию: true — реакции эмодзи во время обработки```<divclass="admonition admonition-tip"><pclass="admonition-title">💡Tip</p>Отключениесвета
`MATRIX_REACTIONS=false`отключаетРежимэмодзижизненногоциклаобработки(👀/✅/❌),которыйботпубликуетвовходящихсообщениях.Полезнодлякомнат,гдесобытиясоздаютшумилинеобращаютвниманиянавсехприсутствующихклиентов.::::::примечание
Есливыобновляетесьсверсией,вкоторойнебыло`MATRIX_REQUIRE_MENTION`,предварительнопроверьтевсесообщениявкомнатах.Чтобыубедитьсявэтом,установите`MATRIX_REQUIRE_MENTION=false`.</div>
Эторуководствопроведетвасчерезвесьпроцесснастройки—отсозданияучетнойзаписиботадоотправкипервогосообщения.
## Шаг 1: Создайте учётную запись бота
ВамнужнаучётнаязаписьпользователяMatrixдлябота.Естьнесколькоспособовэтосделать:
### Вариант A: Зарегистрируйтесь на своем домашнем сервере (рекомендуется)
Есливызапускаетесвойдомашнийсервер(синапс,канал,дендрит):
1.ВоспользуйтесьAPIадминистратораилиинструментомрегистрациидлясозданияновогопользователя:
```bash
# Пример для Synapse
register_new_matrix_user-c/etc/synapse/homeserver.yamlhttp://localhost:8008
Выберите имя пользователя, например hermes — полный идентификатор пользователя будет @hermes:your-server.org.
Вариант B: Используйте Matrix.org или другой публичный домашний сервер
Перейдите в Element Web и создайте новую учётную запись.
Выберите имя пользователя для вашего бота (например, hermes-bot).
Вариант C: Используйте свою собственную учётную запись
Вы также можете запустить Hermes от имени своего пользователя. Это означает, что бот публикует сообщения от вашего имени — полезно для финансовых ассистентов.
Шаг 2: Получение токена доступа
Гермесу нужен токен доступа для аутентификации на домашнем пространстве. У вас есть два телефона:
Вариант A: Доступ к токену (рекомендуется)
Самый надёжный способ получить токен:
Через Элемент:
1. Войдите в Element с учётной записью бота.
2. Перейдите в ** Настройки → Справка и о программе.
3. Прокрутите вниз и разверните Дополнительно — там отображается токен доступа.
4. Скопируйте его немедленно.**
Ответ содержит поле access_token — скопируйте его.:::предупреждение[Храните токен доступа в безопасность]
Токен доступа предоставляет полный доступ к учетной записи бота Matrix. Никогда не делитесь им публично и не сохраняйте в Git. В случае компрометации отзовите его, выйдя из всех сессий для этого пользователя.
Вариант Б: Вход по паролю
Вместо предоставления токена доступа вы можете указать идентификатор пользователя Hermes и пароль бота. Гермес автоматически войдёт в систему при запуске. Это проще, но означает, что пароль хранится в вашем файле .env.
Агент Гермес использует ваш идентификатор пользователя Matrix для контроля того, кто может взаимодействовать с ботом. Идентификатор пользователя Matrix имеет формат @имя:сервер.
Чтобы найти свой:
Откройте Element (или предпочитаемую вами клиентскую матрицу).
Нажмите на свой аватар → ** Настройки**.
Ваш идентификатор пользователя отображается вверху профиля (например, @alice:matrix.org).:::совет
Идентификатор пользователя Matrix всегда начинается с @ и содержит :, за которым следует имя сервера. Например: @alice:matrix.org, @bob:your-server.com.
Шаг 4: Настраиваем агент Гермес
Вариант A: Интерактивная настройка (рекомендуется)
Запустите команду пошаговой настройки:
hermesgatewaysetup
При получении запроса выберите Matrix, затем укажите URL-адрес домашнего сервера, токен доступа (или идентификатор пользователя + пароль) и разрешенные идентификаторы пользователей.
Вариант Б: Ручная настройка
Добавьте следующий файл ~/.hermes/.env:
При использовании токена доступа:
# ОбязательноMATRIX_HOMESERVER=https://matrix.example.org
MATRIX_ACCESS_TOKEN=***
# Опционально: ID пользователя (автоматически определяется из токена, если опущен)# MATRIX_USER_ID=@hermes:matrix.example.org# Безопасность: ограничьте, кто может взаимодействовать с ботомMATRIX_ALLOWED_USERS=@alice:matrix.example.org
# Несколько разрешённых пользователей (через запятую)# MATRIX_ALLOWED_USERS=@alice:matrix.example.org,@bob:matrix.example.org
Дополнительные настройки поведения в ~/.hermes/config.yaml:
group_sessions_per_user:true
group_sessions_per_user: true изолирует контекст каждой группы внутри общей комнаты.
Запустить шлюз
После настройки запустите шлюз Matrix:
hermesgateway
Бот должен подключиться к вашему домашнему серверу и начать синхронизацию в течение нескольких секунд. Отправьте ему сообщение — либо в личные сообщения, либо в комнату, к которой он присоединился, — чтобы протестовать.:::совет
Вы можете активировать «шлюз Гермеса» в фоновом режиме или как сервис systemd для постоянной работы. Подробнее см. в документации по развёртыванию.
Сквозное шифрование (E2EE)
Гермес поддерживает сквозное шифрование Матрицы, поэтому вы можете общаться с ботом в зашифрованных комнатах.
Требования
E2EE требует наличия библиотеки mautrix с расширениями для шифрования и C-библиотеки libolm:
# Установите mautrix с поддержкой E2EE
pipinstall'mautrix[encryption]'# Или установите с расширениями hermes
pipinstall'hermes-agent[matrix]'
Также необходимо установить libolm в вашей системе:
Хранить ключи шифрования в ~/.hermes/platforms/matrix/store/ (для старых настроек: ~/.hermes/matrix/store/)
Загружает ключи устройства при первом подключении.
Автоматически расшифровывает входящие сообщения и шифрует исходящие.
Автоматически при подключении к зашифрованным комнатам при приглашении
Проверка перекрёстной почты (рекомендуется)
Если в вашу учётную запись Matrix включена перекрёстная подпись (по умолчанию в Element), установите ключ восстановления, чтобы бот мог подписать это устройство при запуске. Без этого другие клиенты Matrix могут делиться сессиями шифрования с ботом после ротации переключателя устройства.
MATRIX_RECOVERY_KEY=EsT...вашключвосстановления
Где найти: В элементе измерения в ** Настройки → Безопасность и конфиденциальность → Шифрование** → ваш ключ восстановления (также называется «Ключ безопасности»). Этот ключ, который вы просили сохранить при первой настройке перекрёстной загрузки.
При каждом запуске, если установлен MATRIX_RECOVERY_KEY, Hermes импортирует ключи перекрёстной загрузки из защищённого хранилища секретов домашнего сервера и подписывает текущее устройство. Это идемпотентно и безопасно обеспечивает постоянное включение.
⚠️ Warning
[Удаление хранилища криптографии]
Если вы удалите ~/.hermes/platforms/matrix/store/crypto.db, бот потеряет свою шифровальную идентичность. Простой перезапуск с тем же идентификатором устройства не приводит к полностью восстановленному — домашний сервер ещё всё хранит одноразовые ключи, подписанные старым ключом идентичности, и пиры не могут установить новый сеанс Olm.
Гермес обнаруживает это состояние при запуске и отказывается включать E2EE, записывая в журнал: устройство XXXX имеет устаревшие одноразовые ключи на сервере, подписанные предыдущим идентификационным ключом.
Самый простой способ восстановления: сгенерировать новый токен доступа (который дает новый идентификатор устройства без сохранения конфиденциальных ключей). См. раздел «Обновление с предыдущей версией с E2EE» ниже. Это самый надёжный путь и позволяет избежать изменений базы данных домашнего сервера.
Ручное восстановление (продвинутый — сохранить тот же ID устройства):
Остановите Synapse и удалите старое устройство из его базы данных:
bash
sudo systemctl stop matrix-synapse
sudo sqlite3 /var/lib/matrix-synapse/homeserver.db "
DELETE FROM e2e_device_keys_json WHERE device_id = 'DEVICE_ID' AND user_id = '@hermes:your-server';
DELETE FROM e2e_one_time_keys_json WHERE device_id = 'DEVICE_ID' AND user_id = '@hermes:your-server';
DELETE FROM e2e_fallback_keys_json WHERE device_id = 'DEVICE_ID' AND user_id = '@hermes:your-server';
DELETE FROM devices WHERE device_id = 'DEVICE_ID' AND user_id = '@hermes:your-server';
"
sudo systemctl start matrix-synapse
Или через API администратора Synapse (обратите внимание на URL-кодированный идентификатор пользователя):
bash
curl -X DELETE -H "Authorization: Bearer ADMIN_TOKEN" \
'https://your-server/_synapse/admin/v2/users/%40hermes%3Ayour-server/devices/DEVICE_ID'
Примечание: удаление устройства через API администратора также может аннулировать связанный токен доступа. Возможно, потребуется создать новый токен.
Удалите локальное хранилище криптографии и перезапустите Hermes:
bash
rm -f ~/.hermes/platforms/matrix/store/crypto.db*
# перезапустите hermes
Другие клиенты Matrix (Element, Matrix-Commander) могут кэшировать старые ключи устройства. После восстановления введите /discardsession в Element, чтобы создать новую сессию шифрования с ботом.::::::информация
Если mautrix[encryption] не установлен или отсутствует libolm, бот автоматически переключается на обычный (незашифрованный) клиент. В логах готовится предупреждение.
Домашняя комната
Вы можете назначить «домашнюю комнату», куда бот будет отправлять проактивные сообщения (например, вывод задач cron, напоминания и уведомления). Есть два пути ее установки:
Использование слэш-команды
Введите /sethome в любой комнате Matrix, где присутствует бот. Эта комната становится уютной.
Ручная настройка
Добавьте это в ~/.hermes/.env:
MATRIX_HOME_ROOM=!abc123def456:matrix.example.org
```:::совет
ЧтобынайтиIDкомнаты:вэлементеизмерениявкомнате→**Настройки**→**Дополнительно**→**ВнутреннийIDкомнаты**отображаетсятам(начинаетсяс`!`).</div>
## Устранение неполадок### Бот не отвечает на сообщения
**Причина**:Ботнеприсоединилсяккомнате,или`MATRIX_ALLOWED_USERS`невключаетвашидентификаторпользователя.
**Решение**:Пригласитеботавкомнату—онавтоматическиприсоединяетсяпоприглашению.Убедитесь,чтовашидентификаторпользователяестьв`MATRIX_ALLOWED_USERS`(используйтеполныйформат`@user:server`).Перезапуститешлюз.
### «Ошибка аутентификации» / «Ошибка whoami» при запуске
**Причина**:НеверныйтокендоступаилиURL-адресдомашнегосервера.
**Решение**:проверьте,что`MATRIX_HOMESERVER`указываетнавашемдомашнемсервере(включая`https://`,беззавершающегослеша).Убедитесь,что`MATRIX_ACCESS_TOKEN`действителен—формасзавитком:
```bash
curl-H"Authorization: Bearer YOUR_TOKEN"\https://your-server/_matrix/client/v3/account/whoami
Если это вернет информацию о вашем пользователе, токен действителен. В случае ошибки создайте новый токен.
Ошибка «Маутрикс не установлен»
Причина: Пакет Python mautrix не установлен.
Решение: Установите его:
pipinstall'mautrix[encryption]'
Или с расширениями Hermes:
pipinstall'hermes-agent[matrix]'
Ошибки шифрования / "не удалось расшифровать событие"
Причина: Отсутствуют ключи шифрования, не установлен libolm или бота на устройстве не проверена.
Решение:
1. Убедитесь, что в вашей системе установлен libolm (см. раздел E2EE выше).
2. Убедитесь, что MATRIX_ENCRYPTION=true создан в вашем .env.
3. В вашем клиенте Матрица (Элемент) посмотрите в профиле бота -> Сессии -> подтвердите/доверьте устройство бота.
4. Если бот только что присоединился к зашифрованной комнате, он может расшифровать только сообщения, отправленные после его присоединения. Отсутствуют более старые сообщения.
Обновление с предыдущей версии с E2EE:::совет
Если вы также вручную удалили crypto.db, см. предупреждение «Удаление хранилища криптографии» в разделе E2EE — есть еще дополнительные шаги по очистке устаревших одноразовых ключей с верхнего домашнего сервера.
Если вы ранее использовали Hermes с MATRIX_ENCRYPTION=true и обновляетесь до версии, используете новую криптографию хранилища на основе SQLite, идентичность шифрования бота изменилась. Ваш клиент Matrix (Element) может кэшировать старые ключи устройства и делиться сессиями шифрования с ботом.
Симптомы: Бот случайно и показывает «E2EE включен» в логах, но все сообщения отображают «не удалось расшифровать событие», и бот никогда не отвечает.
Что происходит: Старое состояние шифрования (от преобразования бэкенда matrix-nio или сериализационного mautrix) несовместимо с новыми хранилищами криптографии SQLite. Бот создаёт новую идентичность шифрования, но ваш клиент Matrix ещё всё имеет кэшированные старые ключи и не хочет делиться сессией шифрования комнаты с аккаунтом, чьи ключи изменились. Эта функция безопасности Matrix — клиенты считают изменённые ключи идентичности для тех же устройств подозрительными.
Решение (однократная миграция):
Сгенерируйте новый токен доступа, чтобы получить новый идентификатор устройства. Самый простой способ:
bash
curl -X POST https://your-server/_matrix/client/v3/login \
-H "Content-Type: application/json" \
-d '{
"type": "m.login.password",
"identifier": {"type": "m.id.user", "user": "@hermes:your-server.org"},
"password": "***",
"initial_device_display_name": "Hermes Agent"
}'
Скопируйте новый access_token и обновите MATRIX_ACCESS_TOKEN в ~/.hermes/.env.
Удалите старое состояние шифрования:
bash
rm -f ~/.hermes/platforms/matrix/store/crypto.db
rm -f ~/.hermes/platforms/matrix/store/crypto_store.*
Установите ключ восстановления (если вы используете перекрёстную подпись — большинство пользователей Element ее используют). Добавьте в ~/.hermes/.env:
bash
MATRIX_RECOVERY_KEY=EsT... ваш ключ восстановления
Это позволяет боту закрывать ключи перекрёстной покупкой при запуске, так что Element сразу доверяет новому устройству. Без этого Element может считать новое устройство непроверенным и иметь долю сессий шифрования. Найдите ключ восстановления в Element: ** Настройки → Безопасность и конфиденциальность → Шифрование**.
Заставьте свой клиент Matrix сменить сессию шифрования. В элементе пропускания личные сообщения с ботом и введите /discardsession. Это заставит Element создать новую сессию шифрования и поделиться ею с новым устройством бота.
Перезапустите шлюз:
bash
hermes gateway run
Если установлен MATRIX_RECOVERY_KEY, вы должны просмотреть журналы Matrix: перекрестная подпись проверена с помощью ключа восстановления.
Отправить новое сообщение. Бот должен расшифровать и ответить нормально.:::примечание
После отправки сообщений, отправленные до обновления, не могут быть расшифрованы — старые ключи шифрования удалены. Это затрагивает только переходный период; новые сообщения работают нормально.::::::совет
Новые установки не затрагиваются. Эта миграция нужна только в том случае, если у вас была рабочая настройка E2EE с предыдущей версией Hermes и вы обновляетесь.
Почему новый токен доступа? Каждый токен доступа Matrix соответствует конкретному идентификатору устройства. Повторное использование того же идентификатора устройства с новыми ключами шифрования позволяет другим клиентам Matrix не доверять устройству (они показывают изменённые ключи идентичности в качестве защиты нарушения безопасности). Новый токен доступа дает новое удостоверение личности устройства без сохранения конфиденциальных ключей, поэтому другие клиенты сразу же доверяют ему.
Режим прокси (E2EE на macOS)
Matrix E2EE требует libolm, который не компилируется в macOS ARM64 (Apple Silicon). Расширение hermes-agent[matrix] ограничено только Linux. Если вы используете macOS, режим прокси позволяет запустить E2EE в Docker-контейнере на виртуальной машине Linux, в то время как фактический агент работает изначально на macOS с полным доступом к вашим локальным файлам, памяти и навыкам.
Как это работает
macOS (Хост):
└─ hermes gateway
├─ api_server адаптер ← слушает на 0.0.0.0:8642
├─ AIAgent ← единый источник правды
├─ Сессии, память, навыки
└─ Локальный доступ к файлам (Obsidian, проекты и т.д.)
Linux VM (Docker):
└─ hermes gateway (режим прокси)
├─ Matrix адаптер ← расшифровка/шифрование E2EE
└─ HTTP-пересылка → macOS:8642/v1/chat/completions
(никаких ключей API LLM, никакого агента, никакого вывода)
Docker-контейнер обрабатывает только протокол Matrix + E2EE. Когда приходит сообщение, он расшифровывает его и пересылает текст на хост через стандартный HTTP-запрос. Хост запускает агента, предъявляет инструменты, последовательно отвечает и передаёт его обратно. Контейнер шифрует и отправляет ответ в Matrix. Все сессии унифицированы — CLI, Matrix, Telegram и любая другая платформа делят одну и ту же память и историю разговоров.
Шаг 1: Настройка хоста (macOS)
Включите API сервера, чтобы хост принимал запросы от Docker-контейнера.
API_SERVER_HOST=0.0.0.0 привязывает ко всем интерфейсам, чтобы Docker-контейнер мог до него добраться.
API_SERVER_KEY требуется для привязки не к локальному интерфейсу. Выберите надёжную случайную букву.
Серверный API работает на порту 8642 по умолчанию (изменить с помощью API_SERVER_PORT при необходимости).
Запустите шлюз:
hermesgateway
Вы должны увидеть запуск API сервера вместе с любыми другими настроенными платформами. Проверьте, что он доступен из ВМ:
# Из Linux VM
curlhttp://<mac-ip>:8642/health
Шаг 2: Настройка Docker-контейнера (Linux VM)
Контейнеру нужны учётные данные Matrix и URL-прокси. НЕ нужны ключи API LLM.
docker-compose.yml:
services:hermes-matrix:build:.environment:# Учётные данные MatrixMATRIX_HOMESERVER:"https://matrix.example.org"MATRIX_ACCESS_TOKEN:"syt_..."MATRIX_ALLOWED_USERS:"@you:matrix.example.org"MATRIX_ENCRYPTION:"true"MATRIX_DEVICE_ID:"HERMES_BOT"# Режим прокси — пересылка на хост-агентаGATEWAY_PROXY_URL:"http://192.168.1.100:8642"GATEWAY_PROXY_KEY:"ваш-секретный-ключ-здесь"volumes:-./matrix-store:/root/.hermes/platforms/matrix/store
Это весь контейнер. Никаких ключей API для OpenRouter, Anthropic или любого другого провайдера вывода.
Шаг 3: Запустите оба
Сначала запустите хост-шлюз:
bash
hermes gateway
Запустите Docker-контейнер:
bash
docker compose up -d
Отправьте сообщение в зашифрованную комнату Matrix. Контейнер расшифровывает его, пересылает на хост и передаёт ответ обратно.
Справочник конфигурации
Режим прокси настраивается на стороне контейнера (тонкий шлюз):
Настройка
Описание
GATEWAY_PROXY_URL
URL удалённого сервера API Hermes (например, http://192.168.1.100:8642)
GATEWAY_PROXY_KEY
Bearer-токен для аутентификации (должен совпадать с API_SERVER_KEY на хосте)
gateway.proxy_url
То же, что GATEWAY_PROXY_URL, но в config.yaml
На стороне хоста нужно:
Настройка
Описание
API_SERVER_ENABLED
Установите true
API_SERVER_KEY
Bearer-токен (общий с контейнером)
API_SERVER_HOST
Установите 0.0.0.0 для доступа по сети
API_SERVER_PORT
Номер порта (по умолчанию: 8642)
Работает для любой платформы
Режим прокси не ограничен Matrix. Любой адаптер платформы может его использовать — установите GATEWAY_PROXY_URL на любом экземпляре шлюза, и он будет пересылать запросы удалённому агенту вместо запуска локального. Это полезно для любых развёртываний, где адаптер платформы должен работать в среде, отличной от агента (сетевая изоляция, требования E2EE, ограничения ресурсов).
💡 Tip
Непрерывность сессии поддерживается через заголовок X-Hermes-Session-Id. Сервер API хоста отслеживает сессии по этому ID, поэтому разговоры сохраняются между сообщениями так же, как и с локальным агентом.:::
📝 Note
Ограничения (v1): Сообщения о прогрессе инструментов от удалённого агента не передаются обратно — пользователь видит только потоковый финальный ответ, а не отдельные вызовы инструментов. Запросы на подтверждение опасных команд обрабатываются на стороне хоста, не передаются пользователю Matrix. Это может быть исправлено в будущих обновлениях.
Проблемы синхронизации / бот отстаёт
Причина: Долгие выполнения инструментов могут задерживать цикл синхронизации, или домашний сервер медленный.
Решение: Цикл синхронизации автоматически повторяется каждые 5 секунд при ошибке. Проверьте логи Hermes на предмет предупреждений, связанных с синхронизацией. Если бот постоянно отстаёт, убедитесь, что ваш домашний сервер имеет достаточные ресурсы.
Бот не в сети
Причина: Шлюз Hermes не запущен, или не удалось подключиться.
Решение: Проверьте, работает ли hermes gateway. Посмотрите вывод терминала на наличие сообщений об ошибках. Частые проблемы: неверный URL домашнего сервера, истёкший токен доступа, домашний сервер недоступен.
"User not allowed" / Бот игнорирует вас
Причина: Ваш ID пользователя отсутствует в MATRIX_ALLOWED_USERS.
Решение: Добавьте свой ID пользователя в MATRIX_ALLOWED_USERS в ~/.hermes/.env и перезапустите шлюз. Используйте полный формат @user:сервер.
Безопасность
⚠️ Warning
Всегда устанавливайте MATRIX_ALLOWED_USERS, чтобы ограничить круг лиц, которые могут взаимодействовать с ботом. Без этого шлюз по умолчанию запрещает доступ всем пользователям в качестве меры безопасности. Добавляйте только ID пользователей, которым вы доверяете, — авторизованные пользователи имеют полный доступ к возможностям агента, включая использование инструментов и доступ к системе.
Для получения дополнительной информации о безопасности развёртывания Hermes Agent см. Руководство по безопасности.
Примечания
Любой домашний сервер: Работает с Synapse, Conduit, Dendrite, matrix.org или любым совместимым со спецификацией домашним сервером Matrix. Специальное программное обеспечение домашнего сервера не требуется.
Федерация: Если вы на федеративном домашнем сервере, бот может общаться с пользователями с других серверов — просто добавьте их полные ID @user:сервер в MATRIX_ALLOWED_USERS.
Авто-вход: Бот автоматически принимает приглашения в комнаты и присоединяется. Он начинает отвечать сразу после присоединения.
Поддержка медиа: Hermes может отправлять и получать изображения, аудио, видео и вложения файлов. Медиа загружается на ваш домашний сервер через API репозитория контента Matrix.
Нативные голосовые сообщения (MSC3245): Адаптер Matrix автоматически помечает исходящие голосовые сообщения флагом org.matrix.msc3245.voice. Это означает, что ответы TTS и голосовое аудио отображаются как нативные голосовые пузырьки в Element и других клиентах, поддерживающих MSC3245, а не как обычные аудио-вложения. Входящие голосовые сообщения с флагом MSC3245 также правильно идентифицируются и направляются на транскрипцию речи в текст. Никакой дополнительной настройки не требуется — это работает автоматически.