Configuration
تجزیه مکان کانال
OpenClaw مکانهای اشتراکی از کانالهای چت را به این موارد عادیسازی میکند:
- متن مختصر مختصات که به بدنه ورودی افزوده میشود، و
- فیلدهای ساختاریافته در بار زمینه پاسخ خودکار. برچسبها، نشانیها و شرحها/نظرهای ارائهشده توسط کانال، نه بهصورت درونخطی در بدنه کاربر، بلکه توسط بلوک JSON فراداده نامطمئن مشترک در پرامپت رندر میشوند.
در حال حاضر پشتیبانی میشود:
- Telegram (پینهای مکان + مکانها + مکانهای زنده)
- WhatsApp (locationMessage + liveLocationMessage)
- Matrix (
m.locationباgeo_uri)
قالببندی متن
مکانها بهصورت خطهای خوانا و بدون براکت رندر میشوند:
- پین:
📍 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,
"name": "Eiffel Tower",
"address": "Champ de Mars, Paris",
"caption": "Meet here"
}
```
فیلدهای زمینه
وقتی مکانی وجود داشته باشد، این فیلدها به ctx افزوده میشوند:
LocationLat(عدد)LocationLon(عدد)LocationAccuracy(عدد، متر؛ اختیاری)LocationName(رشته؛ اختیاری)LocationAddress(رشته؛ اختیاری)LocationSource(pin | place | live)LocationIsLive(بولی)LocationCaption(رشته؛ اختیاری)
رندرکننده پرامپت، LocationName، LocationAddress و LocationCaption را بهعنوان فراداده نامطمئن در نظر میگیرد و آنها را از طریق همان مسیر JSON محدودشدهای سریالسازی میکند که برای سایر زمینههای کانال استفاده میشود.
یادداشتهای کانال
- Telegram: مکانها به
LocationName/LocationAddressنگاشت میشوند؛ مکانهای زنده ازlive_periodاستفاده میکنند. - WhatsApp:
locationMessage.commentوliveLocationMessage.captionمقدارLocationCaptionرا پر میکنند. - Matrix:
geo_uriبهعنوان مکان پینشده تجزیه میشود؛ ارتفاع نادیده گرفته میشود وLocationIsLiveهمیشه false است.