Parsing de localização em canais
O OpenClaw normaliza localizações compartilhadas de canais de chat em:
- texto legível anexado ao corpo da mensagem recebida, e
- campos estruturados no payload de contexto de auto-resposta.
Atualmente suportado:
- Telegram (pins de localização + estabelecimentos + localização ao vivo)
- WhatsApp (locationMessage + liveLocationMessage)
- Matrix (
m.locationcomgeo_uri)
Formatação de texto
As localizações são renderizadas como linhas amigáveis sem colchetes:
- Pin:
📍 48.858844, 2.294351 ±12m
- Local nomeado:
📍 Torre Eiffel — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
- Compartilhamento ao vivo:
🛰 Localização ao vivo: 48.858844, 2.294351 ±12m
Se o canal inclui legenda/comentário, ele é anexado na linha seguinte:
📍 48.858844, 2.294351 ±12m
Encontre-me aqui
Campos de contexto
Quando uma localização está presente, estes campos são adicionados ao ctx:
LocationLat(number)LocationLon(number)LocationAccuracy(number, metros; opcional)LocationName(string; opcional)LocationAddress(string; opcional)LocationSource(pin | place | live)LocationIsLive(boolean)
Notas por canal
- Telegram: estabelecimentos mapeiam para
LocationName/LocationAddress; localizações ao vivo usamlive_period. - WhatsApp:
locationMessage.commenteliveLocationMessage.captionsão anexados como linha de legenda. - Matrix:
geo_urié interpretado como localização de pin; altitude é ignorada eLocationIsLiveé sempre false.