Channels 导读

位置消息怎么拆成文字和结构化字段

Telegram、WhatsApp、Matrix 发来的位置会变成两样东西:一行带图标的可读文字(追加到消息正文),以及一组 ctx 字段(Lat/Lon/Name/Address/Source)。最该先看“Context fields”小节,那里列出了你能在自动回复里直接引用的字段名。容易搞错的是:Telegram 的 venue 会填 LocationName 和 LocationAddress,而 Matrix 的 geo_uri 没有 live 状态。

先讲这一页到底在解决什么

位置消息怎么拆成文字和结构化字段

Telegram、WhatsApp、Matrix 发来的位置会变成两样东西:一行带图标的可读文字(追加到消息正文),以及一组 ctx 字段(Lat/Lon/Name/Address/Source)。最该先看“Context fields”小节,那里列出了你能在自动回复里直接引用的字段名。容易搞错的是:Telegram 的 venue 会填 LocationName 和 LocationAddress,而 Matrix 的 geo_uri 没有 live 状态。

原文共 5 节,先看 Start Here 路径:/channels/location 查看官方原文

第一站

🗺️ 它会把冰冷坐标,翻成聊天里能顺眼看下去的一行话

重点不是“保留原格式”,而是“别让人看到一坨难读数据”。

📌

普通定位点

会变成像 📍 48.858844, 2.294351 ±12m 这样的一行,直接告诉你“点在哪儿”。

🏙️

带地点名

像“埃菲尔铁塔”这种,会连名字和地址一起说出来,不只剩坐标。

🛰️

实时位置

会被标成“Live location”,意思是“这个点会动,不是钉死在地上的”。

💬

附带留言

如果原消息里还有一句“在这里见”,OpenClaw 会把它接在下一行,不会吞掉。

第二站

🧰 真正给模型用的,不是那一行漂亮文字,而是背后那盒彩色小卡片

这些字段就像贴在消息背后的标签,模型后面要算距离、判断是不是实时位置,都靠它们。

LocationLat / LocationLon

这是最核心的两张卡,像“地图上的横竖坐标”。没有它们,就只剩一句人话描述。

LocationName / LocationAddress

像给这个点贴上“这是哪儿”的门牌和地名。Telegram 的 venue 就会填这两格。

LocationSource

告诉系统它是普通点、地点名,还是实时分享。也就是 pin / place / live 三种小标签。

LocationIsLive

这是“它会不会继续移动”的小开关。Matrix 解析时这里永远是 false。

第三站

📮 三个通道,各自会夹带一点自己的小脾气

这页最后其实是在提醒你:定位消息虽然都叫“位置”,但每个平台带来的小细节并不一样。

Telegram

地点名和地址会被单独拆出来;实时位置会带上 live_period 这种“还在动”的线索。

WhatsApp

commentcaption 会被接到下一行,就像你在地图贴纸下又写了一句备注。

Matrix

geo_uri 会被当成普通定位点来拆,海拔会被忽略,也不会被认成实时位置。

🎈 最后记一句

这页讲的不是“新通道怎么装”,而是“位置消息进门以后,OpenClaw 会把它整理成什么样子”。