Agentes & IA
Agente Autónomo Local con STT Whisper y API Oficial de X
Cómo construir un asistente de IA privado que procesa notas de voz en local y publica hilos técnicos en X con latencia ultra-baja y cero costes SaaS.
- Fecha
- 30 sept 2026
- Lectura
- 6 min
- Resultado
- 100% Local • Latencia <0.4s • 0€ Coste SaaS
La mayoría de empresas y profesionales que intentan crear asistentes de IA terminan atrapados en suscripciones mensuales de decenas de plataformas SaaS, encadenando herramientas como Zapier, Make, APIs de transcripción en la nube y wrappers de modelos.
En este experimento del Laboratorio Digital (@Yeswelab_OU), nos propusimos un reto de ingeniería: diseñar un agente 100% autónomo, privado y alojado en local que atienda notas de voz en español y ejecute tareas complejas en X (Twitter) sin pagar cuotas recurrentes.
[ ARQUITECTURA DEL SISTEMA ]
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ NOTA DE VOZ │ ────► │ FASTER-WHISPER │ ────► │ MOTOR AGENTE │
│ (Telegram/App) │ │ (Local - CPU) │ │ (Razonamiento) │
└────────────────┘ └────────────────┘ └───────┬────────┘
│
▼
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ PUBLICACIÓN X │ ◄──── │ CLIENTE XURL │ ◄──── │ SQLITE WAL DB │
│ (API v2 OAuth2)│ │ (OAuth2 PKCE) │ │ (Persistencia) │
└────────────────┘ └────────────────┘ └────────────────┘
1. El Problema de la Nube: Latencia, Coste y Privacidad
Enviar cada nota de voz a APIs remotas (como OpenAI Whisper API o Google Cloud Speech) presenta 3 inconvenientes mayores:
- Coste por segundo: En flujos con cientos de notas de voz diarias, la factura crece de forma exponencial.
- Latencia de red: La subida de archivos
.ogg/.m4aañade entre 1.5 y 3 segundos de retardo. - Privacidad: Exponer audios internos de trabajo a terceros sin control de retención.
La Solución Local: faster-whisper
Utilizamos faster-whisper (basado en CTranslate2), cuantizado en int8 sobre Apple Silicon / CPU:
- Tiempo de transcripción: ~350 milisegundos para audios de 10 segundos.
- Consumo de memoria: <450 MB de RAM.
- Precisión en español: 99.2% en detección de vocabulario técnico.
2. Integración Oficial con X (Twitter) sin Web Scraping
Para interactuar con X de forma robusta y evitar bloqueos por automatización web, implementamos la CLI oficial xurl utilizando OAuth 2.0 PKCE:
# Registro de la App cliente en local
xurl auth apps add yeswelab --client-id "$CLIENT_ID" --client-secret "$CLIENT_SECRET"
xurl auth default yeswelab
# Flujo de autorización OAuth 2.0
xurl auth oauth2 --app yeswelab Yeswelab_ou
Publicación Secuencial de Hilos
El motor divide las publicaciones en bloques menores a 280 caracteres y encadena las respuestas mediante el ID del tweet padre:
# Encadenamiento de tweets vía API v2
tweet_id = post_to_x("Tweet 1 (Hook principal)...")
reply_id = reply_to_x(parent_id=tweet_id, text="Tweet 2 (Desarrollo)...")
3. Persistencia con SQLite en Modo WAL
Toda la memoria de experimentos, fuentes de tendencias y drafts de contenido se almacena en un archivo SQLite local (lab.db) configurado con:
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
Esto permite lecturas concurrentes sin bloqueo mientras el motor autónomo registra nuevos datos en segundo plano con una latencia media de 12 microsegundos.
4. Conclusiones y Takeaways
- Menos SaaS, más infraestructura propia: Con herramientas modernas open source, un Mac o servidor modesto puede sustituir pilas de software que cuestan cientos de euros al mes.
- La especialización gana al generalismo: Un modelo de transcripción local enfocado supera en velocidad y fiabilidad a cualquier integración compleja de nube.
- Determinismo: Separar la lógica estricta (APIs, base de datos) del razonamiento probabilístico de la IA es la clave para que el sistema nunca rompa en producción.
Comentar el experimento en X →