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

# Transparencia del Artículo 50 del EU AI Act para agentes de IA

> Cómo los agentes de voz y chat de IA de Devotel Orbit satisfacen la obligación de transparencia del Artículo 50 del EU AI Act, y cómo configurarla y verificarla

# EU AI Act — Transparencia del Artículo 50

El Artículo 50 del EU AI Act exige que a una persona se le informe cuando interactúa con un sistema de IA (salvo que resulte obvio del contexto), y que el contenido de audio, imagen, vídeo o texto generado por IA o modificado sintéticamente se marque como tal. La obligación se aplica desde el **2 de agosto de 2026**.

Esta página documenta los controles de divulgación de IA que Devotel Orbit ya incluye para satisfacer esta obligación en agentes de voz y chat de IA, cómo habilitarlos y cómo exportar evidencia para un regulador o un comprador empresarial.

***

## Resumen

La divulgación de IA es un **opt-in por regulación y por tenant**. Una única superficie de configuración impulsa el mismo comportamiento para cuatro regulaciones que comparten la misma forma: el Artículo 50 del EU AI Act, la AI Basic Act de Corea (en vigor desde 2026-01-22), la SB 243 de California (en vigor desde 2026-01-01) y la Utah AI Policy Act. Configúrela en **Settings → Compliance → AI Disclosure** en el dashboard, o vía la API descrita abajo.

La divulgación está **desactivada por defecto** en cada workspace. Un operador del tenant activa las reglas que se aplican a su tráfico.

> **Sin geodetección automática.** Orbit no infiere la jurisdicción de un contacto a partir de un número de teléfono, dirección o IP — habilitar una regla la aplica a todo el workspace para toda interacción de IA; no se activa ni desactiva por contacto según la ubicación. Si el tráfico de su organización toca la UE, habilite la regla `eu_ai_act_enabled` para todo el workspace. La única excepción es el recordatorio de menor de la SB 243 de California, que se dispara solo para contactos que usted ha marcado explícitamente como menores — Orbit nunca infiere la condición de menor a partir de una fecha de nacimiento u otra señal.

## Lo que está disponible hoy

1. **Aviso de chat** — un aviso configurable ("Está chateando con un asistente de IA…") se antepone a la primera respuesta de un agente de IA en una conversación. Se envía una vez por conversación — no se repite en cada turno.
2. **Introducción de voz** — una introducción hablada configurable ("Esta llamada está siendo atendida por un agente de IA…") se reproduce antes de que un agente de IA de voz comience una llamada. Puede suministrar una URL de audio pregrabada o dejar que Orbit sintetice el texto.
3. **Marcado de contenido generado por IA** — los mensajes enviados por un agente de IA se estampan con `metadata.ai_generated: true`. Las llamadas grabadas con cualquier participación de IA se estampan con metadatos de procedencia del Artículo 50 del EU AI Act en la grabación archivada. Donde el proveedor de texto a voz configurado integra una marca de agua inaudible de procedencia de contenido, ese soporte se registra por llamada — la cobertura de la marca de agua varía por proveedor de TTS hoy en día, por lo que trátelo como una señal adicional más que como una garantía universal.
4. **Recordatorio de menor de California SB 243** — cuando está habilitado, los contactos marcados explícitamente como menores reciben un recordatorio periódico de "está hablando con una IA" durante sesiones largas, en un intervalo configurable.
5. **Exportación del dossier de conformidad** — un paquete de evidencia por agente con un solo clic que mapea la configuración de transparencia del agente, los resultados de evaluación/red team, las aprobaciones de supervisión humana y el log de auditoría de decisiones a los Artículos 12, 14, 15 y 50 del EU AI Act.
6. **Exportación del ledger de divulgación de IA** — un ledger a prueba de manipulaciones, criptográficamente firmado y que preserva la privacidad, que prueba *cuándo* y *dónde* una IA (no un humano) gestionó una interacción, verificable de forma independiente sin confiar en la UI de Orbit.

## Configuración de la divulgación de IA

### Dashboard

Navegue a **Settings → Compliance → AI Disclosure**. Edite el texto del aviso de chat y de la introducción de voz, y luego active el **EU AI Act §50** (y cualquier otra regla jurisdiccional aplicable) bajo "Jurisdiction rules". Active **Enabled by default** para que los avisos se presenten realmente — los interruptores jurisdiccionales por sí solos solo marcan qué regulaciones se aplican; **Enabled by default** es lo que activa el estampado y la entrega de avisos.

### API

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

Devuelve la fila de configuración singleton actual del tenant (o `{ "settings": null }` si nunca se configuró):

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

Acepta una actualización parcial — solo cambian las claves suministradas. Requiere el rol de `owner` o `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
}
```

| Campo                           | Tipo                       | Notas                                                                                                           |
| ------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `default_enabled`               | boolean                    | Interruptor maestro — estampa `metadata.ai_generated` y presenta los avisos de abajo en cada interacción de IA. |
| `chat_notice_text`              | string (1–2000 caracteres) | Texto que se antepone a la primera respuesta de chat de un agente de IA por conversación.                       |
| `voice_intro_text`              | string (1–2000 caracteres) | Texto hablado antes de que un agente de voz de IA se conecte, cuando no hay URL de audio configurada.           |
| `voice_intro_audio_url`         | URL HTTPS o `null`         | Introducción pregrabada opcional; anula la síntesis a partir de `voice_intro_text`.                             |
| `eu_ai_act_enabled`             | boolean                    | Aplica las obligaciones de transparencia del Artículo 50 del EU AI Act.                                         |
| `kr_disclosure_enabled`         | boolean                    | Aplica la divulgación de la AI Basic Act de Corea (en vigor 2026-01-22).                                        |
| `ca_minor_reminder_enabled`     | boolean                    | Aplica el recordatorio de menor de la SB 243 de California.                                                     |
| `minor_break_reminder_minutes`  | integer (1–1440)           | Frecuencia con la que se repite el recordatorio de la SB 243 durante una sesión.                                |
| `marketing_disclosure_required` | boolean                    | Exige una divulgación explícita de IA en el outreach automatizado de marketing.                                 |

Cada actualización se escribe en el log de auditoría (`compliance.ai_disclosure_updated`) e invalida la caché de configuración en proceso inmediatamente, por lo que un interruptor toma efecto en el siguiente turno del agente.

## Verificar que funciona

1. **Verificación en vivo** — con `default_enabled` y `eu_ai_act_enabled` activados, inicie una nueva sesión de chat con un agente de IA y confirme que el `chat_notice_text` configurado aparece en la primera respuesta; realice una llamada de prueba a un agente de voz de IA y confirme que la introducción de voz se reproduce antes de que el agente hable.

2. **Metadatos por turno** — inspeccione un mensaje de chat enviado por el agente y confirme que `metadata.ai_generated` es `true`.

3. **Dossier de conformidad** — exporte el paquete de evidencia de un agente:

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

   Añada `?format=html` para un paquete de evidencia descargable y legible por humanos, adecuado para un auditor o un cuestionario de seguridad empresarial. Cada sección reporta `present`, `partial`, `absent` o `unavailable` — un tenant heredado al que le falta una tabla soporte degrada esa sección en lugar de hacer fallar toda la exportación.

4. **Ledger de divulgación de IA** — exporte el ledger firmado y a prueba de manipulaciones de un agente:

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

   El ledger lleva solo metadatos de procedencia (id del agente, modelo, resultado, marcas de tiempo, recuentos agregados) — nunca texto literal de prompts/respuestas — y se firma con una credencial de contenido separada, de modo que una copia entregada a un regulador o socio puede verificarse sin confiar en la UI de Orbit.

Ambas exportaciones requieren el rol de `owner`, `admin` o `developer` y quedan registradas en el log de auditoría.

### Remediar una sección degradada del dossier

Cada sección del dossier reporta uno de cuatro estados, mostrados tanto en el JSON (`sections[].status`) como en la insignia de sección del paquete HTML. Trate cualquier cosa que no sea `present` como una tarea pendiente, no como un veredicto:

| Estado        | Qué significa                                                                                                                                                                                                                                      | Qué hacer                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `present`     | La sección lleva evidencia capturada.                                                                                                                                                                                                              | Nada. Esta sección soporta una auditoría hoy.                                                                                                                                                                                                                                                                                                                                                                                     |
| `partial`     | La capacidad existe pero la evidencia es escasa o incompleta — por ejemplo una comparación de equidad donde ninguna cohorte tiene suficientes casos etiquetados todavía, o una sección de cobertura adversarial sin tarjeta de puntuación fechada. | El `note` de la sección nombra la brecha específica. Ciérrela ejecutando el flujo subyacente — ejecute una eval suite, etiquete casos del golden set con una cohorte, ejecute el paquete de red team o habilite una puerta de aprobación de herramientas — y reexporte. Respondible para una auditoría como "capacidad demostrada"; un evaluador puede seguir pidiendo resultados capturados.                                     |
| `absent`      | El almacenamiento soporte funciona pero no tiene nada registrado aún.                                                                                                                                                                              | Misma forma: el `note` le dice qué ejecutar. No se necesita acción de plataforma — capture la evidencia y reexporte.                                                                                                                                                                                                                                                                                                              |
| `unavailable` | Los registros soporte no están provisionados para este tenant (típico en un workspace creado antes de que esa clase de evidencia se integrara). El resto del paquete sigue exportándose.                                                           | Es una brecha de aprovisionamiento, no una exportación fallida. Abra un ticket de soporte nombrando el agente y la clave de sección degradada; el aprovisionamiento se resuelve normalmente sin cambios de datos. Hasta que se resuelva, explique la brecha en una auditoría con el `note` del dossier. Si la exportación falla por completo en lugar de degradar esa sección, eso es un bug — contacte a soporte inmediatamente. |

## Verificar el ledger firmado

La firma del ledger de divulgación de IA cubre cada byte del cuerpo del ledger, por lo que "verificable de forma independiente" es mecánico: recalcule el digest y el MAC sobre lo que recibió y compare.

1. **Exporte el ledger JSON** (este es el payload a verificar):

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

   La respuesta envuelve el ledger en `data.ledger`. Su forma: `ledger_version`, `generated_at`, `tenant_id`, `agent`, `disclosure_posture`, `jurisdiction_resolution`, `summary`, `entries`, `note`, `disclaimer` y un objeto `signature` separado:

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

2. **Envíe el ledger al endpoint verificador.** La credencial separada vive dentro del propio JSON — nada más que descargar:

   ```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": <el objeto ledger>}'

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

   `reason` es uno de `ok`, `content_mismatch` (el cuerpo fue editado tras la firma), `signature_invalid` (el MAC no coincide con el contenido), `unsupported_version` (versión de credencial desconocida) o `malformed_ledger`.

3. **Verifique offline** si quiere la comprobación independiente de la API de Orbit: retire el campo `signature`, serialice el cuerpo restante como JSON canónico (claves de objeto ordenadas recursivamente) y aplique SHA-256 al resultado — debe ser igual a `signature.content_sha256`. El MAC además requiere la clave de firma del workspace, por lo que un ledger manipulado puede ser detectado por cualquiera, pero producir el MAC solo lo hace Orbit.

   ```text theme={null}
   body   = ledger menos el campo "signature"
   digest = SHA-256(canonical_json(body))   # claves ordenadas recursivamente
   assert digest == ledger.signature.content_sha256
   ```

## Confirmar que el aviso se disparó en una conversación

La bandera por turno `metadata.ai_generated: true` prueba que la *respuesta* fue redactada por IA; no prueba que el *aviso* de divulgación se mostró. Tres superficies responden "¿se disparó el aviso en esta conversación?":

1. **Lea la conversación** — en un canal de texto el aviso de chat se antepone a la primera respuesta del agente, por lo que el texto del aviso es visible literalmente en la lista de mensajes de la conversación en el dashboard y vía la API de conversaciones. La misma propiedad vale para voz: la introducción se reproduce antes de que el agente hable, por lo que una llamada grabada la lleva al inicio.
2. **Compruebe la marca de tiempo por conversación** — una vez entregado el aviso de chat, la plataforma estampa `first_disclosure_sent_at` en esa conversación y el aviso nunca se repite ahí. Si usted (o sus herramientas de cumplimiento) conserva exportaciones o snapshots de almacén de los registros de conversaciones, un valor no nulo es una prueba durable de que el aviso se disparó en esa conversación.
3. **Compruebe el log de auditoría de cambios de configuración** — cada cambio a la configuración de divulgación se registra bajo la acción de auditoría `compliance.ai_disclosure_updated`, y cada exportación de dossier o ledger se registra como `agent.conformity_dossier.exported` o `agent.ai_disclosure_ledger.exported`. Si un aviso no se disparó en una conversación en la que lo esperaba, el rastro de auditoría de esas acciones más la marca de tiempo de la conversación de arriba aísla si la divulgación estaba desactivada en ese momento, o si el aviso realmente no se envió.

## Matriz de postura por regulación

Las cuatro regulaciones son configuración propiedad del tenant: Orbit incluye los controles y las exportaciones de evidencia; usted decide qué interruptores se aplican a su tráfico. Como las reglas son opt-ins de todo el workspace, habilite cada regulación que su tráfico plausiblemente toque.

| Control / exportación                       | EU AI Act (tráfico UE)                                                             | AI Basic Act de Corea (tráfico Corea) | SB 243 de California (contactos menores)                  | Utah AI Policy Act (tráfico Utah) |
| ------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------- | --------------------------------------------------------- | --------------------------------- |
| `default_enabled` (interruptor maestro)     | Activado                                                                           | Activado                              | Activado                                                  | Activado                          |
| `eu_ai_act_enabled`                         | Activado                                                                           | Opcional                              | Opcional                                                  | Opcional                          |
| `kr_disclosure_enabled`                     | Opcional                                                                           | Activado                              | Opcional                                                  | Opcional                          |
| `ca_minor_reminder_enabled`                 | Opcional                                                                           | Opcional                              | Activado para contactos que usted marca `is_minor`        | Opcional                          |
| `minor_break_reminder_minutes`              | —                                                                                  | —                                     | Establezca a la cadencia requerida (predeterminado 180)   | —                                 |
| `marketing_disclosure_required`             | Recomendado                                                                        | Recomendado                           | Recomendado                                               | Recomendado                       |
| `chat_notice_text` / `voice_intro_text`     | Establezca ambos — nombre la IA y, para la UE, marque el contenido generado por IA | Establezca ambos                      | Establezca ambos                                          | Establezca ambos                  |
| Exportación del dossier de conformidad      | Paquete de evidencia primario (Artículos 10–15, 50)                                | Evidencia de apoyo                    | Evidencia de apoyo (secciones de supervisión + auditoría) | Evidencia de apoyo                |
| Exportación del ledger de divulgación de IA | Prueba de procedencia (cuándo/dónde habló la IA)                                   | Prueba de procedencia                 | Prueba de procedencia para sesiones de contactos menores  | Prueba de procedencia             |

Dos cautelas que se aplican a cada fila: los interruptores jurisdiccionales no geolocalizan contactos — aplican la regla a todo el workspace — y el recordatorio de la SB 243 solo se dispara para contactos que usted ha marcado explícitamente como menores. Orbit nunca infiere jurisdicción ni condición de menor.

## Limitaciones conocidas

* Las reglas jurisdiccionales son opt-ins de todo el workspace, no geolocalización automática por contacto — vea la nota anterior.
* La marca de agua de audio integrada en TTS depende del proveedor de voz configurado; no todos los proveedores la soportan a mediados de 2026.
* Esta página describe la superficie de transparencia (Artículo 50). No cubre las obligaciones separadas del EU AI Act para sistemas de alto riesgo (Anexo III) — vea el puntero siguiente.

## Obligaciones de alto riesgo del Anexo III

Las obligaciones del EU AI Act para sistemas de alto riesgo (casos de uso del Anexo III — por ejemplo las clases de reconocimiento de emociones, categorización biométrica y puntuación de crédito) quedan fuera de esta página. La transparencia del Artículo 50 se aplica a todo agente de IA independientemente de la clase de riesgo; el Anexo III añade un nivel de cumplimiento separado — gestión de riesgos, gobernanza de datos, documentación técnica y evaluación de conformidad — en un calendario posterior a la fecha de transparencia del 2 de agosto de 2026. Clasifique su despliegue contra el Anexo III primero; un agente en un caso de uso listado necesita ese trabajo de postura además de los controles de divulgación descritos aquí. El [FAQ de postura de cumplimiento](/compliance/posture-faq#does-this-page-cover-the-eu-ai-acts-annex-iii-high-risk-tier) lleva una entrada correspondiente sobre dónde cae la división entre el trabajo del Anexo III propiedad del tenant y los controles de transparencia de Orbit.

El papel de Orbit es el mismo en cualquier caso: la plataforma incluye la superficie de transparencia y evidencia; la clasificación y las obligaciones del Anexo III son suyas de asumir con un asesor cualificado.

Si tiene un requisito que esta página no cubre, contacte [trust@devotel.io](mailto:trust@devotel.io).
