Configuration
การแยกวิเคราะห์ตำแหน่งที่ตั้งของช่องทาง
OpenClaw ปรับตำแหน่งที่แชร์จากช่องทางแชตให้อยู่ในรูปแบบมาตรฐานดังนี้:
- ข้อความพิกัดแบบกระชับที่ต่อท้ายเนื้อหาขาเข้า และ
- ฟิลด์แบบมีโครงสร้างในเพย์โหลดบริบทการตอบกลับอัตโนมัติ ป้ายกำกับ ที่อยู่ และคำบรรยาย/ความคิดเห็นที่ช่องทางระบุจะแสดงในพรอมต์ผ่านบล็อก JSON ข้อมูลเมตาที่ไม่น่าเชื่อถือซึ่งใช้ร่วมกัน ไม่ได้แทรกไว้ในเนื้อหาของผู้ใช้โดยตรง
รองรับในปัจจุบัน:
- LINE (ข้อความตำแหน่งพร้อมชื่อ/ที่อยู่)
- Matrix (
m.locationพร้อมgeo_uri) - Telegram (หมุดตำแหน่ง + สถานที่ + ตำแหน่งแบบสด)
- WhatsApp (
locationMessage+liveLocationMessage)
การจัดรูปแบบข้อความ
ตำแหน่งจะแสดงเป็นบรรทัดที่อ่านง่ายโดยไม่มีวงเล็บ พิกัดใช้ทศนิยมหกตำแหน่ง ส่วนความแม่นยำจะปัดเป็นจำนวนเมตรเต็ม:
- หมุด:
📍 48.858844, 2.294351 ±12m
- สถานที่ที่มีชื่อ (อยู่ในบรรทัดเดียวกัน โดยชื่อ/ที่อยู่จะอยู่ในบล็อกข้อมูลเมตาเท่านั้น):
📍 48.858844, 2.294351 ±12m
- การแชร์แบบสด:
🛰 Live location: 48.858844, 2.294351 ±12m
หากช่องทางมีป้ายกำกับ ที่อยู่ หรือคำบรรยาย/ความคิดเห็น ข้อมูลดังกล่าวจะถูกเก็บไว้ในเพย์โหลดบริบทและปรากฏในพรอมต์เป็น JSON ที่ไม่น่าเชื่อถือภายในรั้วโค้ด (ฟิลด์ที่ไม่มีค่าจะถูกละไว้):
ตำแหน่ง (ข้อมูลเมตาที่ไม่น่าเชื่อถือ):```json{ "latitude": 48.858844, "longitude": 2.294351, "accuracy_m": 12, "source": "place", "name": "หอไอเฟล", "address": "ช็องเดอมาร์ส ปารีส", "caption": "พบกันที่นี่"}```ฟิลด์บริบท
เมื่อมีตำแหน่ง ระบบจะเพิ่มฟิลด์เหล่านี้ลงใน ctx:
LocationLat(ตัวเลข)LocationLon(ตัวเลข)LocationAccuracy(ตัวเลข หน่วยเป็นเมตร; ไม่บังคับ)LocationName(สตริง; ไม่บังคับ)LocationAddress(สตริง; ไม่บังคับ)LocationSource(pin | place | live)LocationIsLive(บูลีน)LocationCaption(สตริง; ไม่บังคับ)
เมื่อช่องทางไม่ได้ตั้งค่าแหล่งที่มาไว้อย่างชัดเจน OpenClaw จะอนุมานให้ โดยการแชร์แบบสดจะเป็น live ตำแหน่งที่มีชื่อหรือที่อยู่จะเป็น place และกรณีอื่นทั้งหมดจะเป็น pin
ตัวเรนเดอร์พรอมต์ถือว่า LocationName, LocationAddress และ LocationCaption เป็นข้อมูลเมตาที่ไม่น่าเชื่อถือ และแปลงข้อมูลเหล่านี้เป็นอนุกรมผ่านเส้นทาง JSON แบบจำกัดขนาดเดียวกับที่ใช้กับบริบทอื่นของช่องทาง
เพย์โหลดขาออก
เครื่องมือข้อความและ Plugin SDK ใช้โครงสร้าง NormalizedLocation เดียวกันสำหรับตำแหน่งขาออกแบบพกพา เพย์โหลดที่มีเฉพาะพิกัดหมายถึงหมุด ช่องทางที่รองรับสถานที่แบบเนทีฟอาจจับคู่ name ร่วมกับ address เป็นการ์ดสถานที่
ปัจจุบัน Telegram เปิดให้ใช้ความสามารถนี้ผ่าน message(action="send") การใช้งานครั้งแรกได้รับการออกแบบให้ทำงานแยกโดยเจตนา กล่าวคือ ไม่สามารถใช้เพย์โหลดตำแหน่งร่วมกับข้อความหรือสื่อได้ และคู่ข้อมูลสถานที่ที่ไม่ครบถ้วนจะทำให้การดำเนินการล้มเหลวแทนที่จะละชื่อหรือที่อยู่อย่างเงียบ ๆ ช่องทางที่ไม่รองรับจะไม่ประกาศพารามิเตอร์ตำแหน่ง
หมายเหตุของช่องทาง
- LINE:
title/addressของข้อความตำแหน่งจะจับคู่กับLocationName/LocationAddress; ไม่รองรับตำแหน่งแบบสด - Matrix:
geo_uriจะถูกแยกวิเคราะห์เป็นตำแหน่งหมุด พารามิเตอร์u(ความไม่แน่นอน) จะจับคู่กับLocationAccuracyเนื้อหาของเหตุการณ์จะเติมค่าในLocationCaptionระบบจะละเว้นระดับความสูง และLocationIsLiveจะเป็น false เสมอ - Telegram: สถานที่จะจับคู่กับ
LocationName/LocationAddress; ระบบตรวจหาตำแหน่งแบบสดผ่านlive_period - WhatsApp:
locationMessage.commentและliveLocationMessage.captionจะเติมค่าในLocationCaption