Перейти к основному содержанию

Разбор локаций каналов

OpenClaw нормализует переданные из чатов локации в:
  • человекочитаемый текст, добавляемый к входящему сообщению, и
  • структурированные поля в полезной нагрузке контекста автоответа.
В настоящее время поддерживаются:
  • Telegram (пины локаций + места/venue + живые локации)
  • WhatsApp (locationMessage + liveLocationMessage)
  • Matrix (m.location с geo_uri)

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

Локации отображаются в виде дружелюбных строк без скобок:
  • Пин:
    • 📍 48.858844, 2.294351 ±12m
  • Именованное место:
    • 📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
  • Живой обмен:
    • 🛰 Live location: 48.858844, 2.294351 ±12m
Если канал включает подпись/комментарий, он добавляется следующей строкой:
📍 48.858844, 2.294351 ±12m
Meet here

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

Когда присутствует локация, в ctx добавляются следующие поля:
  • LocationLat (number)
  • LocationLon (number)
  • LocationAccuracy (number, метры; необязательно)
  • LocationName (string; необязательно)
  • LocationAddress (string; необязательно)
  • LocationSource (pin | place | live)
  • LocationIsLive (boolean)

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

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