跳转到主要内容
OpenClaw 会将聊天渠道中共享的位置规范化为:
  • 追加到入站正文中的简短坐标文本,以及
  • 自动回复上下文载荷中的结构化字段。渠道提供的标签、地址和标题/评论会由共享的不受信任元数据 JSON 块渲染到提示词中,而不是内联到用户正文中。
当前支持:
  • LINE(带标题/地址的位置消息)
  • Matrix(带 geo_urim.location
  • Telegram(位置图钉 + 场所 + 实时位置)
  • WhatsApplocationMessage + liveLocationMessage

文本格式

位置会渲染为不带括号的友好行。坐标使用六位小数;精度四舍五入到整米:
  • 固定位置:
    • 📍 48.858844, 2.294351 ±12m
  • 命名地点(同一行;名称/地址只进入元数据块):
    • 📍 48.858844, 2.294351 ±12m
  • 实时共享:
    • 🛰 Live location: 48.858844, 2.294351 ±12m
如果渠道包含标签、地址或标题/评论,它会保留在上下文载荷中,并在提示词中显示为围栏包裹的不受信任 JSON(字段不存在时会省略):
Location (untrusted metadata):
```json
{
  "latitude": 48.858844,
  "longitude": 2.294351,
  "accuracy_m": 12,
  "source": "place",
  "name": "Eiffel Tower",
  "address": "Champ de Mars, Paris",
  "caption": "Meet here"
}
```

上下文字段

存在位置时,这些字段会添加到 ctx
  • LocationLat(数字)
  • LocationLon(数字)
  • LocationAccuracy(数字,米;可选)
  • LocationName(字符串;可选)
  • LocationAddress(字符串;可选)
  • LocationSourcepin | place | live
  • LocationIsLive(布尔值)
  • LocationCaption(字符串;可选)
当渠道未设置显式来源时,OpenClaw 会进行推断:实时共享会变为 live,带名称或地址的位置会变为 place,其他所有位置都是 pin 提示词渲染器会将 LocationNameLocationAddressLocationCaption 视为不受信任元数据,并通过与其他渠道上下文相同的有界 JSON 路径对它们进行序列化。

渠道说明

  • LINE:位置消息 title/address 会映射到 LocationName/LocationAddress;没有实时位置。
  • Matrixgeo_uri 会解析为固定位置;u(不确定性)参数会映射到 LocationAccuracy,事件正文会填充 LocationCaption,海拔会被忽略,并且 LocationIsLive 始终为 false。
  • Telegram:场所会映射到 LocationName/LocationAddress;实时位置通过 live_period 检测。
  • WhatsApplocationMessage.commentliveLocationMessage.caption 会填充 LocationCaption

相关内容