> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# EU-KI-Gesetz Art. 50 Transparenz für KI-Agents

> Wie Devotel Orbits KI-Sprach- und Chat-Agents die Transparenz-Anforderungen von EU-KI-Gesetz Art. 50 erfüllen und wie Sie sie konfigurieren und verifizieren.

# EU-KI-Gesetz — Art. 50 Transparenz

Art. 50 des EU-KI-Gesetzes verlangt, dass eine Person informiert wird,
wenn sie mit einem KI-System interagiert (außer wenn dies aus dem Kontext
offensichtlich ist), und dass KI-generierter oder synthetisch veränderter
Audio-, Bild-, Video- oder Text-Content als solcher markiert wird. Die
Verpflichtung gilt ab **2. August 2026**.

Diese Seite dokumentiert die AI-Ausweisungs-Kontrollen, die Devotel Orbit
bereits ausgeliefert, die diese Pflicht für KI-Sprach- und Chat-Agents
erfüllen, wie sie zu aktivieren sind und wie Sie Evidenz für einen
Regulator oder Enterprise-Käufer exportieren.

***

## Überblick

KI-Ausweisung ist ein **mandantenscoped, per-Regulation-Opt-in**. Eine
einzige Einstellungsfläche treibt dasselbe Verhalten für vier
Regulierungen, die die gleiche Form teilen: EU-KI-Gesetz Art. 50,
Koreas AI Basic Act (live seit 2026-01-22), Kalifornien SB 243 (live
seit 2026-01-01) und Utahs AI Policy Act. Konfigurieren Sie sie unter
**Einstellungen → Compliance → KI-Ausweisung** im Dashboard oder über
die unten beschriebene API.

Ausweisung ist **standardmäßig aus** für jeden Workspace. Ein
Mandanten-Operator schaltet die Regeln, die auf ihren Verkehr Anwendung
finden.

> **Keine automatische Geo-Detektion.** Orbit infundiert keine
> Zuständigkeit eines Kontakts aus Rufnummer, Adresse oder IP — das
> Aktivieren einer Regel gilt Workspace-wide für jede KI-Interaktion;
> sie schaltet nicht per-Kontakt basierend auf Standort ein oder aus.
> Wenn der Verkehr Ihrer Organisation die EU berührt, aktivieren Sie
> die Regel `eu_ai_act_enabled` für den gesamten Workspace. Die eine
> Ausnahme ist die Kalifornien SB 243-Minderjährigen-Reminder, die nur
> für Kontakte abwendet, die Sie explizit als Minderjährige markiert
> haben — Orbit infundiert nie Minderjährigkeit aus einem Geburtsdatum
> oder einem anderen Signal.

## Was heute ausgeliefert ist

1. **Chat-Hinweis** — ein konfigurierbarer Hinweis („Sie chatten mit
   einem KI-Assistenten…") wird der ersten Antwort eines KI-Agents in
   einem Gespräch vorgestellt. Er wird einmal pro Gespräch gesendet —
   er wiederhilt nicht bei jedem Turn.
2. **Voice-Intro** — ein konfigurierbares gesprochenes Intro („Dieser
   Anruf wird von einem KI-Sprach-Agent bearbeitet…") wird abgespielt,
   bevor ein KI-Sprach-Agent einen Anruf beginnt. Sie können eine
   vorher aufgezeichnete Audio-URL liefern oder Orbit den Text合成
   lassen.
3. **KI-generierter Content-Marker** — Nachrichten, die von einem
   KI-Agent gesendet werden, werden mit `metadata.ai_generated: true`
   gestempelt. Aufgezeichnete Anrufe mit jedwedem KI-Einbezug werden
   mit EU-KI-Gesetz Art. 50-Provenienz-Metadaten auf der archivierten
   Aufzeichnung gestempelt. Wo der konfigurierte TTS-Provider ein
   unhörbares Content-Provenienz-Wasserzeichen einbettet, wird dieser
   Support per Anruf aufgezeichnet — Watermarking-Coverage variiert
   heute nach TTS-Provider, also behandeln Sie es als zusätzliches
   Signal, nicht als universelle Garantie.
4. **Kalifornien SB 243-Minderjährigen-Reminder** — wenn aktiviert,
   bekommen explizit als Minderjährige markierte Kontakte einen
   periodischen „ Sie reden mit einer KI"-Reminder in lang-laufenden
   Sessions, auf einem konfigurierbaren Intervall.
5. **Konformität-Dossier-Export** — ein mückloses Per-Agent-Evidence-
   Paket, das die Transparenz-Konfiguration des Agents, Evaluation-/
   Red-Team-Ergebnisse, Human-Oversight-Approvals und den
   Decision-Audit-Log auf EU-KI-Gesetz Art. 12, 14, 15 und 50
   abbildet.
6. **KI-Ausweisungs-Ledger-Export** — ein datenschutzfreundliches,
   tamper-evidentes, kryptographisch signiertes Ledger, das beweist,
   *wann* und *wo* eine KI (nicht ein Mensch) eine Interaktion bearbeitet
   hat, unabhängig verifizierbar ohne Orbits UI zu vertrauen.

## KI-Ausweisung konfigurieren

### Dashboard

Navigieren Sie zu **Einstellungen → Compliance → KI-Ausweisung**.
Edieren Sie den Chat-Notice- und Voice-Intro-Copy, dann schalten Sie
**EU KI-Gesetz §50** (und jede andere anwendbaren Zuständigkeitsregeln)
unter „Zuständigkeits-Regeln". Schalten Sie **Standardmäßig aus** ein,
damit die Notices tatsächlich präsentiert werden — die
Zuständigkeits-Toggles allein markieren nur, welche Regelungen gelten;
**Default-Enabled** ist das, was Stempelung und Notice-Delivery
aktiviert.

### API

```bash theme={null}
GET /api/v1/compliance/ai-disclosure
```

Gibt den aktuellen Singleton-Einstellungs-Datensatz des Mandanten zurück
(oder `{ "settings": null }` wenn nie konfiguriert):

```json theme={null}
{
  "data": {
    "settings": {
      "id": "aidisc_default",
      "defaultEnabled": true,
      "chatNoticeText": "You are chatting with an AI assistant…",
      "voiceIntroAudioUrl": null,
      "voiceIntroText": "This call is being handled by an AI agent…",
      "minorBreakReminderMinutes": 60,
      "marketingDisclosureRequired": true,
      "krDisclosureEnabled": false,
      "caMinorReminderEnabled": true,
      "euAiActEnabled": true
    }
  }
}
```

```bash theme={null}
PUT /api/v1/compliance/ai-disclosure
```

Akzeptiert ein Partial-Update — nur die gelieferten Keys ändern.
Braucht die `owner`- oder `admin`-Rolle.

```json theme={null}
{
  "default_enabled": true,
  "chat_notice_text": "Sie chatten mit einem KI-Assistenten.",
  "voice_intro_text": "Dieser Anruf wird von einem KI-Sprach-Agent bearbeitet.",
  "eu_ai_act_enabled": true
}
```

| Feld                            | Typ                     | Notizen                                                                                                |
| ------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------ |
| `default_enabled`               | boolean                 | Hauptschalter — stempeln `metadata.ai_generated` und präsentiert die Notices auf jeder KI-Interaktion. |
| `chat_notice_text`              | string (1–2000 Zeichen) | Text, der der KI-Agent-ersten-Chat-Antwort pro Gespräch vorgestellt wird.                              |
| `voice_intro_text`              | string (1–2000 Zeichen) | Text, der gespült, bevor ein KI-Sprach-Agent verbindet, wenn kein Audio-URL gesetzt ist.               |
| `voice_intro_audio_url`         | HTTPS-URL oder `null`   | Optional vorher aufgezeichnetes Intro; overrides die Synthese aus `voice_intro_text`.                  |
| `eu_ai_act_enabled`             | boolean                 | Wendet EU-KI-Gesetz-Art. 50-Transparenzpflichten an.                                                   |
| `kr_disclosure_enabled`         | boolean                 | Wendet Koreas AI Basic Act-Ausweisung an (wirksam 2026-01-22).                                         |
| `ca_minor_reminder_enabled`     | boolean                 | Wendet den Kalifornien SB 243-Minderjährigen-Reminder an.                                              |
| `minor_break_reminder_minutes`  | integer (1–1440)        | Wie oft der SB 243-Reminder während einer Session wiederholt.                                          |
| `marketing_disclosure_required` | boolean                 | Verlangt eine explizite KI-Ausweisung auf automatisiertem Marketing-Outreach.                          |

Jede Aktualisierung wird im Audit-Log `compliance.ai_disclosure_updated`
geschrieben und den In-Prozess-Einstellungs-Cache sofort invalid, sodass
eine Toggle beim nächsten Agent-Turn wirkt.

## Sie verfolgen, dass es funktioniert

1. **Live-Check** — mit `default_enabled` und `eu_ai_act_enabled` ein
   neuen Chat mit einem KI-Agent starten und bestätigen, der
   konfigurierte `chat_notice_text` erscheint auf der ersten Antwort;
   eine Testanruf zu einem KI-Sprach-Agent platzieren und bestätigen,
   das Voice-Intro vor dem Agent-Sprechen spielt.

2. **Per-Turn-Metadata** — eine vom Agent gesendete Chat-Nachricht
   inspizieren und `metadata.ai_generated` als `true` bestätigen.

3. **Konformität-Dossier** — das Evidence-Paket für einen Agent
   exportieren:

   ```bash theme={null}
   GET /api/v1/agents/{id}/conformity-dossier?format=json
   ```

   `?format=html` hinzufügen für ein downloadable, menschenlesbares
   Evidence-Paket, das zu einem Auditor oder Enterprise-
   Sicherheits-Questionnaire geeignet ist. Jede Sektion zeigt `present`,
   `partial`, `absent` oder `unavailable` — ein älterer Mandant ohne
   eine backing-Tabelle degradërt nur diese eine Sektion statt des
   ganzen Exports zu fallen.

4. **KI-Ausweisungs-Ledger** — das signiertes, tamper-evidentes Ledger
   für einen Agent exportieren:

   ```bash theme={null}
   GET /api/v1/agents/{id}/ai-disclosure-ledger?format=json
   ```

   Das Ledger trägt nur Provenienz-Metadaten (Agent-ID, Modell, Ergebnis,
   Timestamps, aggregate Zählungen) — nie verbatim Prompt/Response-Text —
   und ist mit einem detached Content-Credential signiert, sodass ein
   Handschrift zu einem Regulator oder Partner verifiziert werden kann
   ohne Orbits UI zu vertrauen.

Beide Exporte brauchen die `owner`-, `admin`- oder `developer`-Rolle und
sind selbst audit-logged.

### Eine degradierte Dossier-Sektion remedieren

Jede Dossier-Sektion berichtet einen von vier Status, im JSON
(`sections[].status`) und im HTML-Paket-Zweig zu sehen. Behandeln Sie
jede andere als `present` als To-do, nicht als Urteil:

| Status        | Was es bedeutet                                                                                                                                                                                                      | Was zu tun                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `present`     | Die Sektion trägt erfasste Evidenz.                                                                                                                                                                                  | Nichts. Diese Sektion unterstützt einen Audit heute.                                                                                                                                                                                                                                                                                                                                                    |
| `partial`     | Die Fähigkeit existiert, aber Evidenz ist dünn oder unvollständig — zum Beispiel eine Fairness-Vergleich, wo keine Kohorte genug getaggte Cases hat, oder eine adversarial Coverage-Sektion ohne datierte Scorecard. | Die Sektionen-`note` nennt die konkrete Lücke. Schließen Sie sie, indem Sie den zugrundeliegenden Workflow laufen lassen — eine Eval-Suite laufen, Golden-Set-Cases mit Kohorte taggen, den Red-Team-Pack laufen oder ein Tool-Approval-Gate aktivieren — dann re-exportieren. Für einen Audit antwortbar als „capability demonstrated"; ein Assessor kann immer noch erfasste Ergebnisse verlangen.    |
| `absent`      | Der Backing-Store funktioniert, hat aber noch nichts aufgezeichnet.                                                                                                                                                  | Dasselbe Format: die `note` sagt, was zu laufen. Keine Plattform-Aktion erforderlich — erfassen Sie die Evidenz und re-exportieren.                                                                                                                                                                                                                                                                     |
| `unavailable` | Die Backing-Datensätze sind für diesen Mandanten nicht provisioniert (typisch auf einem Workspace erstellt bevor diese Evidenzklasse shipped). Der Rest des Pakets exportiert immer noch.                            | Es ist eine Provisioning-Lücke, kein fehlgeschlagener Export. Öffnen Sie ein Support-Ticket, das den Agent und den degraded Sektion-Key nennt; Provisioning ist normal ohne Datenänderungen gelöst. Bis es gelöst, erklären Sie die Lücke in einem Audit mit der Dossier-`note`. Falls der Export insgesamt statt degradieren einer Sektion fehlschlägt, das ist ein Bug — Support sofort kontaktieren. |

## Das signierte Ledger verifizieren

Die Signatur des KI-Ausweisungs-Ledgers deckt jedes Byte des Ledger-Körpers,
sodass „unabhängig verifizierbar" mechanisch ist: den Digest und MAC über
dem Empfangen re-enige und vergleichen.

1. **Das JSON-Ledger exportieren** (dies ist die zu verifizierende Payload):

   ```bash theme={null}
   GET /api/v1/agents/{id}/ai-disclosure-ledger?format=json
   ```

   Die Antwort umschließt das Ledger in `data.ledger`. Seine Form:
   `ledger_version`, `generated_at`, `tenant_id`, `agent`,
   `disclosure_posture`, `jurisdiction_resolution`, `summary`, `entries`,
   `note`, `disclaimer` und ein detached `signature`-Objekt:

   ```json theme={null}
   {
     "signature": {
       "v": "ovl1",
       "alg": "HMAC-SHA256",
       "content_sha256": "…",
       "mac": "…"
     }
   }
   ```

2. **Das Ledger dem Verifier-Endpunkt posten.** Der detached Credential
   lebt innerhalb des JSON — nichts weiteres zu downloaden:

   ```bash theme={null}
   curl -X POST https://orbit.devotel.io/api/v1/agents/ai-disclosure-ledger/verify \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{"ledger": <das Ledger-Objekt>}'

   # → { "data": { "valid": true, "reason": "ok" } }
   ```

   `reason` ist eines von `ok`, `content_mismatch` (Body nach Signierung
   editiert), `signature_invalid` (MAC passt nicht zum Content),
   `unsupported_version` (unbekannte Credential-Version) oder
   `malformed_ledger`.

3. **Offline verifizieren**, wenn Sie den Check unabhängig von Orbits API
   gewährleisten möchten: das `signature`-Feld abstreifen, den
   verbleibenden Body als canonical JSON (Objekt-Keys rekursiv sortiert)
   serialisieren und SHA-256 das Ergebnis — es muss
   `signature.content_sha256` gleichen. Der MAC verlangt zudem des
   Workspace-Signierungs-Key, sodass ein manipuliertes Ledger von jedem
   erkannt werden kann, aber das Produzieren des MAC ist Orbit-side only.

   ```text theme={null}
   body   = Ledger minus dem "signature"-Feld
   digest = SHA-256(canonical_json(body))   # Keys rekursiv sortiert
   assert digest == ledger.signature.content_sha256
   ```

## Bestätigen, dass die Notice auf einem Gespräch ausgelöst

Das per-Turn-Flag `metadata.ai_generated: true` beweist die *Antwort* war
KI-authored; es beweist nicht, die Ausweisung-*Notice* war gezeigt. Drei
Flächen beantworten „wurde die Notice auf diesem Gespräch ausgelöst?":

1. **Das Gespräch lesen** — auf einem Text-Kanal wird der Chat-Notice
   der Agent-ersten-Antwort vorgestellt, sodass der Notice-Text verbatim
   in der Gespräch-Nachricht-Liste im Dashboard und über die
   Conversations-API sichtbar ist. Dieselbe Eigenschaft gilt für Sprache:
   das Intro spielt vor dem Agent-Sprechen, also trägt ein aufgezeichnter
   Anruf ihn am Anfang.
2. **Den Per-Gespräch-Timestamp prüfen** — sobald der Chat-Notice
   geliefert, stempelt die Plattform `first_disclosure_sent_at` auf
   diesem Gespräch und die Notice wiederhilt dort nie. Wenn Sie (oder
   Ihre Compliance-Tooling) Exporte oder Warehouse-Snapshots von
   Gespräch-Datensätzen halten, ist ein non-null-Wert durability Beweis,
   die Notice wurde auf diesem Gespräch ausgelöst.
3. **Das Audit-Log für Config-Änderungen prüfen** — jede Änderung der
   Ausweisung-Einstellungen wird als Audit-Action
   `compliance.ai_disclosure_updated` recorded, und jeder Dossier- oder
   Ledger-Export ist als `agent.conformity_dossier.exported` oder
   `agent.ai_disclosure_ledger.exported` geloggt. Wenn eine Notice auf
   einem Gespräch nicht ausgelöst, wo Sie es erwartet, der Audit-Trail
   dieser Actions plus der Gespräch-Timestamp oben isoliert, ob
   Ausweisung damals aus war oder die Notice zu senden wörtlich
   fehlschlug.

## Posture-Matrix pro Regulation

Alle vier Regulationen sind Mandanten-eigene Konfiguration: Orbit liefert
die Kontrollen und die Evidence-Exporte; Sie entscheiden, welche
Toggles auf Ihren Verkehr anwendbar sind. Da die Regeln Workspace-wide
Opt-ins sind, aktivieren Sie jede Regulation, die Ihren Verkehr plausibel
berührt.

| Kontrolle / Export                      | EU KI-Gesetz (EU-Verkehr)                                                     | Korea AI Basic Act (Korea-Verkehr) | Kalifornien SB 243 (Minderjährige Kontakte)          | Utah AI Policy Act (Utah-Verkehr) |
| --------------------------------------- | ----------------------------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------- | --------------------------------- |
| `default_enabled` (Hauptschalter)       | Ein                                                                           | Ein                                | Ein                                                  | Ein                               |
| `eu_ai_act_enabled`                     | Ein                                                                           | Optional                           | Optional                                             | Optional                          |
| `kr_disclosure_enabled`                 | Optional                                                                      | Ein                                | Optional                                             | Optional                          |
| `ca_minor_reminder_enabled`             | Optional                                                                      | Optional                           | Ein für Kontakte, die Sie `is_minor` markiert haben  | Optional                          |
| `minor_break_reminder_minutes`          | —                                                                             | —                                  | Auf die erforderliche Kadenz gesetzt (Default 180)   | —                                 |
| `marketing_disclosure_required`         | Empfohlen                                                                     | Empfohlen                          | Empfohlen                                            | Empfohlen                         |
| `chat_notice_text` / `voice_intro_text` | Beiden setzen — die KI nennen und für die EU KI-generierten Content markieren | Beiden setzen                      | Beiden setzen                                        | Beiden setzen                     |
| Konformität-Dossier-Export              | Primär-Evidence-Paket (Art. 10–15, 50)                                        | Unterstützende Evidenz             | Unterstützende Evidenz (Oversight + Audit-Sektionen) | Unterstützende Evidenz            |
| KI-Ausweisungs-Ledger-Export            | Provenienz-Beweis (wann/wo KI sprach)                                         | Provenienz-Beweis                  | Provenienz-Beweis für Minderjährige-Kontakt-Sessions | Provenienz-Beweis                 |

Zwei Vorsichten, die auf jeden Zeilen gelten: die
Zuständigkeits-Toggles geolocate Kontakte nicht — sie gelten Workspace-
wide Opt-ins —, und der SB 243-Reminder ausgelöst nie für Kontakte, die
Sie nicht explizit als Minderjährige markiert haben. Orbit infundiert
nie Zuständigkeit oder Minderjährigkeit.

## Bekannte Einschränkungen

* Zuständigkeits-Regeln sind Workspace-wide Opt-ins, keine automatische
  per-Kontakt-Geolokation — siehe die Anmerkung oben.
* TTS-eingebettete Audio-Watermarking hängt vom konfigurierten
  Sprach-Provider ab; nicht jeder Provider unterstützt es bis Mitte 2026.
* Diese Seite beschreibt die Transparenz (Art. 50) Fläche. Sie deckt
  nicht die EU-KI-Gesetz-besonderen Hochrisiko-System-Pflichten (Att.
  III) — siehe Hinweis unten.

## Att. III Hochrisiko-Pflichten

Die EU-KI-Gesetz-Hochrisiko-Pflichten (Att. III-Use-Cases — zum Beispiel
die Emotionserkennung, biometrische Kategorisierung und
Credit-Scoring-Klassen) sitzen außerhalb dieser Seite. Art. 50-Transparenz
gilt für jeden KI-Agent unabhängig vom Risiko-Klasser; Att. III fügt
eine separate Compliance-Stufe hinzu — Risikomanagement, Daten-Governance,
technische Dokumentation und Konformitätsbewertung — auf einer
späteren Timeline als das 2. August 2026-Transparenz-Datum. Klassifizieren
Sie Ihren Deployment erst gegen Att. III; ein Agent in einem gelistetem
Use-Case braucht auf der hier beschriebenen Ausweisungs-Kontrollen
zusätzlicher Posture-Arbeit. Die [Compliance-Posture-FAQ](/compliance/posture-faq#does-this-page-cover-the-eu-ai-acts-annex-iii-high-risk-tier)
trägt einer passenden Eintrag, wo der Split zwischen Mandanten-eigene
Att. III-Arbeit und Orbits Transparenz-Kontrollen fällt.

Orbits Rolle bleibt auf entweder Weise gleich: die Plattform liefert
die Transparenz- und Evidenz-Flächen; die Klassifikation und die
Att. III-Pflichten sind Ihre Pflicht in dem gleichen Weges, wie jede
US-Voice-Consent-Frage.

Wenn Sie eine Anforderung haben, die diese Seite nicht abdeckt,
kontaktieren Sie [trust@devotel.io](mailto:trust@devotel.io).
