Matrix — децентрализованная сеть для чатов
Matrix — Decentralized Chat Network — easy-to-understand guide based on official docs
Matrix — децентрализованная сеть для чатов
Если вы когда-нибудь хотели чат-сеть, где вы не привязаны к чужому серверу, Matrix — это ответ. Это открытый федеративный протокол обмена сообщениями — представьте себе email, но для мгновенных сообщений. Вы можете запустить свой собственный homeserver или использовать публичный, например matrix.org. В любом случае, вы контролируете свои разговоры.
Hermes Agent подключается к Matrix напрямую через Python SDK mautrix. Это значит, что ваш бот может общаться с вами через Matrix, используя все те же возможности Hermes, которые вы знаете и любите — использование инструментов, память, рассуждения и ответы в реальном времени. Он поддерживает текст, файлы, изображения, аудио, видео и даже опциональное сквозное шифрование (E2EE).
И вот что самое лучшее: Hermes работает с любым homeserver’ом Matrix. Synapse, Conduit, Dendrite или большой публичный на matrix.org — выбирайте на свой вкус.
Как ведёт себя Hermes
После подключения у Hermes есть разумные настройки по умолчанию. Вот краткий обзор:
| Контекст | Поведение |
|---|---|
| Личные сообщения (DM) | Hermes отвечает на каждое сообщение. Не нужно упоминать его через @. Для каждого DM создаётся отдельная сессия. |
| Комнаты | По умолчанию Hermes ждёт упоминания через @, прежде чем ответить. Вы можете изменить это с помощью MATRIX_REQUIRE_MENTION=false или добавить конкретные комнаты в MATRIX_FREE_RESPONSE_ROOMS. Приглашения в комнаты принимаются автоматически. |
| Треды | Hermes полностью поддерживает треды Matrix. Ответьте в треде — и Hermes будет держать этот контекст отдельно от основной ленты комнаты. В тредах, где бот уже участвовал, упоминание не требуется. |
| Авто-треды | По умолчанию Hermes автоматически создаёт тред для каждого ответа в комнате. Это сохраняет беседы аккуратными и изолированными. Отключите с помощью MATRIX_AUTO_THREAD=false. |
| Команды | Обычные /commands работают как положено. Если ваш клиент резервирует / для локальных команд, просто используйте !commands — Hermes автоматически нормализует эти алиасы. |
| Интерактивные элементы управления | Одобрения для опасных команд и выбор /model могут использовать реакции Matrix. Вы даже можете ограничить реакции одобрения только тем пользователем, который запросил действие. |
| Мышление и активность инструментов | Hermes использует треды с редактируемыми панелями для мышления и активности инструментов, когда включён прогресс шлюза. Больше никакого спама в основной ленте обновлениями. |
| Общие комнаты | По умолчанию Hermes изолирует историю сессий для каждого пользователя в комнате. Два человека в одной комнате не делят один транскрипт, если вы явно это не отключите. |
Совет: Просто пригласите Matrix-пользователя бота в любую комнату, и он присоединится и начнёт отвечать автоматически.
Что Hermes умеет в Matrix
Вот полный список возможностей, прямо из описания адаптера:
- Текст — да
- Треды — да
- Реакции — да
- Одобрения — да
- Выбор модели — да
- Панели мышления — да
- Изображения — да (включая несколько изображений)
- Файлы — да
- Голос/аудио — да
- Видео — да
- E2EE — выкл / опционально / обязательно (на основе режима)
- Диагностика — да
Модель сессий в Matrix
По умолчанию Hermes аккуратно разделяет всё:
- Каждый DM получает свою сессию
- Каждый тред получает своё пространство имён сессии
- Каждый пользователь в общей комнате получает свою сессию внутри этой комнаты
Это контролируется в config.yaml:
group_sessions_per_user: true
Установите false только если вы явно хотите один общий разговор для всей комнаты:
group_sessions_per_user: false
Общие сессии могут быть полезны для совместной комнаты, но будьте осторожны: пользователи делят рост контекста и затраты на токены, одна длинная задача с инструментами одного человека может раздуть контекст всех остальных, а выполняющийся запуск одного человека может прервать ответ другого.
Конфигурация упоминаний и тредов
Вы можете настроить всё через переменные окружения или config.yaml. Вот версия в YAML:
matrix:
require_mention: true # Требовать @упоминание в комнатах (по умолчанию: true)
allowed_users: # Пользователи Matrix, которым разрешено запускать действия агента
- "@alice:matrix.org"
allowed_rooms: # Комнаты Matrix, в которых разрешено запускать действия агента
- "!abc123:matrix.org"
free_response_rooms: # Комнаты, освобождённые от требования упоминания
- "!abc123:matrix.org"
ignore_user_patterns: # Призрачные пользователи мостов/appservice, которых нужно игнорировать
- "^@telegram_"
- "^@whatsapp_"
process_notices: false # Игнорировать m.notice по умолчанию
session_scope: room # auto|room|thread; room рекомендуется для проектных комнат
auto_thread: true # Автоматически создавать треды для ответов (по умолчанию: true)
dm_mention_threads: false # Создавать тред при @упоминании в DM (по умолчанию: false)
max_message_length: 16000 # Размер исходящего чанка в символах (по умолчанию: 16000, макс: 65535)
Или через переменные окружения:
MATRIX_REQUIRE_MENTION=true
MATRIX_ALLOWED_USERS=@alice:matrix.org
MATRIX_ALLOWED_ROOMS=!abc123:matrix.org
MATRIX_FREE_RESPONSE_ROOMS=!abc123:matrix.org,!def456:matrix.org
MATRIX_IGNORE_USER_PATTERNS='^@telegram_,^@whatsapp_'
MATRIX_PROCESS_NOTICES=false
MATRIX_SESSION_SCOPE=room # рекомендуется для стабильного контекста проектной комнаты
MATRIX_AUTO_THREAD=true
MATRIX_DM_MENTION_THREADS=false
MATRIX_REACTIONS=true # по умолчанию: true — эмодзи-реакции во время обработки
MATRIX_ALLOW_ROOM_MENTIONS=false
Совет: MATRIX_REACTIONS=false отключает эмодзи-реакции жизненного цикла обработки (👀/✅/❌), которые бот публикует на входящие сообщения. Полезно для комнат, где реакционные события создают шум или не поддерживаются.
Ещё совет: Hermes отправляет структурированные упоминания пользователей Matrix для явных ID, таких как @alice:example.org. Обще-комнатные упоминания @room контролируются отдельно.
Это полная картина по Matrix. Запускаете ли вы свой собственный homeserver или просто хотите децентрализованный чат, который уважает вашу конфиденциальность, — Hermes вас прикроет. Пригласите своего бота в комнату и увидите его в деле!
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/messaging/matrix