Skip to content

渠道位置信息解析

OpenClaw 将聊天渠道中共享的位置信息统一规范化为:

  • 追加到入站消息体的可读文本,以及
  • 自动回复上下文载荷中的结构化字段。

目前支持:

  • Telegram(位置标记 + 地点 + 实时位置)
  • WhatsApp(locationMessage + liveLocationMessage)
  • Matrix(带 geo_urim.location

文本格式

位置信息以友好的方式呈现,不含括号:

  • 普通坐标标记:
    • 📍 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(数字)
  • LocationLon(数字)
  • LocationAccuracy(数字,单位米;可选)
  • LocationName(字符串;可选)
  • LocationAddress(字符串;可选)
  • LocationSourcepin | place | live
  • LocationIsLive(布尔值)

各渠道说明

  • Telegram:地点(venue)映射到 LocationName/LocationAddress;实时位置使用 live_period
  • WhatsApplocationMessage.commentliveLocationMessage.caption 作为说明文字追加。
  • Matrixgeo_uri 解析为普通坐标标记;高度数据被忽略,LocationIsLive 始终为 false。