Configuration

Разбор расположения канала

OpenClaw нормализует общие данные о местоположении из каналов чата в:

  • краткий текст с координатами, добавляемый к входящему содержимому, и
  • структурированные поля в контекстной полезной нагрузке автоматического ответа. Предоставленные каналом метки, адреса и подписи/комментарии отображаются в промпте в общем JSON-блоке недоверенных метаданных, а не непосредственно в содержимом сообщения пользователя.

В настоящее время поддерживаются:

  • LINE (сообщения о местоположении с названием/адресом)
  • Matrix (m.location с geo_uri)
  • Telegram (метки местоположения, места и геопозиции в реальном времени)
  • WhatsApp (locationMessage + liveLocationMessage)

Форматирование текста

Местоположения отображаются удобочитаемыми строками без скобок. Координаты указываются с шестью знаками после запятой; точность округляется до целых метров:

  • Метка:
    • 📍 48.858844, 2.294351 ±12m
  • Именованное место (в той же строке; название и адрес передаются только в блок метаданных):
    • 📍 48.858844, 2.294351 ±12m
  • Передача геопозиции в реальном времени:
    • 🛰 Live location: 48.858844, 2.294351 ±12m

Если канал включает метку, адрес или подпись/комментарий, эти данные сохраняются в контекстной полезной нагрузке и отображаются в промпте как ограждённый недоверенный JSON (отсутствующие поля опускаются):

text
Местоположение (недоверенные метаданные):```json{  "latitude": 48.858844,  "longitude": 2.294351,  "accuracy_m": 12,  "source": "place",  "name": "Эйфелева башня",  "address": "Марсово поле, Париж",  "caption": "Встретимся здесь"}```

Поля контекста

При наличии местоположения в ctx добавляются следующие поля:

  • LocationLat (число)
  • LocationLon (число)
  • LocationAccuracy (число, метры; необязательно)
  • LocationName (строка; необязательно)
  • LocationAddress (строка; необязательно)
  • LocationSource (pin | place | live)
  • LocationIsLive (логическое значение)
  • LocationCaption (строка; необязательно)

Если канал не задаёт источник явно, OpenClaw определяет его автоматически: передача геопозиции в реальном времени становится live, местоположения с названием или адресом становятся place, а всё остальное — pin.

Средство отображения промптов обрабатывает LocationName, LocationAddress и LocationCaption как недоверенные метаданные и сериализует их через тот же ограниченный JSON-путь, который используется для другого контекста канала.

Исходящие полезные нагрузки

Инструмент сообщений и Plugin SDK используют одну и ту же структуру NormalizedLocation для переносимых исходящих местоположений. Полезная нагрузка, содержащая только координаты, представляет метку. Каналы с нативной поддержкой мест могут сопоставлять name вместе с address с карточкой места.

В настоящее время Telegram предоставляет эту возможность через message(action="send"). Первая реализация намеренно автономна: полезные нагрузки местоположения нельзя объединять с текстом или медиафайлами, а неполные пары данных о месте приводят к ошибке вместо молчаливого отбрасывания названия или адреса. Неподдерживаемые каналы не объявляют параметр местоположения.

Примечания по каналам

  • LINE: поля сообщения о местоположении title/address сопоставляются с LocationName/LocationAddress; геопозиции в реальном времени не поддерживаются.
  • Matrix: geo_uri анализируется как метка местоположения; параметр u (неопределённость) сопоставляется с LocationAccuracy, содержимое события заполняет LocationCaption, высота игнорируется, а LocationIsLive всегда имеет значение false.
  • Telegram: места сопоставляются с LocationName/LocationAddress; геопозиции в реальном времени обнаруживаются через live_period.
  • WhatsApp: locationMessage.comment и liveLocationMessage.caption заполняют LocationCaption.

Связанные материалы

Was this useful?
On this page

On this page