Configuration
Parsing des Channel-Standorts
OpenClaw normalisiert geteilte Standorte aus Chat-Kanälen in:
- knappen Koordinatentext, der an den eingehenden Nachrichtentext angehängt wird, und
- strukturierte Felder in der Kontext-Payload 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 eingefügt, nicht inline in den Nachrichtentext des Benutzers.
Derzeit unterstützt:
- LINE (Standortnachrichten mit Titel/Adresse)
- Matrix (
m.locationmitgeo_uri) - Telegram (Standortmarkierungen + Veranstaltungsorte + Live-Standorte)
- WhatsApp (
locationMessage+liveLocationMessage)
Textformatierung
Standorte werden als übersichtliche Zeilen ohne Klammern dargestellt. Koordinaten verwenden sechs Dezimalstellen; die Genauigkeit wird auf ganze Meter gerundet:
- Markierung:
📍 48.858844, 2.294351 ±12m
- Benannter Ort (dieselbe Zeile; Name/Adresse werden nur in den Metadatenblock aufgenommen):
📍 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 Information in der Kontext-Payload erhalten und erscheint im Prompt als abgegrenztes, nicht vertrauenswürdiges JSON (Felder werden weggelassen, wenn sie nicht vorhanden sind):
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 zu pin.
Der Prompt-Renderer behandelt LocationName, LocationAddress und LocationCaption als nicht vertrauenswürdige Metadaten und serialisiert sie über denselben begrenzten JSON-Pfad, der auch für anderen Kanalkontext verwendet wird.
Ausgehende Payloads
Das Nachrichtenwerkzeug und das Plugin SDK verwenden für portable ausgehende Standorte dieselbe NormalizedLocation-Struktur. Eine Payload, die nur Koordinaten enthält, stellt eine Markierung dar. Kanäle mit nativer Unterstützung für Veranstaltungsorte können name zusammen mit address einer Veranstaltungsortkarte zuordnen.
Telegram stellt dies derzeit über message(action="send") bereit. Die erste Implementierung ist bewusst eigenständig: Standort-Payloads können nicht mit Text oder Medien kombiniert werden, und unvollständige Veranstaltungsortpaare schlagen fehl, anstatt einen Namen oder eine Adresse stillschweigend zu verwerfen. Nicht unterstützte Kanäle geben den Standortparameter nicht an.
Hinweise zu Kanälen
- LINE:
title/addressder Standortnachricht werdenLocationName/LocationAddresszugeordnet; keine Live-Standorte. - Matrix:
geo_uriwird als Standortmarkierung geparst; der Parameteru(Unsicherheit) wirdLocationAccuracyzugeordnet, der Ereignistext fülltLocationCaption, die Höhe wird ignoriert undLocationIsLiveist immer falsch. - Telegram: Veranstaltungsorte werden
LocationName/LocationAddresszugeordnet; Live-Standorte werden anhand vonlive_perioderkannt. - WhatsApp:
locationMessage.commentundliveLocationMessage.captionfüllenLocationCaption.