> ## 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.

# Transparence de l'article 50 de l'EU AI Act pour les agents IA

> Comment les agents vocaux et conversationnels IA de Devotel Orbit satisfont l'obligation de transparence de l'article 50 de l'EU AI Act, et comment la configurer et la vérifier

# EU AI Act — Transparence de l'article 50

L'article 50 de l'EU AI Act exige qu'une personne soit informée lorsqu'elle
interagit avec un système d'IA (sauf si cela est évident dans le contexte),
et que le contenu audio, image, vidéo ou texte généré par IA ou modifié de
façon synthétique soit marqué comme tel. L'obligation s'applique à partir du
**2 août 2026**.

Cette page documente les contrôles de divulgation IA que Devotel Orbit livre
déjà pour satisfaire cette obligation pour les agents vocaux et
conversationnels IA, comment les activer, et comment exporter la preuve pour
un régulateur ou un acheteur d'entreprise.

***

## Vue d'ensemble

La divulgation IA est un **opt-in par règlement, à portée de locataire**. Une
seule surface de paramètres pilote le même comportement pour quatre
règlements qui partagent la même forme : l'article 50 de l'EU AI Act, la loi
coréenne sur l'IA de base (en vigueur depuis le 22/01/2026), le California
SB 243 (en vigueur depuis le 01/01/2026), et l'Utah AI Policy Act. Configurez-
la sous **Paramètres → Conformité → Divulgation IA** dans le tableau de bord,
ou par l'API décrite ci-dessous.

La divulgation est **désactivée par défaut** pour chaque espace de travail. Un
opérateur du locataire active les règles qui s'appliquent à son trafic.

> **Pas de géodétection automatique.** Orbit n'infère pas la juridiction d'un
> contact depuis un numéro de téléphone, une adresse ou une IP — activer une
> règle l'applique à l'ensemble de l'espace de travail sur chaque interaction IA,
> elle ne s'active ou se désactive pas par contact selon la localisation. Si le
> trafic de votre organisation touche l'UE, activez la règle `eu_ai_act_enabled`
> pour tout l'espace de travail. L'unique exception est le rappel pour mineur du
> California SB 243, qui ne se déclenche que pour les contacts que vous avez
> explicitement marqués comme mineur — Orbit n'infère jamais le statut de mineur
> depuis une date de naissance ou tout autre signal.

## Ce qui est livré aujourd'hui

1. **Avis conversationnel** — un avis configurable (« Vous dialoguez avec un
   assistant IA… ») est préfixé à la première réponse d'un agent IA dans une
   conversation. Il est envoyé une fois par conversation — il ne se répète pas
   à chaque tour.
2. **Introduction vocale** — une introduction parlée configurable (« Cet
   appel est traité par un agent IA… ») est jouée avant qu'un agent vocal IA
   ne commence un appel. Vous pouvez fournir une URL audio préenregistrée ou
   laisser Orbit synthétiser le texte.
3. **Marquage de contenu généré par IA** — les messages envoyés par un agent
   IA sont estampillés avec `metadata.ai_generated: true`. Les appels
   enregistrés avec une quelconque implication d'IA sont estampillés avec les
   métadonnées de provenance de l'article 50 de l'EU AI Act sur l'enregistrement
   archivé. Là où le fournisseur de texte-parole configuré intègre un
   filigrane de provenance de contenu inaudible, ce support est enregistré par
   appel — la couverture de filigranage varie selon le fournisseur TTS
   aujourd'hui, donc traitez-le comme un signal supplémentaire plutôt qu'une
   garantie universelle.
4. **Rappel pour mineur du California SB 243** — lorsqu'il est activé, les
   contacts explicitement marqués comme mineurs reçoivent un rappel périodique
   « vous parlez à une IA » pendant les sessions de longue durée, à un intervalle
   configurable.
5. **Export du dossier de conformité** — un pack de preuves d'un clic, par
   agent, qui mappe la configuration de transparence de l'agent, les résultats
   d'évaluation/red team, les approbations de supervision humaine, et le journal
   d'audit des décisions aux articles 12, 14, 15 et 50 de l'EU AI Act.
6. **Export du registre de divulgation IA** — un registre respectueux de la
   vie privée, inviolable, signé cryptographiquement, prouvant *quand* et *où*
   une IA (et non un humain) a traité une interaction, vérifiable
   indépendamment sans faire confiance à l'UI d'Orbit.

## Configurer la divulgation IA

### Tableau de bord

Naviguez vers **Paramètres → Conformité → Divulgation IA**. Modifiez le texte
de l'avis conversationnel et de l'introduction vocale, puis activez **EU AI
Act §50** (et toute autre règle de juridiction applicable) sous « Règles de
juridiction ». Activez **Activé par défaut** afin que les avis soient
réellement présentés — les commutateurs de juridiction seuls ne marquent que
quels règlements s'appliquent ; **Activé par défaut** est ce qui active
l'estampillage et la livraison des avis.

### API

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

Renvoie la ligne de paramètres singleton actuelle du locataire (ou
`{ "settings": null }` si jamais configurée) :

```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
```

Accepte une mise à jour partielle — seules les clés fournies changent. Exige
le rôle `owner` ou `admin`.

```json theme={null}
{
  "default_enabled": true,
  "chat_notice_text": "You are chatting with an AI assistant.",
  "voice_intro_text": "This call is being handled by an AI voice agent.",
  "eu_ai_act_enabled": true
}
```

| Champ                           | Type                       | Notes                                                                                                                 |
| ------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `default_enabled`               | booléen                    | Commutateur principal — estampille `metadata.ai_generated` et présente les avis ci-dessous sur chaque interaction IA. |
| `chat_notice_text`              | chaîne (1–2000 caractères) | Texte préfixé à la première réponse conversationnelle d'un agent IA par conversation.                                 |
| `voice_intro_text`              | chaîne (1–2000 caractères) | Texte parlé avant qu'un agent vocal IA ne se connecte, lorsqu'aucune URL audio n'est définie.                         |
| `voice_intro_audio_url`         | URL HTTPS ou `null`        | Introduction préenregistrée optionnelle ; remplace la synthèse depuis `voice_intro_text`.                             |
| `eu_ai_act_enabled`             | booléen                    | Appliquer les obligations de transparence de l'article 50 de l'EU AI Act.                                             |
| `kr_disclosure_enabled`         | booléen                    | Appliquer la divulgation de la loi coréenne sur l'IA de base (en vigueur au 22/01/2026).                              |
| `ca_minor_reminder_enabled`     | booléen                    | Appliquer le rappel pour mineur du California SB 243.                                                                 |
| `minor_break_reminder_minutes`  | entier (1–1440)            | Fréquence de répétition du rappel SB 243 pendant une session.                                                         |
| `marketing_disclosure_required` | booléen                    | Exiger une divulgation IA explicite sur les communications marketing automatisées.                                    |

Chaque mise à jour est écrite au journal d'audit
(`compliance.ai_disclosure_updated`) et invalide immédiatement le cache de
paramètres en cours, de sorte qu'un commutateur prend effet au tout prochain
tour d'agent.

## Vérifier qu'elle fonctionne

1. **Vérification en direct** — avec `default_enabled` et `eu_ai_act_enabled`
   activés, démarrez une nouvelle session de conversation avec un agent IA et
   confirmez que le `chat_notice_text` configuré apparaît sur la première
   réponse ; passez un appel de test à un agent vocal IA et confirmez que
   l'introduction vocale joue avant que l'agent ne parle.

2. **Métadonnées par tour** — inspectez un message de conversation envoyé par
   l'agent et confirmez que `metadata.ai_generated` est `true`.

3. **Dossier de conformité** — exportez le pack de preuves pour un agent :

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

   Ajoutez `?format=html` pour un pack de preuves téléchargeable et lisible par
   un humain, convenant à un auditeur ou un questionnaire de sécurité
   d'entreprise. Chaque section rapporte `present`, `partial`, `absent` ou
   `unavailable` — un locataire historique manquant une table de support
   dégrade cette seule section plutôt que de faire échouer tout l'export.

4. **Registre de divulgation IA** — exportez le registre signé et inviolable
   pour un agent :

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

   Le registre ne porte que des métadonnées de provenance (identifiant d'agent,
   modèle, résultat, horodatages, comptes agrégés) — jamais de texte de
   invite/réponse verbatim — et il est signé avec un identifiant de contenu
   détaché afin qu'une copie remise à un régulateur ou un partenaire puisse
   être vérifiée sans faire confiance à l'UI d'Orbit.

Les deux exports exigent le rôle `owner`, `admin` ou `developer` et sont eux-
mêmes journalisés en audit.

### Remédier à une section dégradée du dossier

Chaque section du dossier rapporte l'un des quatre statuts, affichés à la fois
dans le JSON (`sections[].status`) et dans le badge de section du pack HTML.
Traitez tout autre statut que `present` comme un à-faire, non un verdict :

| Statut        | Ce qu'il signifie                                                                                                                                                                                                   | Quoi faire                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `present`     | La section porte une preuve capturée.                                                                                                                                                                               | Rien. Cette section soutient un audit aujourd'hui.                                                                                                                                                                                                                                                                                                                                                                          |
| `partial`     | La capacité existe mais la preuve est mince ou incomplète — par exemple une comparaison d'équité où aucune cohorte n'a assez de cas étiquetés, ou une section de couverture adversariale sans fiche de score datée. | Le `note` de la section nomme l'écart spécifique. Comblez-le en exécutant le flux sous-jacent — exécutez une suite d'évaluation, étiquettez les cas de l'échantillon de référence avec une cohorte, exécutez le pack red team, ou activez une barrière d'approbation d'outil — puis ré-exportez. Répondable pour un audit comme « capacité démontrée » ; un évaluateur peut encore demander les résultats capturés.         |
| `absent`      | Le stockage de support fonctionne mais n'a rien enregistré pour l'instant.                                                                                                                                          | Même forme : le `note` vous dit quoi exécuter. Aucune action de plateforme n'est nécessaire — capturez la preuve et ré-exportez.                                                                                                                                                                                                                                                                                            |
| `unavailable` | Les enregistrements de support ne sont pas provisionnés pour ce locataire (typique sur un espace de travail créé avant que cette classe de preuve ne soit livrée). Le reste du pack s'exporte quand même.           | C'est un écart de provisionnement, pas un export échoué. Ouvrez un ticket de support nommant l'agent et la clé de section dégradée ; le provisionnement est normalement résolu sans aucune modification de données. Jusqu'à sa résolution, expliquez l'écart dans un audit avec le `note` du dossier. Si l'export échoue carrément au lieu de dégrader la seule section, c'est un bug — contactez le support immédiatement. |

## Vérifier le registre signé

La signature du registre de divulgation IA couvre chaque octet du corps du
registre, donc « vérifiable indépendamment » est mécanique : recalculez la
digestion et le MAC sur ce que vous avez reçu et comparez.

1. **Exportez le registre JSON** (c'est la charge utile à vérifier) :

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

   La réponse enveloppe le registre dans `data.ledger`. Sa forme :
   `ledger_version`, `generated_at`, `tenant_id`, `agent`, `disclosure_posture`,
   `jurisdiction_resolution`, `summary`, `entries`, `note`, `disclaimer`, et un
   objet `signature` détaché :

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

2. **POSTez le registre vers l'endpoint du vérificateur.** L'identifiant
   détaché vit dans le JSON lui-même — rien d'autre à télécharger :

   ```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": <the ledger object>}'

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

   `reason` est l'un de `ok`, `content_mismatch` (corps modifié après la
   signature), `signature_invalid` (le MAC ne correspond pas au contenu),
   `unsupported_version` (version d'identifiant inconnue), ou
   `malformed_ledger`.

3. **Vérifiez hors ligne** si vous voulez une vérification indépendante de
   l'API d'Orbit : retirez le champ `signature`, sérialisez le corps restant
   comme JSON canonique (clés d'objet triées récursivement), et faites un
   SHA-256 du résultat — il doit être égal à `signature.content_sha256`. Le MAC
   exige en plus la clé de signature de l'espace de travail, donc un registre
   altéré peut être détecté par n'importe qui, alors que la production du MAC
   reste du côté d'Orbit.

   ```text theme={null}
   body   = ledger minus the "signature" field
   digest = SHA-256(canonical_json(body))   # clés triées récursivement
   assert digest == ledger.signature.content_sha256
   ```

## Confirmer que l'avis s'est déclenché sur une conversation

Le drapeau par tour `metadata.ai_generated: true` prouve que la *réponse* a
été rédigée par IA ; il ne prouve pas que l'*avis* de divulgation a été
affiché. Trois surfaces répondent à « l'avis s'est-il déclenché sur cette
conversation ? » :

1. **Lisez la conversation** — sur un canal texte, l'avis conversationnel est
   préfixé à la première réponse de l'agent, donc le texte de l'avis est
   visible verbatim dans la liste des messages de la conversation dans le
   tableau de bord et par l'API des conversations. La même propriété tient
   pour la voix : l'introduction joue avant que l'agent ne parle, donc un
   appel enregistré la porte au début.
2. **Vérifiez l'horodatage par conversation** — une fois l'avis
   conversationnel livré, la plateforme estampille `first_disclosure_sent_at`
   sur cette conversation et l'avis ne s'y répète jamais. Si vous (ou votre
   outillage de conformité) conservez des exports ou des instantanés d'entrepôt
   des enregistrements de conversations, une valeur non nulle est une preuve
   durable que l'avis s'est déclenché pour cette conversation.
3. **Vérifiez le journal d'audit pour les changements de configuration** —
   chaque modification des paramètres de divulgation est enregistrée sous
   l'action d'audit `compliance.ai_disclosure_updated`, et chaque export de
   dossier ou de registre est journalisé comme
   `agent.conformity_dossier.exported` ou
   `agent.ai_disclosure_ledger.exported`. Si un avis ne s'est pas déclenché
   sur une conversation où vous l'attendiez, la piste d'audit de ces actions
   plus l'horodatage de conversation ci-dessus isole si la divulgation était
   désactivée à l'époque, ou si la livraison de l'avis a réellement échoué.

## Matrice de posture par règlement

Les quatre règlements sont de la configuration du locataire : Orbit livre les
contrôles et les exports de preuves ; vous décidez quels commutateurs
s'appliquent à votre trafic. Puisque les règles sont des opt-ins à échelle
d'espace de travail, activez chaque règlement que votre trafic touche
plausiblement.

| Contrôle / export                         | EU AI Act (trafic UE)                                                          | Loi coréenne IA de base (trafic Corée) | California SB 243 (contacts mineurs)                       | Utah AI Policy Act (trafic Utah) |
| ----------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------- | ---------------------------------------------------------- | -------------------------------- |
| `default_enabled` (commutateur principal) | Activé                                                                         | Activé                                 | Activé                                                     | Activé                           |
| `eu_ai_act_enabled`                       | Activé                                                                         | Optionnel                              | Optionnel                                                  | Optionnel                        |
| `kr_disclosure_enabled`                   | Optionnel                                                                      | Activé                                 | Optionnel                                                  | Optionnel                        |
| `ca_minor_reminder_enabled`               | Optionnel                                                                      | Optionnel                              | Activé pour les contacts que vous marquez `is_minor`       | Optionnel                        |
| `minor_break_reminder_minutes`            | —                                                                              | —                                      | Définir à la cadence requise (défaut 180)                  | —                                |
| `marketing_disclosure_required`           | Recommandé                                                                     | Recommandé                             | Recommandé                                                 | Recommandé                       |
| `chat_notice_text` / `voice_intro_text`   | Définir les deux — nommez l'IA et, pour l'UE, marquez le contenu généré par IA | Définir les deux                       | Définir les deux                                           | Définir les deux                 |
| Export du dossier de conformité           | Pack de preuves principal (Articles 10–15, 50)                                 | Preuve de soutien                      | Preuve de soutien (sections supervision + audit)           | Preuve de soutien                |
| Export du registre de divulgation IA      | Preuve de provenance (quand/où l'IA a parlé)                                   | Preuve de provenance                   | Preuve de provenance pour les sessions de contacts mineurs | Preuve de provenance             |

Deux précautions qui s'appliquent à chaque ligne : les commutateurs de
juridiction ne géolocalisent pas les contacts — ils appliquent la règle à
l'ensemble de l'espace de travail — et le rappel SB 243 ne se déclenche
jamais que pour les contacts que vous avez explicitement marqués comme
mineur. Orbit n'infère jamais la juridiction ni le statut de mineur.

## Limitations connues

* Les règles de juridiction sont des opt-ins à échelle d'espace de travail,
  pas une géolocalisation automatique par contact — voir la note ci-dessus.
* Le filigranage audio intégré au TTS dépend du fournisseur de voix configuré ;
  tous les fournisseurs ne le supportent pas à la mi-2026.
* Cette page décrit la surface de transparence (Article 50). Elle ne couvre
  pas les obligations distinctes des systèmes à haut risque (Annexe III) de
  l'EU AI Act — voir le pointeur ci-dessous.

## Obligations de haut risque de l'Annexe III

Les obligations de systèmes haut risque de l'EU AI Act (cas d'usage de
l'Annexe III — par exemple les classes de reconnaissance des émotions, de
catégorisation biométrique et de notation de crédit) sont hors de cette page.
La transparence de l'Article 50 s'applique à chaque agent IA quelle que soit
la classe de risque ; l'Annexe III ajoute un niveau de conformité distinct —
gestion des risques, gouvernance des données, documentation technique et
évaluation de la conformité — sur un calendrier plus tardive que la date de
transparence du 2 août 2026. Classez votre déploiement par rapport à l'Annexe
III d'abord ; un agent dans un cas d'usage listé a besoin de ce travail de
posture au-dessus des contrôles de divulgation décrits ici. La
[FAQ de posture de conformité](/compliance/posture-faq#does-this-page-cover-the-eu-ai-acts-annex-iii-high-risk-tier)
porte une entrée correspondante sur où tombe la répartition entre le travail
d'Annexe III du locataire et les contrôles de transparence d'Orbit.

Le rôle d'Orbit reste le même de toute façon : la plateforme livre la surface
de transparence et de preuves ; la classification et les obligations de
l'Annexe III sont les vôtres à assumer avec un conseil qualifié.

Si vous avez une exigence que cette page ne couvre pas, contactez
[trust@devotel.io](mailto:trust@devotel.io).
