Chatbot persona (URG standard)¶
Status as of 23.10.2026: schema version 1.0. The uGo Mobility side is a development state, not yet released and not yet checked on a device. The German version follows below: Chatbot-Persona (URG-Standard). Setting it up on the robot: Technician manual — Assistant persona.
For IT, technicians and integration partners
Technical reference for IT departments, URG technicians and trained partners. It is not written as operating instructions for end users.
The persona describes who the voice assistant of a device is. Every URG application with a voice assistant uses the same data model: one persona per device, seven content fields and four administrative fields. Role, tone and the safety sentence are fixed product texts, not fields: the persona changes who the assistant is and where it stands, never what the device may do.
Data model (schema 1.0)¶
| Field | Type | Required | Rule | Set by |
|---|---|---|---|---|
schemaVersion |
string | yes | exactly "1.0"; any other value is refused, never converted |
client |
product |
string | yes | ugo-me or ugo-mobility |
client |
revision |
integer | no | ≥ 1; first save 1, every accepted save +1; a value sent by the client is ignored | device |
updatedAt |
string | no | time of the accepted save, RFC 3339 with offset | device |
name |
string | yes | at least one non-space character | client |
context |
string | yes | may be empty; then its sentence is left out | client |
welcome |
string | yes | may be empty; then its sentence is left out | client |
languages |
list of ISO 639-1 codes | yes | unique, at least one; de, en, fr, es, it, nl are offered by every product |
client |
allowed |
list of strings | yes | may be empty; each entry without spaces at the start or end and not empty | client |
forbidden |
list of strings | yes | as allowed |
client |
stayout |
list of strings | yes | as allowed |
client |
No further fields are accepted. No key, password or movement release can therefore get into a persona. Every place that writes a persona checks it against the schema and answers an error with a text key, never with a silent correction.
System context¶
From the persona the product builds one system context for the voice service, always in this order: role sentence with the name → location and task → greeting → languages with the fallback "answer politely in English" → may → must not → stay out → tone sentence. Empty fields drop their sentence. Products whose voice chain can lead to a movement end the text with a fixed safety sentence: the assistant cannot move the device by voice, every drive needs a touch confirmation on the screen. No field can remove it.
Safety and data protection¶
- No drive and no movement by voice alone. No persona field releases a movement; every movement that comes from voice starts only after a touch on Yes in a question on the screen.
- Voice replaces neither the emergency stop on the device nor the stop button on the screen.
- Saving a persona does not switch voice control on or off; that is a separate switch.
- Persona texts go as instructions to a voice service in the cloud. They must contain no personal data of third parties, no health data and no access codes. The setup screen says so in six languages.
uGo Mobility¶
The persona lies on the robot as one file daten/persona.json, written atomically. Routes of the
uGo server:
| Route | Method | Who | Request | Answer |
|---|---|---|---|---|
/api/persona |
GET | anybody at the device; from the network with a session | — | technician: the whole document; everybody else: {name} · 404 api.persona-keine |
/api/persona |
PUT | technician only (403 also with a service key) | the persona after schema 1.0, product: "ugo-mobility"; languages only de, en, fr, es, it, nl |
200 {persona, uebertragung, schluessel?} · 400 api.persona-ungueltig (werte.feld), api.persona-fassung, api.persona-produkt, api.unlesbar, api.anfrage-zu-lang · 500 api.persona-ablage |
/api/persona/uebertragen |
POST | technician only | — | 200 {uebertragung, schluessel?} · 404 api.persona-keine |
uebertragung is ok, fehlgeschlagen or keine-adresse. After an accepted save the robot hands
the system context to the voice service; if that fails, the persona stays saved and the answer
carries api.persona-nicht-uebertragen. Limits of this development state: name 40, context
2,000 and welcome 300 characters, at most 20 rules of 200 characters per list.
Name at the microphone bubble. The surface hands the name to the kiosk shell with the bridge
method personaNameSetzen(key, name); the shell shows it in front of the state text. Like every
bridge method it needs the frame key that the shell gives only to the uGo page in the main frame
(see Voice and Language Models).
Hand-over format. How the voice service takes over the system context is to be confirmed for each installation before voice control is switched on.
uGo Me¶
uGo Me sets the persona on its own screen and sends the seven content fields as the gateway
message persona (WebSocket, see Gateway API).
The alignment with schema 1.0 (language codes instead of language names, version and revision
fields) is open.
Chatbot-Persona (URG-Standard)¶
Stand 23.10.2026: Schemafassung 1.0. Die Seite von uGo Mobility ist ein Entwicklungsstand, noch nicht freigegeben und noch nicht am Gerät geprüft. Einrichtung am Roboter: Technikerhandbuch — Persona des Assistenten.
Die Persona beschreibt, wer der Sprachassistent eines Geräts ist. Jede URG-Anwendung mit Sprachassistent nutzt dasselbe Datenmodell: eine Persona je Gerät, sieben Inhaltsfelder und vier Verwaltungsfelder. Rolle, Tonfall und Sicherheitssatz sind feste Produkttexte, keine Felder: Die Persona ändert, wer der Assistent ist und wo er steht, nie, was das Gerät darf.
Datenmodell (Schema 1.0)¶
| Feld | Typ | Pflicht | Regel | Gesetzt von |
|---|---|---|---|---|
schemaVersion |
Zeichenkette | ja | genau "1.0"; jeder andere Wert wird abgewiesen, nie umgewandelt |
Client |
product |
Zeichenkette | ja | ugo-me oder ugo-mobility |
Client |
revision |
Ganzzahl | nein | ≥ 1; erste Speicherung 1, jede angenommene Speicherung +1; ein vom Client gesendeter Wert zählt nicht | Gerät |
updatedAt |
Zeichenkette | nein | Zeitpunkt der angenommenen Speicherung, RFC 3339 mit Versatz | Gerät |
name |
Zeichenkette | ja | mindestens ein Nicht-Leerzeichen | Client |
context |
Zeichenkette | ja | darf leer sein; dann entfällt sein Satz | Client |
welcome |
Zeichenkette | ja | darf leer sein; dann entfällt sein Satz | Client |
languages |
Liste von ISO-639-1-Codes | ja | eindeutig, mindestens einer; de, en, fr, es, it, nl bietet jedes Produkt an |
Client |
allowed |
Liste von Zeichenketten | ja | darf leer sein; jeder Eintrag ohne Leerzeichen am Anfang oder Ende und nicht leer | Client |
forbidden |
Liste von Zeichenketten | ja | wie allowed |
Client |
stayout |
Liste von Zeichenketten | ja | wie allowed |
Client |
Weitere Felder werden nicht angenommen. Damit kann kein Schlüssel, kein Kennwort und keine Bewegungsfreigabe in eine Persona gelangen. Jede Stelle, die eine Persona schreibt, prüft sie gegen das Schema und antwortet bei einem Fehler mit einem Textschlüssel, nie mit einer stillen Korrektur.
Systemkontext¶
Aus der Persona baut das Produkt einen Systemkontext für den Sprachdienst, immer in dieser Reihenfolge: Rollensatz mit dem Namen → Standort und Aufgabe → Begrüßung → Sprachen mit dem Rückfall „höflich auf Englisch antworten“ → darf → darf nicht → heraushalten → Tonfallsatz. Leere Felder lassen ihren Satz weg. Produkte, deren Sprachkette zu einer Bewegung führen kann, schließen den Text mit einem festen Sicherheitssatz: Der Assistent kann das Gerät nicht per Sprache bewegen, jede Fahrt braucht eine Bestätigung durch Berührung am Bildschirm. Kein Feld kann ihn entfernen.
Sicherheit und Datenschutz¶
- Keine Fahrt und keine Bewegung allein per Sprache. Kein Persona-Feld gibt eine Bewegung frei; jede Bewegung, die aus Sprache entsteht, startet erst nach der Berührung Ja in einer Rückfrage am Bildschirm.
- Sprache ersetzt weder den Not-Halt am Gerät noch die Halteschaltfläche am Bildschirm.
- Das Speichern einer Persona schaltet die Sprachbedienung weder ein noch aus; dafür gibt es einen eigenen Schalter.
- Persona-Texte gehen als Anweisung an einen Sprachdienst in der Cloud. Sie dürfen keine personenbezogenen Daten Dritter, keine Gesundheitsdaten und keine Zugangscodes enthalten. Die Einrichtungsfläche sagt das in sechs Sprachen.
uGo Mobility¶
Die Persona liegt auf dem Roboter als eine Datei daten/persona.json, atomar geschrieben. Routen
des uGo-Servers:
| Route | Verfahren | Wer | Anfrage | Antwort |
|---|---|---|---|---|
/api/persona |
GET | jeder am Gerät; aus dem Netz mit Sitzung | — | Techniker: das ganze Dokument; alle anderen: {name} · 404 api.persona-keine |
/api/persona |
PUT | nur Techniker (403 auch mit Dienstschlüssel) | die Persona nach Schema 1.0, product: "ugo-mobility"; Sprachen nur de, en, fr, es, it, nl |
200 {persona, uebertragung, schluessel?} · 400 api.persona-ungueltig (werte.feld), api.persona-fassung, api.persona-produkt, api.unlesbar, api.anfrage-zu-lang · 500 api.persona-ablage |
/api/persona/uebertragen |
POST | nur Techniker | — | 200 {uebertragung, schluessel?} · 404 api.persona-keine |
uebertragung ist ok, fehlgeschlagen oder keine-adresse. Nach einer angenommenen Speicherung
gibt der Roboter den Systemkontext an den Sprachdienst weiter; misslingt das, bleibt die Persona
gespeichert, und die Antwort trägt api.persona-nicht-uebertragen. Grenzen dieses
Entwicklungsstands: Name 40, context 2.000 und welcome 300 Zeichen, höchstens 20 Regeln mit je
200 Zeichen je Liste.
Name an der Sprachwolke. Die Oberfläche gibt den Namen mit der Brückenmethode
personaNameSetzen(schluessel, name) an die Kiosk-Hülle; die Hülle zeigt ihn vor dem
Zustandstext. Wie jede Brückenmethode braucht sie den Rahmenschlüssel, den die Hülle nur der
uGo-Seite im Hauptrahmen gibt (siehe Voice and Language Models).
Übergabeformat. Wie der Sprachdienst den Systemkontext übernimmt, ist je Anlage zu bestätigen, bevor die Sprachbedienung eingeschaltet wird.
uGo Me¶
uGo Me setzt die Persona auf einem eigenen Bildschirm und sendet die sieben Inhaltsfelder als
Gateway-Nachricht persona (WebSocket, siehe
Gateway API). Die Angleichung an Schema 1.0
(Sprachcodes statt Sprachnamen, Fassungs- und Revisionsfelder) ist offen.