---
read_when:
    - Создание клиентов Matrix, которые отображают расширенные ответы OpenClaw
    - Отладка содержимого событий com.openclaw.presentation
summary: Метаданные Matrix MessagePresentation для клиентов, совместимых с OpenClaw
title: Метаданные представления Matrix
x-i18n:
    generated_at: "2026-06-28T22:35:15Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: c89979b6007faaa6af44c7f2511f354b96f163bcd3d5e7f99c405b51c4950537
    source_path: channels/matrix-presentation.md
    workflow: 16
---

OpenClaw может прикреплять нормализованные метаданные `MessagePresentation` к исходящим событиям Matrix `m.room.message` в `com.openclaw.presentation`.

Стандартные клиенты Matrix продолжают отображать обычный текст `body`. Клиенты, поддерживающие OpenClaw, могут читать структурированные метаданные и отображать нативный UI, например кнопки, списки выбора, строки контекста и разделители.

## Содержимое события

Метаданные хранятся в содержимом события Matrix:

```json
{
  "msgtype": "m.text",
  "body": "Select model\n\n- DeepSeek: /model deepseek/deepseek-chat",
  "com.openclaw.presentation": {
    "version": 1,
    "type": "message.presentation",
    "title": "Select model",
    "tone": "info",
    "blocks": [
      {
        "type": "select",
        "placeholder": "Choose model",
        "options": [
          {
            "label": "DeepSeek",
            "value": "/model deepseek/deepseek-chat"
          }
        ]
      }
    ]
  }
}
```

`version` — это версия схемы метаданных представления Matrix. `type` — стабильный дискриминатор для клиентов, поддерживающих OpenClaw. Клиенты должны игнорировать неизвестные значения `type`, неизвестные версии, которые они не могут безопасно интерпретировать, и неизвестные типы блоков.

## Резервное поведение

OpenClaw всегда формирует читаемый резервный обычный текст в `body`. Структурированные метаданные являются дополнительными и не должны требоваться для базовой совместимости с Matrix.

Неподдерживаемые клиенты должны продолжать показывать резервный текст. Клиенты, поддерживающие OpenClaw, могут предпочитать структурированные метаданные для отображения, сохраняя при этом резервный текст для копирования, поиска, уведомлений и доступности.

## Поддерживаемые блоки

Исходящий адаптер Matrix объявляет поддержку:

- `buttons`
- `select`
- `context`
- `divider`

Клиенты должны рассматривать эти блоки как рекомендательные подсказки представления, выполняемые по мере возможности. Неизвестные поля и неизвестные типы блоков следует игнорировать, а не приводить к сбою отображения всего сообщения.

## Взаимодействия

Эти метаданные не добавляют семантику callback Matrix. Значения кнопок и вариантов выбора являются резервными полезными нагрузками взаимодействия, обычно slash-командами или текстовыми командами. Клиент Matrix, который хочет поддерживать взаимодействие, может отправить выбранное значение обратно в комнату как обычное сообщение.

Например, кнопку со значением `/model deepseek/deepseek-chat` можно обработать, отправив это значение как зашифрованное текстовое сообщение Matrix в той же комнате.

## Связь с метаданными подтверждений

`com.openclaw.presentation` предназначен для общего представления форматированных сообщений.

Запросы подтверждения используют специализированные метаданные `com.openclaw.approval`, потому что подтверждения содержат чувствительные к безопасности состояние, решения и сведения об exec/plugin. Если в одном событии присутствуют оба ключа метаданных, клиентам следует предпочитать специализированный рендерер подтверждений.

## Медиа-сообщения

Когда ответ содержит несколько URL медиа, OpenClaw отправляет по одному событию Matrix для каждого URL медиа. Метаданные представления прикрепляются только к первому медиа-событию, чтобы у клиентов была одна стабильная структурированная полезная нагрузка и не возникало дублирующих рендереров.

Держите метаданные представления компактными. Большой видимый пользователю текст должен оставаться в `body` и использовать обычный путь разбиения текста Matrix на фрагменты.
