跳转到内容

位置解析 (Location Parsing)

OpenClaw 将来自聊天通道的共享位置标准化为:

  • 附加到入站正文的可读文本,以及
  • 自动回复上下文负载中的结构化字段。

目前支持:

  • Telegram (位置图钉 + 场所 + 实时位置)
  • WhatsApp (位置消息 + 实时位置消息)
  • Matrix (带有 geo_urim.location)

位置被渲染为没有括号的友好行:

  • 图钉 (Pin):
    • 📍 48.858844, 2.294351 ±12m
  • 命名场所 (Named place):
    • 📍 Eiffel Tower — Champ de Mars, Paris (48.858844, 2.294351 ±12m)
  • 实时共享 (Live share):
    • 🛰 Live location: 48.858844, 2.294351 ±12m

如果通道包含标题/注释,它将附加在下一行:

📍 48.858844, 2.294351 ±12m
Meet here

当存在位置时,这些字段将添加到 ctx 中:

  • LocationLat (数字)
  • LocationLon (数字)
  • LocationAccuracy (数字, 米; 可选)
  • LocationName (字符串; 可选)
  • LocationAddress (字符串; 可选)
  • LocationSource (pin | place | live)
  • LocationIsLive (布尔值)
  • Telegram: 场所映射到 LocationName/LocationAddress;实时位置使用 live_period
  • WhatsApp: locationMessage.commentliveLocationMessage.caption 作为标题行附加。
  • Matrix: geo_uri 被解析为图钉位置;海拔被忽略,且 LocationIsLive 始终为 false。