Mainstream messaging
Matrix
Matrix — це завантажуваний плагін каналу (@openclaw/matrix), створений на основі офіційного matrix-js-sdk. Він підтримує особисті повідомлення, кімнати, гілки, медіафайли, реакції, опитування, геопозицію та наскрізне шифрування (E2EE).
Встановлення
openclaw plugins install @openclaw/matrixДля специфікацій плагінів без префікса спочатку виконується пошук у ClawHub, а потім — резервний пошук у npm. Щоб примусово вибрати джерело, скористайтеся openclaw plugins install clawhub:@openclaw/matrix або npm:@openclaw/matrix. З локальної робочої копії: openclaw plugins install ./path/to/local/matrix-plugin.
plugins install реєструє та вмикає плагін; окремий крок enable не потрібен. Однак канал не працюватиме, доки його не буде налаштовано нижче. Загальні правила встановлення див. у розділі Плагіни.
Налаштування
- Створіть обліковий запис Matrix на своєму домашньому сервері.
- Налаштуйте
channels.matrixза допомогоюhomeserver+accessTokenабоhomeserver+userId+password. - Перезапустіть Gateway.
- Почніть особисте листування з ботом або запросіть його до кімнати. Нові запрошення приймаються лише тоді, коли це дозволяє
autoJoin.
Інтерактивне налаштування
openclaw channels addopenclaw configure --section channelsМайстер запитує URL домашнього сервера, метод автентифікації (токен або пароль), ідентифікатор користувача (лише для автентифікації паролем), необов’язкову назву пристрою, чи потрібно ввімкнути E2EE, а також параметри доступу до кімнат і автоматичного приєднання. Якщо відповідні змінні середовища MATRIX_* уже існують, а для облікового запису немає збережених даних автентифікації, майстер пропонує скорочений шлях із використанням змінних середовища. Перед збереженням списку дозволів перетворіть назви кімнат на ідентифікатори за допомогою openclaw channels resolve --channel matrix "Project Room". Увімкнення E2EE в майстрі запускає ту саму початкову конфігурацію, що й openclaw matrix encryption setup.
Мінімальна конфігурація
На основі токена:
{ channels: { matrix: { enabled: true, homeserver: "https://matrix.example.org", accessToken: "syt_xxx", dm: { policy: "pairing" }, }, },}На основі пароля (токен кешується після першого входу):
{ channels: { matrix: { enabled: true, homeserver: "https://matrix.example.org", userId: "@bot:example.org", password: "replace-me", // pragma: allowlist secret deviceName: "OpenClaw Gateway", }, },}Автоматичне приєднання
Значенням channels.matrix.autoJoin за замовчуванням є "off": бот не з’являтиметься в нових кімнатах або особистих чатах за новими запрошеннями, доки ви не приєднаєте його вручну. OpenClaw не може визначити в момент отримання запрошення, чи воно стосується особистого чату або групи, тому кожне запрошення спочатку обробляється через autoJoin; dm.policy застосовується лише пізніше, після приєднання бота й класифікації кімнати.
{ channels: { matrix: { autoJoin: "allowlist", autoJoinAllowlist: ["!ops:example.org", "#support:example.org"], groups: { "!ops:example.org": { requireMention: true }, }, }, },}Формати цілей списків дозволів
- Особисті повідомлення (
dm.allowFrom,groupAllowFrom,groups.<room>.users): використовуйте@user:server. Відображувані імена за замовчуванням ігноруються, оскільки їх можна змінювати; установлюйтеdangerouslyAllowNameMatching: trueлише для явної сумісності зі зіставленням відображуваних імен. - Ключі списку дозволених кімнат (
groups, застарілий псевдонімrooms): використовуйте!room:serverабо#alias:server. Звичайні назви ігноруються, якщо не встановленоdangerouslyAllowNameMatching: true. - Списки дозволених запрошень (
autoJoinAllowlist): використовуйте!room:server,#alias:serverабо*. Звичайні назви завжди відхиляються.
Нормалізація ідентифікатора облікового запису
Майстер перетворює зручну назву на нормалізований ідентифікатор облікового запису (Ops Bot -> ops-bot). У назвах змінних середовища з областю дії розділові знаки екрануються шістнадцятковим кодом, щоб запобігти колізіям облікових записів: - (0x2D) перетворюється на _X2D_, тому ops-prod відповідає префіксу змінних середовища MATRIX_OPS_X2D_PROD_.
Кешовані облікові дані
Matrix кешує облікові дані в ~/.openclaw/credentials/matrix/: credentials.json для облікового запису за замовчуванням і credentials-<account>.json для іменованих облікових записів. Якщо кешовані облікові дані існують, OpenClaw вважає Matrix налаштованим навіть без accessToken у файлі конфігурації — це охоплює налаштування, openclaw doctor і перевірки стану каналу.
Змінні середовища
Змінні середовища, що відповідають ключам конфігурації, використовуються, коли відповідний ключ конфігурації не задано. Для облікового запису за замовчуванням використовуються назви без префікса; для іменованих облікових записів токен облікового запису вставляється перед суфіксом (див. нормалізацію).
| Обліковий запис за замовчуванням | Іменований обліковий запис (<ID> = токен облікового запису) |
|---|---|
MATRIX_HOMESERVER |
MATRIX_<ID>_HOMESERVER |
MATRIX_ACCESS_TOKEN |
MATRIX_<ID>_ACCESS_TOKEN |
MATRIX_USER_ID |
MATRIX_<ID>_USER_ID |
MATRIX_PASSWORD |
MATRIX_<ID>_PASSWORD |
MATRIX_DEVICE_ID |
MATRIX_<ID>_DEVICE_ID |
MATRIX_DEVICE_NAME |
MATRIX_<ID>_DEVICE_NAME |
Для облікового запису ops назви матимуть вигляд MATRIX_OPS_HOMESERVER, MATRIX_OPS_ACCESS_TOKEN тощо. MATRIX_HOMESERVER (і будь-який варіант *_HOMESERVER з областю дії) не можна задати з файлу .env робочого простору; див. Файли .env робочого простору.
Приклад конфігурації
Практична базова конфігурація зі спарюванням особистих повідомлень, списком дозволених кімнат і E2EE:
{ channels: { matrix: { enabled: true, homeserver: "https://matrix.example.org", accessToken: "syt_xxx", encryption: true, dm: { policy: "pairing", sessionScope: "per-room", threadReplies: "off", }, groupPolicy: "allowlist", groupAllowFrom: ["@admin:example.org"], groups: { "!roomid:example.org": { requireMention: true }, }, autoJoin: "allowlist", autoJoinAllowlist: ["!roomid:example.org"], threadReplies: "inbound", replyToMode: "off", streaming: "partial", }, },}Потокові попередні перегляди
Потокове передавання відповідей у Matrix вмикається явно. streaming визначає, як OpenClaw доставляє відповідь асистента під час її формування; blockStreaming визначає, чи зберігатиметься кожен завершений блок як окреме повідомлення Matrix.
{ channels: { matrix: { streaming: "partial", }, },}Щоб зберегти попередній перегляд відповіді в реальному часі, але приховати проміжні рядки інструментів і перебігу виконання, використовуйте об’єктну форму:
{ channels: { matrix: { streaming: { mode: "partial", preview: { toolProgress: false, }, }, }, },}Повна об’єктна форма приймає { mode, preview, progress }:
{ channels: { matrix: { streaming: { mode: "progress", progress: { label: "auto", // pick from configured or built-in labels (false to hide) labels: ["Thinking", "Writing", "Searching"], // candidates for label: "auto" maxLines: 8, // max rolling progress lines (default: 8) maxLineChars: 120, // max chars per line before truncation (default: 120) toolProgress: true, // show tool/progress activity (default: true) }, }, }, },}progress.label: власна мітка,"auto"або незадане значення для вибору налаштованої чи вбудованої мітки абоfalse, щоб приховати її.progress.labels: варіанти, що використовуються лише тоді, колиlabelмає значення"auto"або не задано.progress.maxLines: максимальна кількість оновлюваних рядків перебігу виконання, що зберігаються в чернетці; старіші рядки понад цей ліміт видаляються.progress.maxLineChars: максимальна кількість символів у кожному компактному рядку перебігу виконання перед обрізанням.progress.toolProgress: якщоtrue(за замовчуванням), активність інструментів і перебіг виконання в реальному часі відображаються в чернетці.
streaming |
Поведінка |
|---|---|
"off" (типово) |
Очікувати на повну відповідь і надіслати її один раз. true <-> "partial", false <-> "off". |
"partial" |
Редагувати одне звичайне текстове повідомлення на місці, доки модель формує поточний блок. Стандартні клієнти можуть сповістити про перший попередній перегляд, а не про остаточне редагування. |
"quiet" |
Те саме, що й "partial", але повідомлення є сповіщенням без надсилання повідомлення користувачеві. Одержувачів сповіщають один раз, коли правило push-сповіщень користувача збігається із завершеним редагуванням (див. нижче). |
"progress" |
Надсилати окремі компактні рядки перебігу виконання за допомогою чернетки перебігу виконання. |
blockStreaming (типово false) не залежить від streaming:
streaming |
blockStreaming: true |
blockStreaming: false (типово) |
|---|---|---|
"partial" / "quiet" |
Поточна чернетка для поточного блока, завершені блоки зберігаються як повідомлення | Поточна чернетка для поточного блока, завершення виконується на місці |
"off" |
Одне повідомлення Matrix зі сповіщенням на кожен завершений блок | Одне повідомлення Matrix зі сповіщенням для всієї відповіді |
Примітки:
- Якщо попередній перегляд перевищує обмеження Matrix на розмір однієї події, OpenClaw припиняє його потокове передавання та переходить до надсилання лише остаточної відповіді.
- Відповіді з медіафайлами завжди надсилають вкладення звичайним способом; якщо застарілий попередній перегляд не можна безпечно використати повторно, OpenClaw приховує його перед надсиланням остаточної відповіді з медіафайлом.
- Оновлення попереднього перегляду перебігу роботи інструментів за замовчуванням увімкнено, коли активне потокове передавання попереднього перегляду. Установіть
streaming.preview.toolProgress: false, щоб зберегти редагування попереднього перегляду тексту відповіді, але залишити перебіг роботи інструментів у звичайному шляху доставки. - Редагування попереднього перегляду потребують додаткових викликів API Matrix. Залиште
streaming: "off"для найбільш консервативного профілю обмеження частоти запитів.
Голосові повідомлення
Вхідні голосові нотатки Matrix транскрибуються до перевірки згадки в кімнаті, тому голосова нотатка, у якій вимовлено ім’я бота, може активувати агента в кімнаті з requireMention: true, а агент отримає транскрипт замість лише заповнювача аудіовкладення.
Matrix використовує спільний постачальник обробки аудіомедіа в tools.media.audio, наприклад OpenAI gpt-4o-mini-transcribe. Налаштування постачальника й обмеження див. в Огляді медіаінструментів.
- Події
m.audioта подіїm.fileіз типом MIMEaudio/*придатні для транскрибування. - У зашифрованих кімнатах OpenClaw розшифровує вкладення через наявний шлях обробки медіафайлів Matrix перед транскрибуванням.
- Транскрипт позначається в запиті агента як створений машиною та ненадійний.
- Вкладення позначається як уже транскрибоване, щоб подальші медіаінструменти не транскрибували його повторно.
- Установіть
tools.media.audio.enabled: false, щоб глобально вимкнути транскрибування аудіо.
Метадані схвалення
Вбудовані запити на схвалення Matrix є звичайними подіями m.room.message зі специфічним для OpenClaw вмістом у ключі com.openclaw.approval. Стандартні клієнти й надалі відображають текстове тіло; клієнти з підтримкою OpenClaw можуть зчитувати структуровані ідентифікатор, тип і стан схвалення, рішення, а також відомості про виконання або плагін.
Якщо запит задовгий для однієї події Matrix, OpenClaw розбиває видимий текст на частини й додає com.openclaw.approval лише до першої частини. Реакції дозволу або відмови прив’язуються до цієї першої події, тому довгі запити мають ту саму ціль схвалення, що й запити з однією подією.
Правила самостійно розміщених push-сповіщень для тихих завершених попередніх переглядів
streaming: "quiet" сповіщає одержувачів лише після завершення блоку або ходу — правило push-сповіщень для кожного користувача має відповідати маркеру завершеного попереднього перегляду. Повну інструкцію див. у розділі Правила push-сповіщень Matrix для тихих попередніх переглядів.
Кімнати для взаємодії ботів
За замовчуванням повідомлення Matrix від інших налаштованих облікових записів OpenClaw Matrix ігноруються. Використовуйте allowBots, щоб навмисно дозволити обмін даними між агентами:
{ channels: { matrix: { allowBots: "mentions", // true | "mentions" groups: { "!roomid:example.org": { requireMention: true, }, }, }, },}allowBots: trueприймає повідомлення від інших налаштованих облікових записів ботів Matrix у дозволених кімнатах і приватних повідомленнях.allowBots: "mentions"приймає такі повідомлення в кімнатах лише тоді, коли в них явно згадано цього бота; приватні повідомлення дозволено незалежно від цього.groups.<room>.allowBotsперевизначає налаштування рівня облікового запису для однієї кімнати.- Прийняті повідомлення налаштованих ботів використовують спільний захист від циклів ботів. Налаштуйте
channels.defaults.botLoopProtection, а потім перевизначте його для окремого облікового запису черезchannels.matrix.botLoopProtectionабо для окремої кімнати черезchannels.matrix.groups.<room>.botLoopProtection. - OpenClaw усе одно ігнорує повідомлення від того самого ідентифікатора користувача Matrix, щоб уникнути циклів відповідей самому собі.
- Matrix не має вбудованої ознаки бота; OpenClaw вважає повідомлення «створеним ботом», якщо його «надіслав інший налаштований обліковий запис Matrix на цьому Gateway OpenClaw».
Вмикаючи обмін даними між ботами в спільних кімнатах, використовуйте суворі списки дозволених кімнат і вимоги щодо згадування.
Шифрування та перевірка
У зашифрованих кімнатах (E2EE) вихідні події із зображеннями використовують thumbnail_file, щоб попередні перегляди зображень шифрувалися разом із повним вкладенням; у незашифрованих кімнатах використовується звичайний thumbnail_url. Налаштування не потрібне — plugin автоматично визначає стан E2EE.
Усі команди openclaw matrix приймають --verbose (повна діагностика), --json (машиночитаний вивід) і --account <id> (для конфігурацій із кількома обліковими записами). За замовчуванням вивід стислий.
Увімкнення шифрування
openclaw matrix encryption setupІніціалізує сховище секретів і перехресне підписання, за потреби створює резервну копію ключів кімнат, а потім виводить стан і подальші кроки. Корисні прапорці:
--recovery-key <key>— застосувати ключ відновлення перед ініціалізацією (краще скористатися наведеною нижче формою зі стандартним вводом)--force-reset-cross-signing— відкинути поточну ідентичність перехресного підписання та створити нову (лише для навмисного використання)
Для нового облікового запису ввімкніть E2EE під час його створення:
openclaw matrix account add \ --homeserver https://matrix.example.org \ --access-token syt_xxx \ --enable-e2ee--encryption — псевдонім для --enable-e2ee. Еквівалент ручної конфігурації:
{ channels: { matrix: { enabled: true, homeserver: "https://matrix.example.org", accessToken: "syt_xxx", encryption: true, dm: { policy: "pairing" }, }, },}Стан і сигнали довіри
openclaw matrix verify statusopenclaw matrix verify status --include-recovery-key --jsonverify status повідомляє про три незалежні сигнали довіри (--verbose показує їх усі):
Locally trusted: довірений лише цим клієнтомCross-signing verified: SDK повідомляє про перевірку через перехресне підписанняSigned by owner: підписаний вашим власним ключем самопідписання (лише для діагностики)
Verified by owner має значення yes, лише якщо Cross-signing verified має значення yes; лише локальної довіри або підпису власника недостатньо.
--allow-degraded-local-state повертає діагностику за принципом максимально можливої повноти без попередньої підготовки облікового запису Matrix; це корисно для автономних або частково налаштованих перевірок.
Перевірка цього пристрою за допомогою ключа відновлення
Передавайте ключ відновлення через стандартний ввід, а не в командному рядку:
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdinКоманда повідомляє про три стани:
Recovery key accepted: Matrix прийняв ключ для сховища секретів або довіри до пристрою.Backup usable: резервну копію ключів кімнат можна завантажити за допомогою довіреного матеріалу відновлення.Device verified by owner: цей пристрій має повну довіру ідентичності перехресного підписання Matrix.
Команда завершується з ненульовим кодом, якщо повна довіра до ідентичності не встановлена, навіть коли ключ відновлення розблокував матеріал резервної копії. У такому разі завершіть самоперевірку з іншого клієнта Matrix:
openclaw matrix verify selfverify self очікує на Cross-signing verified: yes, перш ніж успішно завершитися. Використовуйте --timeout-ms <ms>, щоб налаштувати тривалість очікування.
Форма з буквальним ключем openclaw matrix verify device "<recovery-key>" також працює, але ключ потрапляє в історію оболонки.
Ініціалізація або відновлення перехресного підписання
openclaw matrix verify bootstrapКоманда відновлення або налаштування для зашифрованих облікових записів. Вона послідовно:
- ініціалізує сховище секретів, за можливості повторно використовуючи наявний ключ відновлення
- ініціалізує перехресне підписання та завантажує відсутні відкриті ключі
- позначає та перехресно підписує поточний пристрій
- створює серверну резервну копію ключів кімнат, якщо вона ще не існує
Якщо домашній сервер вимагає UIA для завантаження ключів перехресного підписання, OpenClaw спочатку пробує без автентифікації, потім m.login.dummy, а далі m.login.password (потрібен channels.matrix.password).
Корисні прапорці:
--recovery-key-stdin(використовуйте разом ізprintf '%s\n' "$MATRIX_RECOVERY_KEY" | ...) або--recovery-key <key>--force-reset-cross-signing— відкинути поточну ідентичність перехресного підписання (лише навмисно; активний ключ відновлення має бути збережений або наданий через--recovery-key-stdin)
Резервна копія ключів кімнат
openclaw matrix verify backup statusprintf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdinbackup status показує, чи існує серверна резервна копія та чи може цей пристрій її розшифрувати. backup restore імпортує резервні копії ключів кімнат у локальне криптографічне сховище; не вказуйте --recovery-key-stdin, якщо ключ відновлення вже збережено на диску.
Щоб замінити пошкоджену резервну копію новою базовою версією (погоджуючись із втратою старої історії, яку неможливо відновити; команда також може повторно створити сховище секретів, якщо поточний секрет резервної копії неможливо завантажити):
openclaw matrix verify backup reset --yesДодавайте --rotate-recovery-key лише тоді, коли попередній ключ відновлення має навмисно припинити розблоковувати нову базову резервну копію.
Перегляд, надсилання та обробка запитів на перевірку
openclaw matrix verify listПоказує список запитів на перевірку, що очікують на обробку, для вибраного облікового запису.
openclaw matrix verify request --own-useropenclaw matrix verify request --user-id @ops:example.org --device-id ABCDEFНадсилає запит на перевірку з цього облікового запису. --own-user запитує самоперевірку (прийміть запит в іншому клієнті Matrix того самого користувача); --user-id/--device-id/--room-id спрямовують запит іншій особі. --own-user не можна поєднувати з іншими прапорцями вибору цілі.
Для низькорівневого керування життєвим циклом — зазвичай під час відстеження вхідних запитів з іншого клієнта — ці команди виконують дії з конкретним запитом <id> (який виводять verify list і verify request):
| Команда | Призначення |
|---|---|
openclaw matrix verify accept <id> |
Прийняти вхідний запит |
openclaw matrix verify start <id> |
Запустити процес SAS |
openclaw matrix verify sas <id> |
Вивести емодзі або десяткові числа SAS |
openclaw matrix verify confirm-sas <id> |
Підтвердити, що SAS збігається з показаним в іншому клієнті |
openclaw matrix verify mismatch-sas <id> |
Відхилити SAS, якщо емодзі або десяткові числа не збігаються |
openclaw matrix verify cancel <id> |
Скасувати; приймає необов’язкові --reason <text> і --code <matrix-code> |
accept, start, sas, confirm-sas, mismatch-sas і cancel також приймають --user-id та --room-id як підказки для подальшої взаємодії в приватних повідомленнях, коли перевірку прив’язано до певної кімнати прямих повідомлень.
Примітки щодо кількох облікових записів
Без --account <id> команди CLI Matrix використовують неявний обліковий запис за замовчуванням. Якщо є кілька іменованих облікових записів і не задано channels.matrix.defaultAccount, команди не намагаються вгадувати та просять зробити вибір. Коли E2EE вимкнено або недоступне для іменованого облікового запису, помилки вказують на ключ конфігурації цього облікового запису, наприклад channels.matrix.accounts.assistant.encryption.
Поведінка під час запуску
За encryption: true значенням startupVerification за замовчуванням є "if-unverified". Під час запуску неперевірений пристрій запитує самоперевірку в іншому клієнті Matrix, пропускаючи дублікати та застосовуючи період очікування (за замовчуванням 24 години). Налаштуйте його за допомогою startupVerificationCooldownHours або вимкніть через startupVerification: "off".
Під час запуску також виконується консервативна ініціалізація криптографічного стану з повторним використанням поточного сховища секретів та ідентичності перехресного підписання. Якщо стан ініціалізації пошкоджено, OpenClaw намагається виконати контрольоване відновлення навіть без channels.matrix.password; якщо домашній сервер вимагає UIA з паролем, під час запуску записується попередження, але помилка не стає критичною. Пристрої, уже підписані власником, зберігаються.
Повний процес оновлення див. у розділі Міграція Matrix.
Сповіщення про перевірку
Matrix публікує сповіщення про життєвий цикл перевірки в суворо визначеній кімнаті приватних повідомлень для перевірки як повідомлення m.notice: запит, готовність (із вказівкою "Verify by emoji"), запуск/завершення та відомості SAS (емодзі/десяткові числа), якщо вони доступні.
Вхідні запити з іншого клієнта Matrix відстежуються та приймаються автоматично. Для самоперевірки OpenClaw автоматично запускає процес SAS і підтверджує свою сторону, щойно стає доступною перевірка за допомогою емодзі — вам усе одно потрібно порівняти дані та підтвердити "They match" у своєму клієнті Matrix.
Системні сповіщення про перевірку не передаються в конвеєр чату агента.
Видалений або недійсний пристрій Matrix
Якщо verify status повідомляє, що поточний пристрій більше не зареєстровано на домашньому сервері, створіть новий пристрій OpenClaw Matrix. Для входу за паролем:
openclaw matrix account add \--account assistant \--homeserver https://matrix.example.org \--user-id '@assistant:example.org' \--password '<password>' \--device-name OpenClaw-GatewayДля автентифікації за токеном створіть новий токен доступу у своєму клієнті Matrix або інтерфейсі адміністратора, а потім оновіть OpenClaw:
openclaw matrix account add \--account assistant \--homeserver https://matrix.example.org \--access-token '<token>'Замініть assistant на ідентифікатор облікового запису з команди, що завершилася помилкою, або не вказуйте --account для облікового запису за замовчуванням.
Гігієна пристроїв
Старі пристрої, якими керує OpenClaw, можуть накопичуватися. Перегляньте список і видаліть застарілі:
openclaw matrix devices listopenclaw matrix devices prune-staleКриптографічне сховище
E2EE Matrix використовує офіційний криптографічний шлях Rust у matrix-js-sdk із fake-indexeddb як адаптером IndexedDB. Криптографічний стан зберігається у crypto-idb-snapshot.json (з обмежувальними правами доступу до файлу).
Зашифрований стан середовища виконання зберігається в ~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/ і містить сховище синхронізації, криптографічне сховище, ключ відновлення, знімок IDB, прив’язки гілок обговорення та стан перевірки під час запуску. Коли токен змінюється, але ідентичність облікового запису залишається тією самою, OpenClaw повторно використовує найкращий наявний кореневий каталог, щоб попередній стан залишався доступним.
Один старіший корінь із хешем токена може бути нормальним шляхом забезпечення безперервності під час ротації токена. Якщо OpenClaw реєструє matrix: multiple populated token-hash storage roots detected, перевірте каталог облікового запису й архівуйте застарілі сусідні корені лише після підтвердження справності вибраного активного кореня. Замість негайного видалення застарілих коренів краще перемістити їх до каталогу _archive/.
Керування профілем
openclaw matrix profile set --name "OpenClaw Assistant"openclaw matrix profile set --avatar-url https://cdn.example.org/avatar.pngПередайте обидва параметри в одному виклику. Matrix безпосередньо приймає URL-адреси аватарів mxc://; якщо передати http:///https://, файл спочатку завантажується, а визначена URL-адреса mxc:// зберігається в channels.matrix.avatarUrl (або в перевизначенні для окремого облікового запису).
Гілки
Matrix підтримує нативні гілки як для автоматичних відповідей, так і для надсилання через інструмент повідомлень. Поведінку визначають два незалежні параметри:
Маршрутизація сеансів (sessionScope)
dm.sessionScope визначає, як кімнати приватних повідомлень Matrix зіставляються із сеансами OpenClaw:
"per-user"(типово): усі кімнати приватних повідомлень з тим самим маршрутизованим співрозмовником використовують один спільний сеанс."per-room": кожна кімната приватних повідомлень Matrix отримує власний ключ сеансу, навіть для того самого співрозмовника.
Явні прив’язки розмов завжди мають пріоритет над sessionScope; прив’язані кімнати й гілки зберігають вибраний цільовий сеанс.
Відповіді у гілках (threadReplies)
threadReplies визначає, де бот публікує відповідь:
"off": відповіді публікуються на верхньому рівні. Вхідні повідомлення з гілок залишаються в батьківському сеансі."inbound": відповідати всередині гілки, лише якщо вхідне повідомлення вже було в цій гілці."always": відповідати всередині гілки, коренем якої є повідомлення-тригер; від першого тригера ця розмова маршрутизується через відповідний сеанс із областю дії гілки.
dm.threadReplies перевизначає це лише для приватних повідомлень — наприклад, дає змогу ізолювати гілки кімнат, залишаючи приватні повідомлення без гілок.
Успадкування гілок і команди зі скісною рискою
- Вхідні повідомлення з гілок містять кореневе повідомлення гілки як додатковий контекст агента.
- Надсилання через інструмент повідомлень автоматично успадковують поточну гілку Matrix, коли цільовою є та сама кімната (або той самий користувач у приватних повідомленнях), якщо явно не вказано
threadId. - Повторне використання цільового користувача приватних повідомлень активується лише тоді, коли метадані поточного сеансу підтверджують того самого співрозмовника приватних повідомлень у тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації з областю дії користувача.
/focus,/unfocus,/agents,/session idle,/session max-ageі прив’язана до гілки команда/acp spawnпрацюють у кімнатах і приватних повідомленнях Matrix.- Команда
/focusверхнього рівня створює нову гілку Matrix і прив’язує її до цільового сеансу, якщо ввімкненоthreadBindings.spawnSessions. - Виконання
/focusабо/acp spawn --thread hereу наявній гілці Matrix прив’язує цю гілку на місці.
Коли OpenClaw виявляє конфлікт кімнати приватних повідомлень Matrix з іншою кімнатою приватних повідомлень у тому самому спільному сеансі, він одноразово публікує m.notice із вказівкою на обхідний шлях /focus і пропозицією змінити dm.sessionScope. Це сповіщення з’являється лише тоді, коли прив’язки гілок увімкнено.
Прив’язки розмов ACP
Кімнати, приватні повідомлення й наявні гілки Matrix можуть стати постійними робочими просторами ACP без зміни інтерфейсу чату.
Швидка послідовність дій оператора:
- Виконайте
/acp spawn codex --bind hereу приватному повідомленні, кімнаті або наявній гілці Matrix, яку потрібно продовжувати використовувати. - У приватному повідомленні або кімнаті верхнього рівня поточне приватне повідомлення чи кімната залишається інтерфейсом чату, а майбутні повідомлення маршрутизуються до створеного сеансу ACP.
- Усередині наявної гілки
--bind hereприв’язує цю поточну гілку на місці. /newі/resetскидають той самий прив’язаний сеанс ACP на місці./acp closeзакриває сеанс ACP і видаляє прив’язку.
--bind here не створює дочірню гілку Matrix. threadBindings.spawnSessions контролює /acp spawn --thread auto|here, коли OpenClaw потрібно створити або прив’язати дочірню гілку.
Конфігурація прив’язки гілок
Matrix успадковує глобальні типові значення з session.threadBindings і підтримує перевизначення для окремого каналу:
threadBindings.enabledthreadBindings.idleHoursthreadBindings.maxAgeHoursthreadBindings.spawnSessions: контролює створення гілок як для субагентів, так і для ACP.threadBindings.spawnSubagentSessions/threadBindings.spawnAcpSessions: вужчі перевизначення для створення лише субагентів або лише ACP.threadBindings.defaultSpawnContext
Створення прив’язаних до гілок Matrix сеансів типово ввімкнено. Установіть threadBindings.spawnSessions: false, щоб заборонити командам верхнього рівня /focus і /acp spawn --thread auto|here створювати або прив’язувати гілки Matrix. Установіть threadBindings.defaultSpawnContext: "isolated", якщо нативне створення гілок субагентів не повинно розгалужувати батьківський журнал розмови.
Реакції
Matrix підтримує вихідні реакції, сповіщення про вхідні реакції та реакції-підтвердження.
Інструменти вихідних реакцій контролюються параметром channels.matrix.actions.reactions:
reactдодає реакцію до події Matrix.reactionsперелічує поточне зведення реакцій для події Matrix.emoji=""видаляє власні реакції бота на цю подію.remove: trueвидаляє лише вказану реакцію емодзі від бота.
Порядок визначення (перемагає перше визначене значення):
| Параметр | Порядок |
|---|---|
ackReaction |
для облікового запису -> канал -> messages.ackReaction -> резервний емодзі ідентичності агента |
ackReactionScope |
для облікового запису -> канал -> messages.ackReactionScope -> типове "group-mentions" |
reactionNotifications |
для облікового запису -> канал -> типове "own" |
reactionNotifications: "own" пересилає додані події m.reaction, коли вони спрямовані на повідомлення Matrix, створені ботом; "off" вимикає системні події реакцій. Видалення реакцій не синтезуються в системні події — Matrix подає їх як редагування, а не як окремі видалення m.reaction.
Контекст історії
channels.matrix.historyLimitвизначає, скільки останніх повідомлень кімнати додається якInboundHistory, коли повідомлення кімнати запускає агента. Якщо значення не задано, використовуєтьсяmessages.groupChat.historyLimit; фактичне типове значення —0, якщо обидва параметри не встановлено (вимкнено).- Історія кімнати Matrix охоплює лише кімнату; приватні повідомлення й надалі використовують звичайну історію сеансу.
- Історія кімнати містить лише повідомлення, що очікують обробки: OpenClaw буферизує повідомлення кімнати, які ще не спричинили відповідь, а потім створює знімок цього вікна, коли надходить згадка або інший тригер.
- Поточне повідомлення-тригер не додається до
InboundHistory; для цього ходу воно залишається в основному тілі вхідного повідомлення. - Повторні спроби обробити ту саму подію Matrix використовують початковий знімок історії, а не зміщуються вперед до новіших повідомлень кімнати.
Видимість контексту
Matrix підтримує спільний параметр contextVisibility для додаткового контексту кімнати, зокрема отриманого тексту відповіді, коренів гілок та історії, що очікує обробки.
contextVisibility: "all"є типовим значенням. Додатковий контекст зберігається в отриманому вигляді.contextVisibility: "allowlist"фільтрує додатковий контекст, залишаючи лише відправників, дозволених активними перевірками списку дозволених користувачів або кімнати.contextVisibility: "allowlist_quote"працює якallowlist, але все одно зберігає одну явну цитовану відповідь.
Це впливає лише на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення спричинити відповідь. Авторизація тригерів і надалі визначається параметрами groupPolicy, groups, groupAllowFrom і політики приватних повідомлень.
Політика приватних повідомлень і кімнат
{ channels: { matrix: { dm: { policy: "allowlist", allowFrom: ["@admin:example.org"], threadReplies: "off", }, groupPolicy: "allowlist", groupAllowFrom: ["@admin:example.org"], groups: { "!roomid:example.org": { requireMention: true }, }, }, },}Щоб повністю вимкнути приватні повідомлення, залишивши кімнати працездатними, установіть dm.enabled: false:
{ channels: { matrix: { dm: { enabled: false }, groupPolicy: "allowlist", groupAllowFrom: ["@admin:example.org"], }, },}Опис блокування за згадкою та поведінки списків дозволених користувачів див. у розділі Групи.
Приклад сполучення для приватних повідомлень Matrix:
openclaw pairing list matrixopenclaw pairing approve matrix <CODE>Якщо непідтверджений користувач Matrix продовжує надсилати повідомлення до схвалення, OpenClaw повторно використовує той самий код очікуваного сполучення й після короткої затримки може надіслати відповідь-нагадування замість створення нового коду.
Опис спільного процесу сполучення приватних повідомлень і структури сховища див. у розділі Сполучення.
Відновлення кімнати приватних повідомлень
Якщо стан приватних повідомлень розсинхронізується, OpenClaw може мати застарілі зіставлення m.direct, що вказують на старі кімнати для двох осіб замість активної кімнати приватних повідомлень. Перевірте поточне зіставлення для співрозмовника:
openclaw matrix direct inspect --user-id @alice:example.orgВідновіть його:
openclaw matrix direct repair --user-id @alice:example.orgОбидві команди приймають --account <id> для конфігурацій із кількома обліковими записами. Процес відновлення:
- надає перевагу суворій приватній кімнаті 1:1, уже зіставленій у
m.direct - якщо такої немає, використовує будь-яку сувору приватну кімнату 1:1 із цим користувачем, до якої наразі приєднано обліковий запис
- створює нову кімнату приватних повідомлень і перезаписує
m.direct, якщо справної кімнати не існує
Старі кімнати не видаляються автоматично. Процес вибирає справну кімнату приватних повідомлень і оновлює зіставлення, щоб майбутні надсилання Matrix, сповіщення про перевірку та інші процеси приватних повідомлень спрямовувалися до правильної кімнати.
Схвалення виконання
Matrix може працювати як нативний клієнт схвалень. Налаштуйте це в channels.matrix.execApprovals (або в channels.matrix.accounts.<account>.execApprovals для перевизначення на рівні облікового запису):
enabled: доставляє запити на схвалення через нативні запити Matrix. Якщо не встановлено або задано"auto", функція автоматично вмикається, щойно вдається визначити принаймні одного уповноваженого схвалювача; установітьfalse, щоб явно вимкнути.approvers: ідентифікатори користувачів Matrix (@owner:example.org), яким дозволено схвалювати запити на виконання. Якщо не задано, використовуєтьсяchannels.matrix.dm.allowFrom.target: куди надсилаються запити."dm"(типово) надсилає їх у приватні повідомлення схвалювачам;"channel"— до початкової кімнати або приватного повідомлення;"both"— в обидва місця.agentFilter/sessionFilter: необов’язкові списки дозволених агентів або сеансів, які запускають доставлення через Matrix.
Авторизація дещо відрізняється залежно від типу схвалення:
- Схвалення виконання використовують
execApprovals.approvers, а якщо його не задано —dm.allowFrom. - Схвалення Plugin авторизуються лише через
dm.allowFrom.
Обидва типи використовують спільні скорочення реакціями Matrix та оновлення повідомлень. Схвалювачі бачать скорочення реакціями в основному повідомленні запиту на схвалення:
- ✅ дозволити один раз
- ❌ відхилити
- ♾️ дозволяти завжди (коли це дозволяє чинна політика виконання)
Резервні команди зі скісною рискою: /approve <id> allow-once, /approve <id> allow-always, /approve <id> deny.
Схвалювати або відхиляти можуть лише визначені схвалювачі. Доставлення схвалень виконання до каналу містить текст команди — вмикайте channel або both лише в довірених кімнатах.
Пов’язаний розділ: Схвалення виконання.
Команди зі скісною рискою
Команди зі скісною рискою (/new, /reset, /model, /focus, /unfocus, /agents, /session, /acp, /approve тощо) працюють безпосередньо в приватних повідомленнях. У кімнатах OpenClaw також розпізнає команди з префіксом у вигляді власної згадки бота Matrix, тому @bot:server /new запускає шлях команди без спеціального регулярного виразу для згадок — завдяки цьому бот реагує на типові для кімнат повідомлення @mention /command, які Element і подібні клієнти створюють, коли користувач доповнює ім’я бота клавішею Tab перед введенням команди.
Правила авторизації залишаються чинними: відправники команд мають відповідати тим самим політикам списків дозволених користувачів або власників для приватних повідомлень чи кімнат, що й звичайні повідомлення.
Кілька облікових записів
{ channels: { matrix: { enabled: true, defaultAccount: "assistant", dm: { policy: "pairing" }, accounts: { assistant: { homeserver: "https://matrix.example.org", accessToken: "syt_assistant_xxx", encryption: true, }, alerts: { homeserver: "https://matrix.example.org", accessToken: "syt_alerts_xxx", dm: { policy: "allowlist", allowFrom: ["@ops:example.org"], threadReplies: "off", }, }, }, }, },}Успадкування:
- Значення верхнього рівня
channels.matrixслугують типовими значеннями для іменованих облікових записів, якщо обліковий запис їх не перевизначає. - Обмежте успадкований запис кімнати певним обліковим записом за допомогою
groups.<room>.account. Записи безaccountє спільними для всіх облікових записів;account: "default"також працює, коли типовий обліковий запис налаштовано на верхньому рівні.
Вибір типового облікового запису:
- Установіть
defaultAccount, щоб вибрати іменований обліковий запис, якому надаватимуть перевагу неявна маршрутизація, перевірки та команди CLI. - Якщо у вас кілька облікових записів і один із них буквально має назву
default, OpenClaw неявно використовує його, навіть колиdefaultAccountне задано. - За наявності кількох іменованих облікових записів без вибраного типового команди CLI відмовляються робити припущення — установіть
defaultAccountабо передайте--account <id>. - Блок верхнього рівня
channels.matrix.*вважається неявним обліковим записомdefault, лише якщо його автентифікаційні дані повні (homeserver+accessTokenабоhomeserver+userId+password). Іменовані облікові записи залишаються доступними для виявлення заhomeserver+userId, щойно кешовані облікові дані забезпечують автентифікацію.
Перетворення:
- Коли OpenClaw під час виправлення або налаштування перетворює конфігурацію з одним обліковим записом на конфігурацію з кількома обліковими записами, він зберігає наявний іменований обліковий запис, якщо такий існує або
defaultAccountуже вказує на нього. До перетвореного облікового запису переміщуються лише ключі автентифікації та початкового налаштування Matrix; спільні ключі політики доставки залишаються на верхньому рівні.
Спільний шаблон для кількох облікових записів див. у довіднику з конфігурації.
Приватні/LAN-сервери Matrix
За замовчуванням OpenClaw блокує приватні/внутрішні сервери Matrix для захисту від SSRF, якщо ви явно не дозволите їх для кожного облікового запису.
Якщо ваш сервер працює на localhost, IP-адресі LAN/Tailscale або внутрішньому імені хоста, увімкніть network.dangerouslyAllowPrivateNetwork для цього облікового запису:
{ channels: { matrix: { homeserver: "http://matrix-synapse:8008", network: { dangerouslyAllowPrivateNetwork: true, }, accessToken: "syt_internal_xxx", }, },}Приклад налаштування через CLI:
openclaw matrix account add \ --account ops \ --homeserver http://matrix-synapse:8008 \ --allow-private-network \ --access-token syt_ops_xxxЦей явний дозвіл стосується лише довірених приватних/внутрішніх цілей. Загальнодоступні сервери без шифрування, як-от http://matrix.example.org:8008, залишаються заблокованими. За можливості використовуйте https://.
Проксіювання трафіку Matrix
Якщо для вашого розгортання Matrix потрібен явний вихідний HTTP(S)-проксі, задайте channels.matrix.proxy:
{ channels: { matrix: { homeserver: "https://matrix.example.org", accessToken: "syt_bot_xxx", proxy: "http://127.0.0.1:7890", }, },}Іменовані облікові записи можуть перевизначити типове значення верхнього рівня за допомогою channels.matrix.accounts.<id>.proxy. OpenClaw використовує те саме налаштування проксі для трафіку Matrix під час виконання та перевірок стану облікового запису.
Визначення цілі
Matrix приймає наведені нижче форми цілей скрізь, де OpenClaw запитує цільову кімнату або користувача:
- Користувачі:
@user:server,user:@user:serverабоmatrix:user:@user:server - Кімнати:
!room:server,room:!room:serverабоmatrix:room:!room:server - Псевдоніми:
#alias:server,channel:#alias:serverабоmatrix:channel:#alias:server
Ідентифікатори кімнат Matrix чутливі до регістру. Під час налаштування явних цілей доставки, завдань cron, прив’язок або списків дозволів використовуйте точний регістр ідентифікатора кімнати з Matrix. OpenClaw зберігає внутрішні ключі сеансів у канонічній формі, тому ці ключі в нижньому регістрі не є надійним джерелом ідентифікаторів доставки Matrix.
Оперативний пошук у каталозі використовує обліковий запис Matrix, у який виконано вхід:
- Пошук користувачів виконує запити до каталогу користувачів Matrix на цьому домашньому сервері.
- Пошук кімнат безпосередньо приймає явні ідентифікатори та псевдоніми кімнат. Пошук за назвою серед приєднаних кімнат виконується за можливості й застосовується лише до списків дозволів кімнат під час виконання, якщо встановлено
dangerouslyAllowNameMatching: true. - Якщо назву кімнати неможливо зіставити з ідентифікатором або псевдонімом, під час визначення списку дозволів вона ігнорується.
Довідник із конфігурації
Поля користувачів, що працюють як списки дозволів (groupAllowFrom, dm.allowFrom, groups.<room>.users), приймають повні ідентифікатори користувачів Matrix (найбезпечніший варіант). Записи, що не є ідентифікаторами, типово ігноруються. Якщо встановлено dangerouslyAllowNameMatching: true, точні збіги з відображуваними іменами в каталозі Matrix визначаються під час запуску й щоразу, коли список дозволів змінюється під час роботи монітора; записи, які неможливо визначити, ігноруються під час виконання.
Ключами списку дозволів кімнат (groups, застарілий rooms) мають бути ідентифікатори або псевдоніми кімнат. Ключі зі звичайними назвами кімнат типово ігноруються; dangerouslyAllowNameMatching: true відновлює пошук за назвами приєднаних кімнат за можливості.
Обліковий запис і підключення
enabled: увімкнути або вимкнути канал.name: необов’язкова відображувана мітка облікового запису.defaultAccount: пріоритетний ідентифікатор облікового запису, коли налаштовано кілька облікових записів Matrix.accounts: іменовані перевизначення для кожного облікового запису. Значення верхнього рівняchannels.matrixуспадковуються як типові.homeserver: URL-адреса домашнього сервера, наприкладhttps://matrix.example.org.network.dangerouslyAllowPrivateNetwork: дозволити цьому обліковому запису підключатися доlocalhost, IP-адрес LAN/Tailscale або внутрішніх імен хостів.proxy: необов’язкова URL-адреса проксі HTTP(S) для трафіку Matrix. Підтримується перевизначення для кожного облікового запису.userId: повний ідентифікатор користувача Matrix (@bot:example.org).accessToken: токен доступу для автентифікації на основі токена. Підтримуються значення у відкритому тексті та SecretRef від постачальників env/file/exec (Керування секретами).password: пароль для входу за паролем. Підтримуються значення у відкритому тексті та SecretRef.deviceId: явний ідентифікатор пристрою Matrix.deviceName: відображуване ім’я пристрою, що використовується під час входу за паролем.avatarUrl: збережена URL-адреса власного аватара для синхронізації профілю й оновленьprofile set.initialSyncLimit: максимальна кількість подій, отриманих під час початкової синхронізації.
Шифрування
encryption: увімкнути наскрізне шифрування. Типово:false.startupVerification:"if-unverified"(типово, коли наскрізне шифрування ввімкнено) або"off". Автоматично запитує самоперевірку під час запуску, якщо цей пристрій не перевірено.startupVerificationCooldownHours: період очікування до наступного автоматичного запиту під час запуску. Типово:24.
Доступ і політика
groupPolicy:"open","allowlist"або"disabled". Типово:"allowlist".groupAllowFrom: список дозволених ідентифікаторів користувачів для трафіку кімнат.mentionPatterns: обмежені за областю регулярні вирази для згадок у кімнатах. Об’єкт із{ mode: "allow"|"deny", allowIn: [roomId, ...], denyIn: [roomId, ...] }. Визначає, чи застосовуються налаштованіagents.list[].groupChat.mentionPatternsдля кожної кімнати.dm.enabled: якщоfalse, ігнорувати всі особисті повідомлення. Типово:true.dm.policy:"pairing"(типово),"allowlist","open"або"disabled". Застосовується після того, як бот приєднався та класифікував кімнату як особистий чат; не впливає на обробку запрошень.dm.allowFrom: список дозволених ідентифікаторів користувачів для трафіку особистих повідомлень.dm.sessionScope:"per-user"(типово) або"per-room".dm.threadReplies: перевизначення лише для особистих повідомлень щодо відповідей у гілках ("off","inbound","always").allowBots: приймати повідомлення від інших налаштованих облікових записів ботів Matrix (trueабо"mentions").allowlistOnly: якщоtrue, примусово переводить усі активні політики особистих повідомлень (крім"disabled") і групові політики"open"у"allowlist". Не змінює політики"disabled".dangerouslyAllowNameMatching: якщоtrue, дозволяє пошук у каталозі Matrix за відображуваним іменем для записів списку дозволів користувачів і пошук за назвою приєднаної кімнати для ключів списку дозволів кімнат. Надавайте перевагу повним ідентифікаторам@user:server, а також ідентифікаторам або псевдонімам кімнат.autoJoin:"always","allowlist"або"off". Типово:"off". Застосовується до кожного запрошення Matrix, зокрема до запрошень у особисті чати.autoJoinAllowlist: кімнати або псевдоніми, дозволені, колиautoJoinмає значення"allowlist". Записи псевдонімів визначаються через домашній сервер, а не через стан, заявлений запрошувальною кімнатою.contextVisibility: видимість додаткового контексту ("all"типово,"allowlist","allowlist_quote").
Поведінка відповідей
replyToMode:"off"(типово),"first","all"або"batched".threadReplies:"off"(типове значення верхнього рівня перетворюється на"inbound", якщо його не встановлено явно),"inbound"або"always".threadBindings: перевизначення для кожного каналу щодо маршрутизації та життєвого циклу сеансів, прив’язаних до гілок.streaming:"off"(типово),"partial","quiet","progress"або об’єктна форма{ mode, preview: { toolProgress }, progress: { label, labels, maxLines, maxLineChars, toolProgress } }.true<->"partial",false<->"off".blockStreaming: якщоtrue, завершені блоки асистента зберігаються як окремі повідомлення про перебіг. Типово:false.markdown: необов’язкова конфігурація відтворення Markdown для вихідного тексту.responsePrefix: необов’язковий рядок, що додається на початку вихідних відповідей.textChunkLimit: розмір вихідної частини в символах, колиchunkMode: "length". Типово:4000.chunkMode:"length"(типово, розділяє за кількістю символів) або"newline"(розділяє на межах рядків).historyLimit: кількість останніх повідомлень кімнати, включених якInboundHistory, коли повідомлення в кімнаті запускає агента. Резервно використовуєmessages.groupChat.historyLimit; фактичне типове значення —0(вимкнено).mediaMaxMb: обмеження розміру медіафайлів у МБ для вихідного надсилання та обробки вхідних даних. Типово:20.
Налаштування реакцій
ackReaction: перевизначення реакції підтвердження для цього каналу або облікового запису.ackReactionScope: перевизначення області дії ("group-mentions"типово,"group-all","direct","all","none","off").reactionNotifications: режим сповіщень про вхідні реакції ("own"типово,"off").
Інструменти та перевизначення для окремих кімнат
actions: керування доступністю інструментів для кожної дії (messages,reactions,pins,profile,memberInfo,channelInfo,verification).groups: карта політик для окремих кімнат. Після визначення ідентичність сеансу використовує стабільний ідентифікатор кімнати. (rooms— застарілий псевдонім.)groups.<room>.account: обмежити один успадкований запис кімнати певним обліковим записом.groups.<room>.enabled: перемикач для окремої кімнати. Якщоfalse, кімната ігнорується так, ніби її немає на карті.groups.<room>.requireMention: перевизначення вимоги згадки на рівні каналу для окремої кімнати.groups.<room>.allowBots: перевизначення налаштування рівня каналу для окремої кімнати (trueабо"mentions").groups.<room>.botLoopProtection: перевизначення бюджету захисту від циклів між ботами для окремої кімнати.groups.<room>.users: список дозволених відправників для окремої кімнати.groups.<room>.tools: перевизначення дозволу або заборони інструментів для окремої кімнати.groups.<room>.autoReply: перевизначення обмеження за згадкою для окремої кімнати.trueвимикає вимоги згадки для цієї кімнати;falseпримусово вмикає їх знову.groups.<room>.skills: фільтр Skills для окремої кімнати.groups.<room>.systemPrompt: фрагмент системної підказки для окремої кімнати.
Налаштування схвалення виконання
execApprovals.enabled: доставляти запити на схвалення виконання через вбудовані запити Matrix.execApprovals.approvers: ідентифікатори користувачів Matrix, яким дозволено схвалювати. Резервно використовуєdm.allowFrom.execApprovals.target:"dm"(типово),"channel"або"both".execApprovals.agentFilter/execApprovals.sessionFilter: необов’язкові списки дозволених агентів або сеансів для доставки.
Пов’язані матеріали
- Огляд каналів — усі підтримувані канали
- Сполучення — автентифікація в особистих повідомленнях і процес сполучення
- Групи — поведінка групового чату й обмеження за згадкою
- Маршрутизація каналів — маршрутизація сеансів для повідомлень
- Безпека — модель доступу й посилення захисту