---
read_when:
  - 添加或修改渠道位置解析
  - 在智能体提示或工具中使用位置上下文字段
summary: 入站渠道位置解析（Telegram + WhatsApp）及上下文字段
title: 渠道位置解析
x-i18n:
  generated_at: "2026-02-01T19:21:46Z"
  model: claude-opus-4-5
  provider: pi
  source_hash: 5602ef105c3da7e47497bfed8fc343dd8d7f3c019ff7e423a08b25092c5a1837
  source_path: channels/location.md
  workflow: 14
---

# 渠道位置解析

SKYKOI 将聊天渠道中分享的位置标准化为：

- 附加到入站消息体的可读文本，以及
- 自动回复上下文负载中的结构化字段。

目前支持：

- **Telegram**（位置图钉 + 地点 + 实时位置）
- **WhatsApp**（locationMessage + liveLocationMessage）
- **Matrix**（`m.location` 配合 `geo_uri`）

## 文本格式

位置以友好的行格式呈现，不带括号：

- 图钉：
  - `📍 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`（字符串；可选）
- `LocationSource`（`pin | place | live`）
- `LocationIsLive`（布尔值）

## 渠道说明

- **Telegram**：地点映射到 `LocationName/LocationAddress`；实时位置使用 `live_period`。
- **WhatsApp**：`locationMessage.comment` 和 `liveLocationMessage.caption` 作为标题行附加。
- **Matrix**：`geo_uri` 解析为图钉位置；忽略海拔高度，`LocationIsLive` 始终为 false。
