Documento de arquitectura técnica

Vocero S2S

Arquitectura técnica objetivo y plan de implementación

Estado: propuesta para revisión técnica
Fecha de corte de fuentes: 20 de julio de 2026
Ámbito: plataforma conversacional Speech-to-Speech desacoplada, local y extensible mediante MCP
Audiencia: arquitectura, plataforma, seguridad, MLOps, desarrollo, QA y operación

Vocero S2S

Arquitectura técnica objetivo y plan de implementación

Estado del documento: propuesta para revisión técnica
Fecha de corte de fuentes: 20 de julio de 2026
Ámbito: plataforma conversacional Speech-to-Speech desacoplada, local y extensible mediante MCP
Audiencia: arquitectura, plataforma, seguridad, MLOps, desarrollo, QA y operación

Convención de trazabilidad

1. Resumen ejecutivo

Vocero S2S se plantea como una plataforma conversacional en tiempo real que separa cuatro responsabilidades: experiencia web, control de sesión, inferencia de voz y lenguaje, e integración empresarial mediante Model Context Protocol (MCP). [REQ] La implementación inicial debe utilizar Parakeet TDT 0.6B para STT/VAD, LLaMA 3.1 8B Instruct para razonamiento y llamadas a herramientas, Qwen3-TTS 12Hz 1.7B Base en FP16 para síntesis y clonación zero-shot, y un nodo NVIDIA GB10 accesible inicialmente por el puerto 12345.

La arquitectura objetivo conserva esa cadena desacoplada, pero evita convertir la conexión WebSocket en el lugar donde vive toda la lógica. [REC] Se propone un Control Plane en el servidor UI & Relay para autenticación, autorización, perfil del agente, política de voz, orquestación MCP y auditoría; un Realtime Data Plane para audio y eventos con estado de sesión efímero y cancelación prioritaria; y un Inference Plane local que expone adaptadores versionados para STT, LLM y TTS. La separación permite reemplazar modelos, transporte o infraestructura sin alterar los contratos de negocio.

Para clientes web, WebRTC ofrece ventajas operativas para media en redes variables, mientras que WebSocket sigue siendo apropiado para enlaces servidor-a-servidor y para la primera versión ya planteada. La documentación de plataformas realtime recomienda WebRTC para browser/media y WebSocket para pipelines de servidor 1. [REC] Por ello, el plan adopta WebSocket como transporte inicial compatible y define WebRTC como evolución controlada, no como prerrequisito del MVP.

La gestión de interrupciones es una capacidad de primer orden: al detectar habla del usuario durante la respuesta, el sistema debe cancelar la generación todavía reversible, detener el audio, vaciar buffers no reproducidos y truncar el historial a lo efectivamente escuchado. Este patrón está documentado en sistemas realtime mediante cancelación y truncamiento de elementos de conversación 2, y en frameworks de agentes que ajustan el historial al audio efectivamente reproducido 3.

MCP se integra mediante un gateway empresarial con política, validación de esquemas, identidad delegada, límites, auditoría y adaptadores de versión. Decisión temporal crítica: al 20 de julio de 2026, el anuncio de 2026-07-28 describe explícitamente un Release Candidate cuyo estándar final se espera para el 28 de julio de 2026 y contiene cambios incompatibles 4. Por lo tanto:

  1. [REC] la versión estable de compatibilidad inicial será 2025-11-25, verificada en la documentación oficial de transportes 5; esta decisión responde al corte temporal solicitado y no contradice la dirección técnica stateless propuesta por el RC;
  2. [REC] 2026-07-28 se implementará sólo detrás de un adaptador experimental y feature flag;
  3. [REC] el diseño del dominio se mantendrá preparado para el modelo stateless del RC: requests autocontenidos, estado de aplicación mediante handles explícitos y routing desacoplado de afinidad;
  4. [REC] su promoción exigirá ratificación oficial, pruebas de conformidad y migración aprobada;
  5. no se asumirá como estándar final en este documento.

Finalmente, la capacidad real de ejecutar STT, LLM y TTS concurrentemente en un único GB10 no está demostrada por un benchmark de la cadena completa. [BENCH] La primera salida de ingeniería debe ser un arnés reproducible que mida latencia extremo a extremo, memoria, ancho de banda, degradación bajo concurrencia, precisión de interrupción y calidad de clonación antes de comprometer capacidad o SLO contractual.

2. Alcance

2.1 Objetivos

2.2 No objetivos

3. Principios de arquitectura

  1. Control y media separados. El audio tiene requisitos de tiempo real; identidad, política y auditoría requieren consistencia y trazabilidad.
  2. Contratos antes que implementaciones. Cada frontera publica eventos y esquemas versionados; los modelos quedan detrás de adaptadores.
  3. Interrupción prioritaria. Cancelar y detener audio tiene precedencia sobre generar más contenido.
  4. Estado explícito y con dueño. La sesión conversacional pertenece a Vocero; el estado MCP pertenece al adaptador de protocolo o a handles explícitos.
  5. Zero trust entre planos. Cada salto autentica servicio, autoriza acción, limita alcance y propaga identidad auditada.
  6. Mínimo privilegio para herramientas. Una tool sólo recibe los argumentos, identidad y scopes estrictamente necesarios.
  7. Privacidad por defecto. Audio, transcripciones, prompts, respuestas y voces son datos sensibles; la retención es explícita y minimizada.
  8. Fallar de forma conversacional. Los fallos técnicos se traducen en eventos deterministas y respuestas seguras, sin filtrar detalles internos.
  9. Medir antes de prometer. La experiencia se gobierna por latencia de etapa y percentiles, no por promedios aislados.
  10. Compatibilidad MCP versionada. El gateway negocia una versión estable y encapsula candidatos futuros.

4. Vista de contexto y contenedores

Vocero S2S — Vista C4 de contenedores VOCERO S2S UsuarioHabla desde navegadorIdentidad / API clienteUsuario, roles y atributosServicio de perfilesInstrucciones, reglas, toolsy política de vozSistemas empresarialesERP, CRM, catálogos,reportes y workflowsObservabilidadMétricas, logs, tracesy alertasCliente WebWeb Audio + WS/WebRTCEdge / TerminaciónTLS, conexión, rate limitRealtime RelayAudio/eventos, sanitizaciónSession OrchestratorEstados, turnos, perfily políticaMCP GatewayCliente MCP + policyenforcementSession StoreKV con TTLAudit StoreAlmacén inmutableInference GatewayAPI realtime internaSTT, LLM y TTSParakeet TDT 0.6BNeMo / GPULLaMA 3.1 8BRuntime localQwen3-TTS 1.7BFP16 / GPUVoice VaultReferencias autorizadasAudio, controles y confirmacionesMedia y eventos · TLSStream autenticadoEventos de sesiónResuelve identidad · HTTPSCarga perfil y políticas · HTTPSLee/escribe estado efímeroTool intent + contexto delegado · mTLSComandos y eventos de inferencia · mTLSChunks de audioContexto y tokensTexto y voice_profile_refLee referencia autorizadaMCP/HTTPS versionadoEjecuciones y decisionesEventos de auditoríaTelemetríaTelemetríaTelemetría GPU/modelos
Representación vectorial estática de la vista C4 contenida en la versión v2.

4.1 Vista lógica por planos

Experience Plane

Realtime Data Plane

Conversation Control Plane

Inference Plane

Enterprise Integration Plane

5. Responsabilidades por componente

ComponenteResponsabilidadesNo debe hacer
Cliente webCapturar/reproducir audio; AEC/NS/AGC cuando corresponda; mostrar estado; enviar confirmaciones; reportar progreso de playoutAutorizar tools; almacenar secretos; decidir la voz efectiva
Edge realtimeTLS; autenticación de conexión; límites; routing; protección DoS; upgrade WS o terminación WebRTCInterpretar prompts o argumentos MCP
Realtime RelayMultiplexar audio/eventos; ordenar secuencias; backpressure; sanitizar session.update; priorizar interrupcionesMantener lógica de negocio o credenciales downstream
Session OrchestratorMáquina de estados; identidad; perfil; contexto; turnos; cancelación; degradación; correlaciónEjecutar SQL, ERP o APIs directamente
Policy EngineEvaluar identidad, rol, tool, riesgo, ámbito, consentimiento y política de datosReescribir silenciosamente argumentos de negocio sin registro
MCP GatewayNegociar versión; descubrir tools; validar JSON Schema; delegar identidad; aplicar timeout/retry; auditarExponer credenciales al LLM o navegador
Inference GatewayAdmitir/cancelar trabajos; adaptar protocolos; medir etapas; health/capacityDecidir permisos empresariales
STT/VADEmitir parciales/finales y señales de habla con timestampsPersistir audio indefinidamente
LLMGenerar texto estructurado o intención de tool dentro de schemas permitidosConsiderarse autoridad para ejecutar acciones
TTSSintetizar stream asociado a una generación y perfil de voz autorizadoAceptar ref_audio arbitrario del cliente
Voice VaultVersionar, cifrar y gobernar referencias de voz y consentimientosServir archivos sin autorización por servicio y tenant
StoresEstado efímero con TTL, auditoría inmutable y configuración versionadaMezclar PII operacional con telemetría no restringida
ObservabilidadMétricas, logs estructurados, traces, alertas y tablerosRegistrar audio, tokens o argumentos sensibles por defecto

6. Vista de despliegue

Vocero S2S — Vista de despliegue ZONA PÚBLICA DMZ / EDGE RED DE APLICACIONES SEGMENTO DE INFERENCIA RESTRINGIDO RED EMPRESARIAL OPERACIONESNavegadorWAF + Reverse ProxyTURN/SFU opcionalEvolución WebRTCRealtime Relay ARealtime Relay BSession Orchestrator ASession Orchestrator BPolicy EngineMCP GatewaySession StoreTTLAudit StoreInference GatewayPuerto interno 12345Parakeet STT/VADLLaMA 3.1 8BQwen3-TTS 1.7BFP16Voice Vaultcaché cifradaNVIDIA GB10Auth + Agent Profile APIsMCP Servers / AdaptadoresERP / CRM / Datos / WorkflowsOTel CollectorMetrics / Logs / Traces / AlertasSecrets + KMSTLS WS inicialWebRTC futuroWebRTC futuromTLS realtimemTLS realtime
Representación vectorial estática de la vista de despliegue contenida en la versión v2.

[REC] El puerto 12345 debe ser interno, protegido por firewall, mTLS y autenticación de servicio; no debe publicarse directamente a Internet. [REC] Relay y Orchestrator se despliegan con al menos dos instancias lógicas en producción. Esto no implica que el MVP necesite alta disponibilidad física desde el primer día, pero los contratos no deben depender de memoria local exclusiva.

[BENCH] El GB10 es inicialmente un único dominio de fallo y capacidad. Antes de producción deben definirse: estrategia de nodo de reserva, cola de admisión, límite de sesiones, política de shedding y procedimiento de recuperación de modelos.

7. Máquina de estados y gestión de sesión

7.1 Estados propuestos

Vocero S2S — Máquina de estados de sesiónInicioCONNECTINGAUTHENTICATINGCONFIGURINGLISTENINGTRANSCRIBINGTHINKINGTOOL_PENDINGAWAITING_CONFIRMATIONTOOL_RUNNINGSPEAKINGINTERRUPTINGDEGRADEDCLOSINGFAILEDtransporte listoidentidad válidarechazo o timeoutperfil + voz + tools cargadosdependencia no crítica fallaspeech_startedturn_committedtool_intentacción sensibleconfirmadapermitidatool_resultaudio_first_chunkbarge_insalida detenidaresponse_completedalternativa disponiblecierrecierrecierrecierre
Representación vectorial estática de la máquina de estados contenida en la versión v2.

7.2 Identificadores

7.3 Estado efectivo de sesión

[REC] Se calcula en este orden, sin permitir que el cliente incremente privilegios:

  1. defaults seguros de plataforma;
  2. política del tenant;
  3. perfil del agente versionado;
  4. atributos autorizados del usuario;
  5. preferencias permitidas de sesión;
  6. overrides por respuesta explícitamente allowlisted.

El sanitizador de session.update elimina o rechaza campos que puedan sustituir voice_profile_id, tools, instrucciones de sistema, límites o scopes. Toda diferencia entre configuración solicitada y efectiva queda en un evento session.configuration_applied con razones codificadas.

[REC] El estado efímero se guarda con TTL y control optimista de versión. La reanudación requiere token opaco de corta vida, misma identidad y comprobación de versión del perfil. Audio no confirmado y trabajos de generación no se reanudan: se cancelan y el cliente vuelve a LISTENING.

8. Flujos de ejecución

8.1 Flujo nominal conversacional y MCP

8.2 Tool call con confirmación

  1. LLM emite intención, nunca una ejecución directa.
  2. Orchestrator valida nombre contra la lista permitida y el esquema vigente.
  3. Policy Engine clasifica la acción: lectura, escritura reversible, acción irreversible o prohibida.
  4. Si requiere consentimiento, se emite tool.confirmation_required con resumen legible y campos no sensibles.
  5. El usuario confirma; se crea confirmation_id ligado a hash de tool + argumentos + identidad + expiración.
  6. MCP Gateway ejecuta con token delegado de alcance mínimo.
  7. El resultado se valida, limita y clasifica antes de volver al LLM.
  8. Se registra la decisión, no secretos ni payloads sensibles completos.

Para la compatibilidad estable 2025-11-25, el adaptador mantiene el lifecycle y la sesión del protocolo de acuerdo con el transporte oficial 5. El RC 2026-07-28 propone eliminar handshake y sesión de protocolo, usar requests autocontenidos, headers de routing y InputRequiredResult; estas capacidades quedan sólo en el adaptador experimental hasta ratificación 4.

8.3 Barge-in

Reglas:

8.4 Errores y degradación

CondiciónAcción automáticaExperiencia de usuarioAuditoría/operación
Auth denegadaCerrar con código estableMensaje de acceso no autorizadoRazón, tenant, hash de sujeto
Perfil no disponibleReintento acotado; fallback sólo si está aprobado“No puedo iniciar el asistente en este momento”Alerta de dependencia
STT no saludablePausar admisión o activar modo texto si existeInformar degradaciónMétrica y circuit breaker
LLM timeoutCancelar generación; una reintento sólo si no hubo tool side effectRespuesta breve seguraSpan con timeout
TTS fallaMantener texto; no sustituir voz sin políticaMostrar texto o pedir reintentoEstado de voz/modelo
MCP timeoutCancelar o marcar estado desconocido“No pude confirmar la operación”No reintentar escrituras sin idempotencia
Respuesta MCP inválidaRechazar payload; no pasarlo al LLMError controladoViolación de schema
Buffer saturadoFrenar productor; descartar parciales obsoletos; nunca perder cancelaciónPosible indicador de redContadores de drop/backpressure
Cliente desconectadoLease corto; cancelar media; conservar mínimo estado reanudableReintento controladoCausa de cierre
GPU sin capacidadRechazo temprano o cola acotada“Servicio ocupado, inténtalo nuevamente”Saturación, cola y shedding

9. Contratos y eventos orientativos

[REC] Los siguientes esquemas son orientativos. Deben convertirse en JSON Schema versionado, con pruebas de compatibilidad y límites de tamaño. No representan un contrato final.

9.1 Envelope común

{
  "specversion": "1.0",
  "type": "vocero.audio.input.delta.v1",
  "source": "web-client",
  "id": "evt_opaque",
  "time": "RFC3339 timestamp",
  "subject": "session/{session_id}",
  "traceparent": "00-...",
  "data": {
    "session_id": "ses_opaque",
    "turn_id": "turn_opaque",
    "sequence": 42,
    "payload": {}
  }
}

9.2 Catálogo mínimo de eventos

Cliente → plataforma

Plataforma → cliente

9.3 Ejemplo de session.update_requested

{
  "type": "vocero.session.update_requested.v1",
  "data": {
    "session_id": "ses_opaque",
    "client_capabilities": {
      "audio_codecs": ["opus", "pcm16"],
      "supports_playout_ack": true
    },
    "preferences": {
      "locale": "es-CL",
      "turn_mode": "server_vad"
    }
  }
}

Campos como system_prompt, tools, mcp_credentials, ref_audio, ref_text o voice_profile_id no se aceptan desde este contrato público. Si llegan, el relay los rechaza o elimina según política, y registra la razón.

9.4 Ejemplo de intención de tool interna

{
  "tool_call_id": "tc_opaque",
  "session_id": "ses_opaque",
  "turn_id": "turn_opaque",
  "tool": {
    "name": "production.report.get",
    "schema_version": "1.2.0"
  },
  "arguments": {
    "site_id": "site_authorized",
    "period": "value_from_user_or_context"
  },
  "execution": {
    "mode": "read",
    "idempotency_key": "idem_opaque",
    "deadline_ms": "configured_value"
  },
  "principal": {
    "subject_ref": "opaque_subject",
    "tenant_id": "tenant_opaque",
    "scopes": ["report:read"]
  }
}

9.5 Errores

{
  "type": "vocero.error.v1",
  "data": {
    "code": "MCP_TOOL_TIMEOUT",
    "category": "dependency",
    "retryable": false,
    "user_message_key": "tool.temporarily_unavailable",
    "correlation_id": "corr_opaque",
    "details_ref": "internal_log_reference"
  }
}

Los mensajes públicos no contienen stack traces, endpoints internos, prompts, tokens, argumentos sensibles ni nombres de secretos.

9.6 Compatibilidad MCP

McpAdapter
├── StableAdapter_2025_11_25   # default
├── CandidateAdapter_2026_07_28 # feature flag, no producción por defecto
└── ConformanceHarness
    ├── discovery
    ├── tools/list
    ├── tools/call
    ├── cancellation
    ├── schema validation
    ├── auth propagation
    └── error mapping

La arquitectura oficial de MCP separa una capa de datos JSON-RPC y una capa de transporte, y contempla lifecycle, primitives y notificaciones 6. [REC] Vocero preservará esa separación dentro del adaptador para evitar que detalles de transporte contaminen la lógica conversacional.

Capacidades candidatas que se preparan, pero no se activan como estándar final: el RC 2026-07-28 introduce server/discover, metadatos ttlMs y cacheScope en resultados de listas/lecturas, y headers Mcp-Method/Mcp-Name para routing 4. [REC] El gateway modelará discovery y caché mediante interfaces neutrales: el adaptador estable resolverá su mecanismo según 2025-11-25, mientras que el adaptador candidato podrá mapear esas capacidades nuevas. La caché nunca compartirá resultados más allá del alcance de identidad/tenant permitido y siempre respetará revocación y cambio de política.

10. Clonación de voz y gobernanza

10.1 Modelo operativo

[REQ] Qwen3-TTS debe utilizar ref_audio y ref_text para clonación zero-shot y preservar una locución corporativa. El model card de Qwen3-TTS 1.7B Base confirma streaming, soporte de español y clonación rápida desde audio breve 7. La documentación del repositorio describe generación streaming y clonación de voz 8.

Modos a evaluar:

[REC] El cliente nunca envía referencias maestras durante una sesión. El perfil de agente contiene sólo voice_profile_id y voice_version; TTS resuelve la referencia desde Voice Vault mediante identidad de servicio. El relay elimina voces estándar propuestas por el cliente y el Orchestrator aplica la voz efectiva autorizada.

10.2 Ciclo de vida

  1. Solicitud: propietario de la voz, propósito, tenant, idiomas y periodo de uso.
  2. Consentimiento verificable: documento o evidencia de autorización; revisión legal según jurisdicción.
  3. Ingesta controlada: antivirus, normalización, evaluación de ruido y transcripción alineada.
  4. Evaluación: fidelidad, inteligibilidad, pronunciación, estabilidad y riesgo de suplantación.
  5. Aprobación de cuatro ojos: dueño de negocio más seguridad/legal o roles equivalentes.
  6. Versionado: hash de ref_audio, hash de ref_text, modelo, parámetros y fecha de vigencia.
  7. Publicación: sólo perfiles aprobados pueden usarse en producción.
  8. Monitoreo: uso por tenant/agente, anomalías y reclamaciones.
  9. Revocación: bloqueo inmediato de nuevas sesiones; rotación de caché; evidencia de eliminación.

10.3 Controles

11. Seguridad

11.1 Vista de zonas y confianza

11.2 Amenazas principales y mitigaciones

AmenazaMitigaciones recomendadas
Suplantación de usuarioOIDC/OAuth, tokens efímeros, validación de issuer/audience, reautenticación para acciones sensibles
Prompt injection desde usuario o tool resultSeparación de instrucciones, allowlist de tools, validación de salida, etiquetado de contenido no confiable, autorización fuera del LLM
Tool poisoning o schema maliciosoRegistro de servidores aprobados, pinning de versión/hash, revisión de schema, límites de profundidad/tamaño, caché con invalidación segura
Confused deputyPropagar sujeto y tenant; token exchange; scopes por tool; comprobación de recurso en backend
Exfiltración por toolEgress allowlist, DLP/clasificación, minimización de respuesta, límites y redacción antes del contexto
Repetición de escrituraIdempotency key, confirmación ligada a hash, ledger de ejecución, no reintentar estado desconocido
Robo de vozVault, cifrado, aislamiento, consentimiento, revocación, sin descarga al navegador
Secuestro/replay de sesiónTokens de conexión cortos, nonce, expiración, binding a identidad, límites de reconexión
DoS de audio/GPUCuotas, límites de bitrate/chunk, admission control, colas acotadas, circuit breakers, shedding
Fuga por logs/tracesRedacción, clasificación de atributos, sampling, retención limitada, acceso RBAC
Movimiento lateralSegmentación, mTLS, identidades de workload, deny-by-default y egress controlado

11.3 Autorización de tools

La decisión se evalúa sobre:

permit = policy(
  tenant,
  principal,
  agent_profile_version,
  tool_name,
  tool_schema_version,
  action_class,
  resource_scope,
  argument_classification,
  confirmation,
  session_risk
)

El LLM puede proponer tool_name y arguments, pero no principal, scopes, credenciales, clasificación de acción ni resultado de política. [REC] Las acciones irreversibles requieren confirmación humana específica o una excepción corporativa documentada.

11.4 Datos y retención

Definir una matriz por clase:

Para cada clase deben aprobarse propósito, base legal, ubicación, cifrado, retención, borrado, exportación, acceso, uso para entrenamiento y redacción. Pendiente: el solicitante no proporcionó políticas corporativas ni jurisdicciones; por tanto, no se fijan plazos de retención en este documento.

12. Observabilidad y SLOs iniciales

12.1 Modelo de telemetría

Trazas: una traza por turno con spans de captura, relay, STT, endpointing, LLM, policy, MCP, TTS, red y playout. El RC futuro propone nombres estandarizados para propagar W3C Trace Context en _meta, pero esa forma se tratará como candidata hasta ratificación 4. En el adaptador estable, Vocero propagará traceparent mediante metadata interna compatible sin exigir cambios futuros al dominio.

Métricas de experiencia

TTFT y latencia extremo a extremo se reconocen como dimensiones distintas y relevantes para cargas de voz/tiempo real 9.

Métricas de calidad

Métricas de recursos

12.2 Objetivos iniciales — no son desempeño observado

[REC/BENCH] Estos valores son objetivos provisionales de ingeniería, no cifras medidas, garantías ni SLO contractual. Deben ratificarse después del benchmark con audio, red, herramientas y concurrencia reales.

IndicadorObjetivo inicial propuestoVentana/percentilCondición de ratificación
Disponibilidad del servicio conversacional≥ 99,5 %MensualExcluir ventanas acordadas y definir dependencia GPU
Inicio de audio de respuesta ttfs_ms≤ 1.200 msp95, turno directoRed corporativa objetivo y sesión caliente
Detención por barge-in≤ 300 msp95Medido hasta silencio de playout, no sólo ACK
Turnos sin error de plataforma≥ 99,0 %MensualSeparar error de dependencia y entrada inválida
Ejecuciones MCP de lectura aceptadas por gateway≥ 99,0 %MensualExcluir rechazo de política y timeout downstream
Pérdida de eventos de control aceptados0Toda ventanaVerificada por secuencia y ACK
Uso de voz no autorizada0Toda ventanaAlerta y auditoría obligatorias

Presupuesto provisional de ttfs_ms para análisis, no compromiso:

endpointing + STT final + scheduling + LLM TTFT + TTS primer audio + transporte/playout

No se asignan milisegundos fijos por etapa hasta contar con benchmark; el tablero debe mostrar contribución y percentiles por separado.

12.3 Alertas iniciales

13. Escalabilidad, backpressure y resiliencia

13.1 Escalado

13.2 Backpressure

[REC] Cada enlace publica high_watermark, low_watermark y política de overflow. El LLM puede producir texto más rápido de lo que TTS o la red consumen; el sistema debe frenar tokens, agrupar por unidades pronunciables y limitar audio anticipado. El problema general de productores rápidos y consumidores lentos está documentado en pipelines realtime 10.

Políticas:

  1. Eventos de control nunca comparten una cola bloqueante con audio.
  2. Parciales STT obsoletos pueden coalescerse; finales y commits no.
  3. Tokens no sintetizados de una generación cancelada se descartan.
  4. Audio generado pero no reproducido se descarta al interrumpir.
  5. Una conexión lenta no puede consumir memoria sin límite.
  6. El cliente reporta buffered_ms y playout; el servidor ajusta chunking o pausa.
  7. Las colas tienen deadline; trabajo vencido no se procesa “por completitud”.

13.3 Resiliencia

[BENCH] La posibilidad de alojar simultáneamente toda la cadena en un GB10, y el número de sesiones sostenibles, deben medirse. Parakeet TDT 0.6B v3 dispone de soporte de streaming documentado y timestamps 11; esto valida la capacidad funcional, no la capacidad concurrente del sistema completo.

14. Plan de implementación por fases

Las fases no incluyen fechas ni duraciones porque no se entregaron disponibilidad de equipo, ambientes, procurement ni ventanas de cambio. Cada fase termina con una decisión explícita de continuar, corregir o detener.

Fase 0 — Descubrimiento, contratos y riesgos

Entregables

Dependencias

Criterios de aceptación

Riesgos

Fase 1 — Vertical slice local sin tools de escritura

Entregables

Dependencias

Criterios de aceptación

Riesgos

Fase 2 — Barge-in, backpressure y sesión robusta

Entregables

Dependencias

Criterios de aceptación

Riesgos

Fase 3 — Gateway MCP de lectura

Entregables

Dependencias

Criterios de aceptación

Riesgos

Fase 4 — Escrituras, confirmación y gobernanza de voz

Entregables

Dependencias

Criterios de aceptación

Riesgos

Fase 5 — Preproducción, SLO y resiliencia

Entregables

Dependencias

Criterios de aceptación

Riesgos

Fase 6 — Despliegue progresivo y evolución

Entregables

Criterios de aceptación

15. Estrategia de pruebas

15.1 Pirámide

Unitarias

Contrato

Integración

End-to-end

Carga y soak

Caos

Seguridad

15.2 Matriz mínima de escenarios

EjeCasos
Audiosilencio, ruido, eco, clipping, bitrate variable, micrófono distante
Hablaacentos objetivo, velocidad, números, nombres propios, términos de dominio
Turnospausa larga, solapamiento, backchannel, interrupción, push-to-talk
Redlatencia, jitter, pérdida, reconexión, cliente lento
Toolséxito, vacío, inválido, timeout, 4xx/5xx, side effect confirmado, estado desconocido
Modeloscold start, OOM, respuesta tardía, token/audio excesivo, cancelación
Seguridadtool no permitida, scope insuficiente, inyección, acceso cruzado, voz revocada

15.3 Oráculos y reproducibilidad

16. Matriz de decisiones y ADRs

ADRDecisiónEstado inicialAlternativasEvidencia para aceptar
ADR-001Cadena desacoplada STT → LLM → TTSAccepted por requisitoModelo S2S nativoBenchmark y control por componente
ADR-002WebSocket inicial; WebRTC como evoluciónProposedWebRTC desde MVP; ambosPrueba de red y complejidad operativa
ADR-003Separar Relay y Session OrchestratorProposedServicio monolíticoPerfil de carga, aislamiento y mantenibilidad
ADR-004MCP estable 2025-11-25 + adaptadores versionadosProposedAdoptar RC futuroRatificación, conformidad y compatibilidad
ADR-005Voice Vault y referencias server-sideProposedEnviar ref_audio por sesiónThreat model, latencia de caché y gobernanza
ADR-006Estado efímero externo con TTL y leasesProposedMemoria local/sticky sessionsRecuperación y carga
ADR-007Control queue prioritaria para barge-inProposedCola única FIFOPruebas de carrera y objetivo de interrupción
ADR-008Policy Engine fuera del LLMProposedPrompt-only controlsPruebas de bypass y auditoría
ADR-009Confirmación + idempotencia para escriturasProposedEjecución inmediataSemántica downstream y UX
ADR-010Un GB10 en MVP con admission controlProposedCluster desde inicioBenchmark de capacidad/costo/riesgo
ADR-011OpenTelemetry end-to-endProposedLogs no correlacionadosCobertura de trazas y costo/cardinalidad
ADR-012Contratos de evento v1 versionadosProposedPayloads ad hoc del proveedorPruebas de compatibilidad

Cada ADR debe incluir contexto, decisión, alternativas, consecuencias, riesgos, estado y condición de revisión. Las decisiones reversibles pueden iniciarse como Proposed; las que afectan seguridad, datos, licencias o compatibilidad externa requieren aprobación explícita.

17. Pendientes y preguntas abiertas

Producto y experiencia

Identidad y autorización

MCP

Inferencia y capacidad

Operación

18. Riesgos consolidados

RiesgoProbabilidad inicialImpactoTratamiento
Cadena completa excede capacidad del GB10DesconocidaAltoBenchmark temprano; admission control; opciones de separación
Barge-in tardío o falsoDesconocidaAltoCola prioritaria, AEC, playout ACK, corpus de ruido
MCP permite acción indebidaMedia hasta probarCríticoPolicy externa, scopes, confirmación, auditoría, idempotencia
Compromiso o uso no autorizado de vozMedia hasta gobernarCríticoVoice Vault, consentimiento, aislamiento, revocación
Dependencia de versión MCP candidataEvitableAltoStable adapter por defecto y feature flag
Tool result inyecta instruccionesMediaAltoTratar contenido como no confiable, sanitizar, limitar, evaluar
Estado inconsistente tras reconexiónMediaAltoIDs, versionado, leases, dedupe y cancelación
Observabilidad filtra PIIMediaAltoRedacción, allowlist de atributos, acceso y retención
Único nodo de inferencia fallaAlta en topología inicialAltoRunbook, spare/failover, degradación y comunicación
Licencia/consentimiento incompletoDesconocidaCríticoGate legal antes de producción

Las probabilidades no numéricas reflejan ausencia de datos; deben actualizarse después de pruebas y revisión organizacional.

19. Criterio de arquitectura lista para piloto

La solución está lista para piloto sólo cuando:

  1. los requisitos y ADRs críticos están aprobados;
  2. la ruta estable MCP está probada y la candidata futura permanece aislada;
  3. el benchmark extremo a extremo demuestra capacidad para la carga piloto;
  4. barge-in y backpressure pasan pruebas acústicas y de red;
  5. tools sensibles tienen política, confirmación e idempotencia;
  6. la voz está autorizada, versionada y revocable;
  7. seguridad no mantiene hallazgos críticos abiertos;
  8. tableros, alertas y runbooks permiten operar el servicio;
  9. SLOs provisionales fueron ratificados o sustituidos con evidencia;
  10. existe rollback probado de aplicación, perfil, modelo y configuración.

20. Fuentes

  1. [1] OpenAI — Realtime and audio — https://developers.openai.com/api/docs/guides/realtime
  2. [2] Microsoft Azure — Realtime audio — https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/realtime-audio
  3. [3] LiveKit — Turns overview — https://docs.livekit.io/agents/logic/turns/
  4. [4] Model Context Protocol — 2026-07-28 Release Candidate — https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/
  5. [5] Model Context Protocol — Transport specification 2025-11-25 — https://modelcontextprotocol.io/specification/2025-11-25/basic/transports
  6. [6] Model Context Protocol — Architecture overview — https://modelcontextprotocol.io/docs/learn/architecture
  7. [7] Qwen — Qwen3-TTS 12Hz 1.7B Base model card — https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-Base
  8. [8] QwenLM — Qwen3-TTS repository — https://github.com/QwenLM/Qwen3-TTS
  9. [9] Telnyx — Inference Benchmark: TTFT vs E2E Latency — https://telnyx.com/resources/inference-benchmark-ttft-vs-e2e
  10. [10] Arun Baby — Real-Time Agent Pipelines — https://www.arunbaby.com/ai-agents/0016-real-time-agent-pipelines/
  11. [11] NVIDIA — Parakeet TDT 0.6B v3 model card — https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3

Apéndice A — Checklist de implementación