Configuration
Parsing des Channel-Standorts
OpenClaw normalisiert freigegebene Standorte aus Chat-Kanälen in:
- knappen Koordinatentext, der an den eingehenden Nachrichtentext angehängt wird, und
- strukturierte Felder in der Kontext-Nutzlast für automatische Antworten. Vom Kanal bereitgestellte Bezeichnungen, Adressen und Bildunterschriften/Kommentare werden durch den gemeinsamen JSON-Block für nicht vertrauenswürdige Metadaten in den Prompt gerendert, nicht inline in den Nachrichtentext des Benutzers.
Derzeit unterstützt:
- LINE (Standortnachrichten mit Titel/Adresse)
- Matrix (
m.locationmitgeo_uri) - Telegram (Standortmarkierungen + Orte + Live-Standorte)
- WhatsApp (
locationMessage+liveLocationMessage)
Textformatierung
Standorte werden als leserfreundliche Zeilen ohne Klammern dargestellt. Koordinaten verwenden sechs Dezimalstellen; die Genauigkeit wird auf ganze Meter gerundet:
- Markierung:
📍 48.858844, 2.294351 ±12m
- Benannter Ort (in derselben Zeile; Name/Adresse werden nur in den Metadatenblock übernommen):
📍 48.858844, 2.294351 ±12m
- Live-Freigabe:
🛰 Live location: 48.858844, 2.294351 ±12m
Wenn der Kanal eine Bezeichnung, Adresse oder Bildunterschrift/einen Kommentar enthält, bleibt diese Angabe in der Kontext-Nutzlast erhalten und erscheint im Prompt als abgegrenztes, nicht vertrauenswürdiges JSON (nicht vorhandene Felder werden ausgelassen):
Standort (nicht vertrauenswürdige Metadaten):```json{ "latitude": 48.858844, "longitude": 2.294351, "accuracy_m": 12, "source": "place", "name": "Eiffelturm", "address": "Champ de Mars, Paris", "caption": "Hier treffen"}```Kontextfelder
Wenn ein Standort vorhanden ist, werden diese Felder zu ctx hinzugefügt:
LocationLat(Zahl)LocationLon(Zahl)LocationAccuracy(Zahl, Meter; optional)LocationName(Zeichenfolge; optional)LocationAddress(Zeichenfolge; optional)LocationSource(pin | place | live)LocationIsLive(boolescher Wert)LocationCaption(Zeichenfolge; optional)
Wenn der Kanal keine explizite Quelle festlegt, leitet OpenClaw sie ab: Live-Freigaben werden zu live, Standorte mit einem Namen oder einer Adresse zu place, alles andere ist pin.
Der Prompt-Renderer behandelt LocationName, LocationAddress und LocationCaption als nicht vertrauenswürdige Metadaten und serialisiert sie über denselben begrenzten JSON-Pfad, der für anderen Kanalkontext verwendet wird.
Ausgehende Nutzlasten
Das Nachrichtenwerkzeug und das Plugin SDK verwenden dieselbe NormalizedLocation-Struktur für portable ausgehende Standorte. Eine Nutzlast, die nur Koordinaten enthält, stellt eine Markierung dar. Kanäle mit nativer Unterstützung für Orte können name zusammen mit address einer Ortskarte zuordnen.
Telegram stellt dies derzeit über message(action="send") bereit. Die erste Implementierung ist bewusst eigenständig: Standort-Nutzlasten können nicht mit Text oder Medien kombiniert werden, und unvollständige Ortspaare schlagen fehl, statt einen Namen oder eine Adresse stillschweigend zu verwerfen. Nicht unterstützte Kanäle bieten den Standortparameter nicht an.
Hinweise zu Kanälen
- LINE: Bei Standortnachrichten werden
title/addressaufLocationName/LocationAddressabgebildet; keine Live-Standorte. - Matrix:
geo_uriwird als Standortmarkierung geparst; der Parameteru(Unsicherheit) wird aufLocationAccuracyabgebildet, der Ereignistext fülltLocationCaptionaus, die Höhe wird ignoriert undLocationIsLiveist immer falsch. - Telegram: Orte werden auf
LocationName/LocationAddressabgebildet; Live-Standorte werden überlive_perioderkannt. - WhatsApp:
locationMessage.commentundliveLocationMessage.captionfüllenLocationCaptionaus.