Tag: Automatización

  • Cómo automatizar usabilidad con agentes de IA en tu app

    Cómo automatizar usabilidad con agentes de IA en tu app

    Un cliente me enseñó su aplicación de onboarding hace unos meses. Cinco pasos. Diseño limpio. Todo funcional en los tests.

    La tasa de abandono era del 68% en el paso tres.

    Revisamos los tests de integración: pasaban todos. El formulario enviaba datos correctamente. La validación funcionaba. El CI estaba en verde. Y aun así, casi siete de cada diez usuarios salían del flujo antes de terminar.

    El problema no era que la aplicación no funcionara. Era que nadie había auditado cómo se usaba.

    Ahí está la diferencia que muchos developers no distinguen hasta que lo ven en métricas reales: una cosa es que el código haga lo que debe, y otra muy distinta es que el usuario pueda usarlo sin fricción. La primera la resuelves con tests. La segunda la resuelves con automatizar usabilidad con agentes de IA — que es exactamente lo que vamos a ver aquí.

    Automatizar usabilidad con agentes de IA consiste en delegar la auditoría de accesibilidad, flujos de usuario y fricciones de interfaz a un agente — como Claude Code con MCP de Playwright — que controla el navegador de forma programática, navega flujos reales y genera un reporte estructurado de hallazgos sin intervención manual.


    Testing funcional vs. testing de usabilidad

    Un test funcional pregunta: ¿el botón de "Enviar" llama a la función correcta?

    Un test de usabilidad pregunta: ¿el usuario sabe que tiene que hacer clic ahí? ¿Lo ve? ¿Entiende qué va a pasar después?

    Son preguntas distintas y se responden con herramientas distintas.

    Los tests funcionales los escribes tú, los corre un CI, comprueban comportamiento esperado. Eso ya lo sabes hacer. Lo que un agente de IA aporta es la capacidad de navegar tu aplicación como si fuera un usuario — explorar rutas no documentadas, detectar elementos sin etiquetas accesibles, medir cuánto tarda en responder una pantalla, o identificar que un campo de error aparece debajo del scroll y el usuario nunca lo ve.

    No te reemplaza un test de usabilidad con personas reales. Pero te da un nivel de auditoría automatizada que antes no existía — y que tú nunca harías manualmente en cada PR. Si quieres ver cómo encaja esto en un pipeline completo de desarrollo, tienes la explicación en el post sobre automatizar el proceso de desarrollo con IA.


    Qué puede detectar un agente

    Cuando conectas Claude Code con el MCP de Playwright o Chrome DevTools, el agente puede controlar el navegador de forma programática. Eso significa que puede:

    • Navegar a cualquier ruta de tu aplicación
    • Hacer clic en elementos, rellenar formularios, desplazarse por la página
    • Leer el DOM y el árbol de accesibilidad (el que usa un lector de pantalla)
    • Medir tiempos de respuesta entre interacciones
    • Ejecutar axe-core para detectar violaciones WCAG
    • Capturar screenshots en cada paso del flujo
    • Generar un reporte estructurado con los hallazgos

    Lo que un agente detecta bien:

    1. Accesibilidad técnica: imágenes sin alt, botones sin aria-label, contraste insuficiente entre texto y fondo, formularios sin etiquetas asociadas, skip navigation ausente, foco de teclado atrapado en un componente modal.
    2. Fricciones estructurales: mensajes de error fuera del viewport, campos obligatorios que no se identifican como tales hasta el submit, pasos de onboarding que no guardan el progreso si el usuario recarga.
    3. Performance percibida: cuánto tarda en aparecer el primer elemento interactivo después de una navegación, si hay loaders sin indicación de progreso, si el layout shift hace que el usuario haga clic en el elemento equivocado.
    4. Cobertura de flujos: si una ruta de error (credenciales incorrectas, sesión expirada, red caída) termina en una pantalla sin instrucciones claras.

    Cómo configurar el agente para automatizar la auditoría de usabilidad

    La combinación que funciona en producción: Claude Code + MCP de Playwright.

    Para instalarlo: npx @playwright/mcp@latest. Una vez activo en tu configuración de Claude Code, el agente tiene acceso a las herramientas de control del navegador sin que escribas una línea de Playwright.

    El MCP de Playwright expone herramientas al agente para controlar el navegador: browser_navigate, browser_click, browser_type, browser_snapshot, browser_evaluate. Claude puede encadenar esas herramientas para ejecutar flujos completos.

    Un ejemplo de instrucción al agente para auditar el onboarding de una app:

    ## Tarea: Auditoría de usabilidad — flujo de onboarding
    
    URL base: http://localhost:4200
    
    Flujo a auditar:
    1. Navega a /register
    2. Rellena el formulario con datos válidos: nombre, email, contraseña
    3. Haz clic en "Crear cuenta"
    4. Completa los pasos del onboarding hasta llegar al dashboard
    
    En cada paso:
    - Captura un screenshot
    - Extrae el árbol de accesibilidad del contenido principal
    - Identifica elementos interactivos sin aria-label o sin texto visible
    - Mide el tiempo hasta que el siguiente paso es interactivo
    - Detecta si hay mensajes de error o advertencia y si son visibles sin scroll
    
    Al terminar, genera un reporte en formato JSON con esta estructura:
    {
      "paso": string,
      "url": string,
      "tiempo_carga_ms": number,
      "violaciones_accesibilidad": [],
      "fricciones_detectadas": [],
      "screenshot": string
    }
    

    El agente ejecuta eso de forma autónoma. Navega, interactúa, observa, y vuelve con un reporte estructurado.


    Accesibilidad automática con axe-core

    Para violaciones WCAG, la integración más sólida es axe-core. El agente puede ejecutarlo sobre cualquier página activa en el navegador mediante browser_evaluate:

    // Si axe-core no está en el bundle de la app, inyectarlo primero:
    // await page.addScriptTag({ url: 'https://cdn.jsdelivr.net/npm/axe-core/axe.min.js' });
    
    // Ejecutar la auditoría en el contexto de la página
    const results = await axe.run();
    return {
      violaciones: results.violations.map(v => ({
        impacto: v.impact,
        descripcion: v.description,
        elementos: v.nodes.map(n => n.target)
      }))
    };
    

    Lo que devuelve axe-core son violaciones categorizadas por impacto: critical, serious, moderate, minor. El agente puede filtrar solo las críticas, agregar el selector del elemento afectado, y generar una lista accionable para el developer.

    Esto detecta cosas como:

    • Contraste de color insuficiente (ratio menor a 4.5:1 para texto normal)
    • Imágenes sin atributo alt o con alt vacío en imágenes informativas
    • Elementos <div> y <span> usados como botones sin rol ARIA
    • Formularios sin <label> asociado o con placeholder como único identificador
    • Encabezados fuera de jerarquía (<h4> después de <h2> sin <h3>)

    Esta es una de las capacidades que trabajamos en detalle en el curso Construye con IA: cómo delegar auditorías estructuradas al agente para que el developer se centre en las decisiones de producto, no en el checklist técnico.


    El reporte de hallazgos

    Un agente que navega y detecta problemas no sirve de nada si los hallazgos terminan en un log de consola que nadie lee.

    El formato que mejor funciona para integrar en un workflow de desarrollo es un JSON estructurado que puedas convertir en un issue de GitHub, una tarea en Linear, o un comentario en un PR.

    Estructura mínima de reporte que el agente genera:

    {
      "auditoria": {
        "fecha": "2026-06-17",
        "url_base": "https://app.ejemplo.com",
        "flujo": "onboarding",
        "duracion_total_ms": 8420
      },
      "resumen": {
        "violaciones_criticas": 3,
        "violaciones_serias": 7,
        "fricciones_detectadas": 4,
        "pasos_con_retraso": 2
      },
      "hallazgos": [
        {
          "paso": "registro",
          "tipo": "accesibilidad",
          "impacto": "critical",
          "descripcion": "Campo de contraseña sin label asociado. Solo usa placeholder.",
          "selector": "#password-input",
          "referencia_wcag": "1.3.1"
        },
        {
          "paso": "paso-2-perfil",
          "tipo": "friccion",
          "impacto": "serious",
          "descripcion": "Mensaje de validación aparece 280px por debajo del campo en mobile. No visible sin scroll.",
          "selector": ".validation-message",
          "screenshot": "paso-2-error-state.png"
        }
      ]
    }
    

    Este reporte lo puedes consumir directamente en tu pipeline de CI, enviarlo a un webhook de Slack, o procesarlo con otro agente que abra los issues correspondientes.


    Agentes IA vs Lighthouse

    Capacidad Lighthouse Agente IA + MCP Playwright
    Métricas de rendimiento (LCP, CLS, FID)
    Accesibilidad estática (axe-core) ✅ más granular
    Flujos interactivos multipaso
    Estados de error y modales
    Reporte adaptado al contexto del proyecto ✅ JSON estructurado
    Requiere código de automatización ❌ lenguaje natural
    Integración en CI/CD

    Lighthouse mide el estado de una página en un instante. Un agente mide cómo un usuario real la recorre.


    Lo que el agente no puede hacer

    Esto es importante. Un agente mide lo que puede observar en el DOM y en el comportamiento de la interfaz. No puede medir lo que ocurre dentro del usuario.

    No detecta:

    • Frustración emocional. Si el flujo es técnicamente correcto pero genera ansiedad porque el lenguaje es frío o las instrucciones son ambiguas, el agente no lo sabe.
    • Preferencias estéticas. El contraste puede pasar el ratio WCAG y aun así resultar incómodo visualmente en contextos específicos.
    • Contexto cultural. Un ícono que es intuitivo para un usuario europeo puede no serlo para un usuario latinoamericano. El agente no tiene ese mapa cultural.
    • Carga cognitiva subjetiva. Puede detectar que hay ocho campos en un formulario, pero no puede decirte si eso es demasiado para tu audiencia específica.
    • Microcopy y confianza. El texto de un CTA puede ser técnicamente legible y aun así no generar suficiente confianza para que el usuario haga clic.

    Esas decisiones siguen siendo tuyas — o del diseñador, o del researcher de UX. Lo que el agente elimina es el trabajo de auditoría técnica repetitiva que de otra forma no harías en cada ciclo de desarrollo.


    Cómo integrarlo en tu workflow

    El patrón que funciona sin complicar el pipeline:

    1. Local, bajo demanda: el developer lanza la auditoría sobre la rama antes de abrir el PR. El agente revisa el flujo afectado por el cambio.
    2. En CI, sobre entornos de preview: cada PR despliega a un entorno de preview (Vercel, Netlify, Railway), y el agente audita ese entorno de forma automática antes del merge.
    3. Semanal, sobre producción: un job programado lanza la auditoría completa sobre la app en producción y genera un reporte que llega al equipo.

    El tercer nivel es el más valioso a largo plazo: detecta regresiones de accesibilidad que se cuelan en producción sin que nadie las vea en los tests unitarios.

    El paso de code review automático antes del PR — que complementa esta auditoría de usabilidad — lo explico en detalle en el post sobre agentic code review con Claude Code.

    Si quieres ver cómo construir este tipo de pipelines con agentes desde cero, en Dominicode Labs tenemos proyectos completos que aplican exactamente este enfoque — desde la configuración del MCP hasta la generación del reporte final.


    FAQ

    ¿Necesito conocer Playwright para esto?
    No necesitas escribir código Playwright. El MCP abstrae las herramientas de control del navegador y el agente las usa directamente. Basta con que describas el flujo que quieres auditar en lenguaje natural.

    ¿axe-core cubre todos los criterios WCAG?
    Cubre los criterios que son detectables automáticamente — menos de la mitad de los criterios de WCAG 2.1. El resto requiere evaluación humana. Pero ese 30-40% incluye los problemas más comunes y los más graves.

    ¿El agente puede auditar aplicaciones con autenticación?
    Sí. Puedes darle al agente las credenciales de una cuenta de prueba, o configurar el MCP para que arranque el navegador con una sesión ya autenticada. El agente navega como un usuario real, incluyendo el flujo de login.

    ¿Qué diferencia hay entre esto y Lighthouse?
    Lighthouse audita métricas de performance, SEO básico y accesibilidad en un snapshot estático. Un agente con MCP de Playwright puede auditar flujos interactivos completos — formularios multipaso, modales, estados de error, interacciones con el teclado — y generar reportes adaptados a tu contexto específico, no a un checklist genérico.

    ¿Puedo usar esto con cualquier framework frontend?
    Sí. El agente interactúa con el navegador, no con el framework. Funciona igual con Angular, React, Vue o cualquier app renderizada en el cliente o en el servidor.

    La próxima vez que un cliente te muestre métricas de abandono con todos los tests en verde, ya sabes qué está pasando — y cómo resolverlo.


    Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.

  • 3 formas de ganar dinero en internet como developer en 2026

    3 formas de ganar dinero en internet como developer en 2026

    Durante casi diez años cobré a final de mes. Sin falta, sin sorpresas, sin ansiedad. Y durante casi diez años pensé que eso era la estabilidad.

    Lo que no vi durante esos años es que el salario tiene un techo. Puedes mejorar, conseguir un aumento del 10%, cambiar de empresa y pegar un salto del 20%. Pero la relación entre tu esfuerzo y tu ingreso siempre es lineal. Das 40 horas, recibes X. Das 60 horas, recibes X igualmente — el salario no premia el esfuerzo extra, premia la presencia.

    El día que entendí eso, empecé a construir algo diferente.

    Hoy, parte de lo que gano viene de cursos que grabé hace tres años. Parte viene de una comunidad con membresía mensual. Parte viene de proyectos donde la IA me permite hacer el trabajo de un equipo pequeño en la mitad del tiempo. No es magia. No ocurrió de un mes al siguiente. Pero la diferencia estructural con un salario fijo es real y es enorme.

    Si eres developer y quieres ganar dinero en internet como developer — no como influencer, no como coach de productividad, sino usando lo que ya sabes — estas son las tres formas que yo he visto funcionar en 2026.


    1. Cursos técnicos: cómo generar ingresos pasivos como developer

    Los cursos técnicos son la forma más asimétrica de monetizar conocimiento: produces el contenido una vez y genera ingresos recurrentes sin trabajo adicional por cada venta.

    Es el modelo que yo empecé primero y el que más me ha enseñado sobre la diferencia entre tiempo y activo.

    La lógica es simple: tienes conocimiento técnico que alguien más necesita. En lugar de explicárselo una vez en una reunión — y que te paguen por esa hora —, lo grabas, lo estructuras, y lo vendes 10.000 veces sin hacer nada más.

    Eso es lo que pasa con mis cursos en Udemy: el de Angular Moderno, el de Testing, el de Zod, el de Claude Code. Los grabé. Siguieron vendiendo. El trabajo ya está hecho.

    Pero hay algo que casi nadie dice sobre esto: los primeros meses son duros. Tu primer curso no va a generar €3.000 el primer mes. Va a generar €80 y te va a parecer poco para el esfuerzo que pusiste. La clave está en entender que no estás cobrando por ese mes — estás construyendo un activo que va a seguir funcionando.

    Algunos números reales para que tengas expectativas honestas:

    • Un curso en Udemy puede generar entre €50 y €500/mes en sus primeros meses, dependiendo del nicho y la demanda.
    • A medida que acumulas reseñas y estudiantes, crece de forma orgánica sin que hagas nada nuevo.
    • Si tienes 3 o 4 cursos, los ingresos se suman. Eso es lo que marca la diferencia.

    Lo que necesitas para empezar: saber algo que otros developers necesiten aprender, tener un micrófono decente, y la disciplina para terminar lo que empiezas. No necesitas ser el mejor del mundo en el tema — necesitas saber más que tu alumno objetivo y saber explicarlo con claridad.


    2. SaaS con IA: el modelo que un developer puede construir solo

    Un SaaS pequeño con IA es un producto digital que resuelve un problema concreto y cobra de forma recurrente — y en 2026, un developer puede construirlo solo en días, no en meses.

    El problema del SaaS clásico era el tiempo: meses para llegar a un MVP, y eso si tenías equipo. Con Claude Code, Cursor o agentes bien configurados, ese cuello de botella desaparece. No porque la IA programe por ti — sino porque elimina la fricción entre lo que sabes hacer y el tiempo que tardas en hacerlo.

    El modelo que funciona no es el "construyo el próximo Notion" — eso es una trampa. El modelo que funciona es: identifica un proceso repetitivo y tedioso que alguien paga por resolver, y cóbralo como herramienta.

    Ejemplos concretos que he visto en la comunidad de Dominicode Labs:

    • Una herramienta que genera contratos de freelance desde una plantilla y los envía por email: €9/mes.
    • Un pequeño dashboard que consolida métricas de varias plataformas para agencias: €29/mes.
    • Un agente que revisa PRs de código y genera un resumen para el equipo: €19/mes por organización.

    Ninguno de estos es revolucionario. Todos resuelven un problema real. Y todos tienen un modelo de cobro recurrente que convierte el trabajo de una semana en un ingreso mensual.

    El umbral de entrada es bajo. El único requisito es que seas capaz de hablar con clientes potenciales antes de escribir la primera línea de código — algo que a los developers nos cuesta más de lo que queremos admitir.


    3. Consultoría técnica con IA: cobra más, trabaja igual

    La consultoría técnica multiplicada por IA no es el freelancing clásico: es usar agentes e IA para hacer el trabajo de varios developers en el tiempo de uno, y cobrar en consecuencia.

    El freelancing clásico tiene el mismo problema que el salario: sigues cambiando tiempo por dinero. Tienes 40 horas. Las vendes. No puedes vender 80.

    Lo que ha cambiado en 2026 es que la IA te permite hacer el trabajo de dos o tres developers en el tiempo de uno. Si sabes configurar agentes, si sabes delegar las partes repetitivas a Claude Code o a flujos de n8n, si sabes qué parte del trabajo requiere tu criterio humano y qué parte puede automatizarse — puedes cobrar como equipo y trabajar como individuo.

    Eso no es trampa. Es eficiencia. Los clientes pagan por resultados, no por horas.

    Hay dos variantes concretas de este modelo:

    Proyectos de implementación acelerada. Un cliente necesita integrar una API, construir un backend, migrar un sistema. Antes, eso costaba tres meses y tres developers. Tú lo entregas en tres semanas con IA y cobras el 60% de lo que habría costado el equipo. Todos ganan.

    Automatización de procesos de negocio con retención mensual. Esto es lo que más escala. Entras en una empresa, identificas los procesos manuales y repetitivos — reportes, emails, validaciones de datos, flujos entre herramientas — y los automatizas con n8n, agentes o scripts. Cobras un fee mensual por mantenimiento y mejoras. Es MRR sin necesidad de un producto propio.

    Este modelo requiere que salgas de la zona de confort técnica y entres en conversaciones de negocio. Requiere entender el problema del cliente antes de proponer la solución. Pero si lo haces bien, puedes tener tres o cuatro clientes recurrentes que juntos superen con creces cualquier salario.


    Los tres modelos comparados

    Modelo Esfuerzo inicial Ingresos típicos (6 meses) Requiere audiencia previa
    Cursos técnicos Alto €50–€500/mes por curso No, pero acelera mucho
    SaaS con IA Medio €9–€29/usuario/mes No
    Consultoría con IA Bajo €2.000–€8.000/mes por cliente No

    Los tres no son mutuamente excluyentes. Yo los tengo los tres activos en paralelo. No empecé con los tres a la vez — eso habría sido demasiado. La secuencia que yo recomendaría:

    1. Empieza por los cursos. El tiempo de producción es alto, pero el activo dura años y te posiciona como referente en tu nicho.
    2. Cuando tengas audiencia, lanza algo pequeño de pago recurrente. Puede ser una comunidad, una herramienta, un recurso. En mi caso fue Dominicode Labs.
    3. Usa la IA para multiplicar tu capacidad en proyectos de consultoría mientras los otros dos modelos generan ingreso pasivo.

    Ninguno de estos caminos es pasivo desde el primer día. El trabajo inicial es real. Pero la asimetría — lo que recibes a largo plazo versus lo que das en las primeras semanas — es lo que los hace estructuralmente distintos a un salario.

    Si quieres empezar por aprender a construir con IA de forma que tenga sentido de negocio, en el curso Construye con IA cubrimos exactamente eso: cómo pasar de una idea a un producto real usando Claude Code con criterio. Y en el blog de Dominicode publicamos regularmente tutoriales técnicos sobre IA aplicada, agentes y desarrollo de producto.


    Preguntas frecuentes

    ¿Cuánto tiempo se tarda en ganar dinero con un curso técnico?

    Depende del nicho y de si ya tienes audiencia. Con audiencia desde el primer mes puedes generar ingresos reales. Sin audiencia, cuenta entre 3 y 6 meses para que el curso empiece a tener tracción orgánica en Udemy. Los primeros meses el ingreso es bajo — la clave es no abandonar en ese tramo.

    ¿Necesito una empresa para ofrecer consultoría con IA?

    No para empezar. Puedes operar como autónomo o freelance desde el primer día. La estructura legal depende de tu país y de los volúmenes que manejes. Lo que sí necesitas desde el principio es un contrato claro y saber articular el valor que entregas en términos de negocio, no de horas trabajadas.

    ¿Qué nicho de SaaS tiene más demanda en 2026?

    Los que más estoy viendo: automatización de procesos administrativos para pymes, herramientas de generación y gestión de contenido, y dashboards de consolidación de datos para equipos pequeños que no pueden permitirse soluciones enterprise. Ninguno es glamuroso. Todos tienen clientes dispuestos a pagar.

    ¿Puedo hacer las tres cosas a la vez desde el principio?

    Técnicamente sí, pero no lo recomiendo. Intentar hacer tres cosas a la vez en paralelo garantiza que ninguna llegue a ningún sitio. Elige una, ponla a funcionar, y cuando genere ingreso estable — aunque sea pequeño — añade la siguiente. La consistencia gana a la ambición dispersa.

    ¿Con qué nivel técnico se puede empezar?

    Para los cursos: nivel intermedio-senior con al menos 3-4 años de experiencia en un área concreta. Para el SaaS con IA: igual — necesitas criterio técnico para tomar decisiones de arquitectura, la IA no las toma por ti. Para la consultoría: cuanto más experiencia tengas en sistemas reales, más valor puedes ofrecer.


    Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.

  • Formación en IA para equipos de desarrollo: 4 módulos

    Formación en IA para equipos de desarrollo: 4 módulos

    Me llamó un CTO a las 11 de la mañana. Su empresa tiene 18 developers. Llevan un año diciéndose que “van a adoptar IA”. Han probado ChatGPT, han instalado GitHub Copilot, alguien hizo un tutorial de Claude Code un sábado.

    Y aun así, el equipo sigue trabajando igual que en 2022.

    El problema no está en las herramientas. Está en que nadie tiene claro cómo integrar la formación en IA para equipos de desarrollo de forma coordinada, con metodología, sin que cada developer invente su propio flujo en solitario.

    Eso es exactamente lo que resuelve el programa que ofrezco desde Dominicode.

    El programa de formación en IA para equipos de desarrollo de Dominicode es un itinerario corporativo de 4 módulos — Fundamentos, Claude Code Avanzado, SDD y n8n — diseñado para equipos tech de 5 a 50 personas que necesitan adoptar IA de forma coordinada, no ad-hoc. Duración total: 48-72 horas.

    Por qué los equipos no adoptan IA (y el problema no es la herramienta)

    Cuando un equipo “no adopta IA”, el instinto es buscar la herramienta correcta. Probar otra. Comprar otra licencia. Mandar a alguien a un curso de medio día.

    Eso no funciona porque el problema no es la herramienta.

    La IA cambia cómo se diseña, cómo se especifica y cómo se construye software. Si solo añades una herramienta encima de un proceso que no ha cambiado, el resultado es ruido. Developers que usan IA para generar código que después nadie entiende. Tech leads que no saben cómo revisar trabajo asistido por IA. Proyectos que empiezan con entusiasmo y acaban con un pull request de 2.000 líneas que nadie quiere tocar.

    Según la investigación de GitHub sobre productividad con Copilot, los developers completan tareas hasta un 55% más rápido con asistencia de IA — pero solo cuando tienen flujos de trabajo estructurados, no cuando improvisan cada uno por su cuenta.

    Ya escribí sobre las consecuencias concretas en las consecuencias de no adoptar IA en el desarrollo. Lo que sigue aquí es la solución estructurada.

    El programa de formación en IA para equipos: 4 módulos en orden

    El programa no es una colección de talleres desconectados. Es una progresión deliberada: cada módulo construye sobre el anterior. No puedes enseñar Claude Code avanzado a un equipo que no entiende cómo funciona un LLM. No puedes implantar SDD en un equipo que aún no tiene flujos de trabajo con IA.

    El orden importa.

    Módulo Tema Duración Nivel
    1 Fundamentos de IA para Developers 8-12 h Todos
    2 Claude Code Avanzado 16-24 h Avanzado
    3 Spec-Driven Development (SDD) 12-20 h Intermedio
    4 n8n para Automatización 12-16 h Intermedio

    ### Módulo 1 — Fundamentos de IA para Developers

    Duración: 8-12 horas (varía según el nivel de partida del equipo)

    Aquí el objetivo no es impresionar. Es nivelar.

    Un equipo de 15 personas tiene 15 modelos mentales distintos sobre qué es la IA, qué puede hacer y cuándo falla. Este módulo construye una base compartida: cómo funcionan los LLMs, por qué el contexto es el recurso más escaso, cómo escribir prompts que no sean ruleta rusa.

    Sin esto, cada developer toma decisiones técnicas basadas en suposiciones distintas. Y eso se nota en producción.

    Módulo 2 — Claude Code Avanzado

    Duración: 16-24 horas

    Este es el módulo donde el equipo pasa de “usar IA” a “trabajar con IA de verdad”.

    No es un tutorial de instalación. Es flujo de trabajo real: cómo estructurar el contexto con CLAUDE.md, cómo usar hooks para automatizar validaciones, cómo orquestar subagentes para tareas paralelas, cómo integrar MCP servers con las herramientas internas del equipo.

    Si quieres entender el nivel de profundidad que cubre este módulo, el curso Construye con IA es la versión individual del mismo material — pensada para developers que quieren avanzar por su cuenta antes o después del programa corporativo.

    Módulo 3 — Spec-Driven Development (SDD)

    Duración: 12-20 horas

    Este módulo es el que más sorprende a los equipos. Y el que más impacto tiene a largo plazo.

    SDD es la metodología que desarrollé para el desarrollo asistido por IA — una forma de trabajar donde la especificación técnica existe antes del código y funciona como contrato compartido entre el equipo y la IA. Eso elimina la ambigüedad, reduce el retrabajo y hace que la IA genere código que encaja con la arquitectura real del proyecto.

    En el post sobre SDD en proyectos greenfield con slices verticales puedes ver cómo funciona aplicado a un proyecto real. El módulo corporativo va más lejos: cómo adaptar SDD a equipos con diferentes niveles de seniority y cómo integrarlo con metodologías ágiles existentes.

    Si alguien del equipo quiere prepararse antes del programa, el libro de SDD en Leanpub cubre la metodología completa.

    Módulo 4 — n8n para Automatización

    Duración: 12-16 horas

    n8n (open-source, self-hosteable) es el multiplicador. Cuando el equipo ya trabaja bien con IA a nivel individual, n8n permite construir workflows que amplifican esa productividad a nivel de proceso.

    Automatización de revisiones de código. Pipelines de QA asistidos por IA. Agentes internos que conectan el stack de la empresa — Jira, GitHub, Slack, Notion — con los modelos de lenguaje. Sin necesidad de escribir integraciones desde cero cada vez.

    Este módulo es deliberadamente el último. Sin los tres anteriores se convierte en un set de automatizaciones frágiles sin principios de diseño detrás.

    Para quién es este programa

    Para empresas tech de LATAM o España con equipos de desarrollo de 5 a 50 personas que quieren adoptar IA de forma coordinada, no ad-hoc.

    Para CTOs y tech leads que ya saben que la IA va en serio, pero necesitan un marco estructurado para llevarlo al equipo sin que sea caos.

    Para directores de ingeniería que tienen que justificar la inversión ante negocio y necesitan un programa con entregables concretos, no solo “horas de formación”.

    Para quién no es:

    No es para equipos que buscan un taller de dos horas para “motivar” al equipo con IA. No es para empresas que quieren implementar IA sin cambiar ningún proceso. Y no es para developers individuales — para eso existe el curso individual y Dominicode Labs, la comunidad donde trabajo estos temas cada semana.

    Cómo se entrega

    El programa puede ser presencial, online en vivo, o híbrido. Se adapta al calendario del equipo — no tienes que parar el sprint.

    Cada módulo incluye material práctico, código de ejemplo y entregables que el equipo se lleva: templates de prompts, configuraciones de CLAUDE.md, especificaciones SDD adaptadas a vuestro stack, workflows de n8n listos para customizar.

    El enfoque es 30% teoría, 70% práctica con casos reales. No slides de PowerPoint con capturas de pantalla de ChatGPT.

    ¿Te interesa para tu empresa?

    Si tienes un equipo de desarrollo y quieres entender si este programa encaja con vuestras necesidades, lo primero es una llamada de 30 minutos sin compromiso.

    Escríbeme directamente a bezael@gmail.com con el asunto “Formación B2B” y cuéntame brevemente el tamaño del equipo y el contexto. Te respondo en 24 horas.

    O si prefieres explorar más sobre el enfoque antes de contactar, visita dominicode.com — hay material suficiente para que entiendas exactamente cómo trabajo.

    FAQ — Preguntas frecuentes sobre el programa de formación en IA para equipos

    ¿El programa es modular o hay que contratarlo completo?

    Los cuatro módulos están diseñados para funcionar juntos, pero pueden contratarse de forma independiente. Si el equipo ya tiene base en fundamentos de IA, podemos entrar directamente desde Claude Code. La llamada inicial sirve para diagnosticar dónde está el equipo y qué tiene más sentido.

    ¿Cuánto cuesta el programa?

    El precio varía según modalidad (online, presencial, híbrido), número de módulos y tamaño del equipo. No hay una tarifa fija publicada porque cada empresa parte de un punto distinto. Escríbeme a bezael@gmail.com con el asunto “Formación B2B” y te envío propuesta personalizada en 24 horas.

    ¿Cuál es la duración total del programa completo?

    Entre 48 y 72 horas en total. Se imparte habitualmente en sesiones de 3-4 horas, 2-3 veces por semana, a lo largo de 4-8 semanas. También es posible formato intensivo de inmersión.

    ¿El programa es online, presencial o híbrido?

    Las tres opciones son posibles. Online en vivo es la más habitual para equipos distribuidos en LATAM y España. Presencial está disponible principalmente en España. El formato se decide según la distribución del equipo.

    ¿Qué nivel técnico se requiere para participar?

    Los módulos 1 y 2 son accesibles para cualquier developer con experiencia básica. Los módulos de SDD y n8n requieren nivel mid — no por la complejidad de las herramientas, sino porque el valor real está en aplicarlos a problemas de arquitectura reales.

    ¿Cómo se mide el impacto del programa?

    Definimos métricas antes de empezar: tiempo de ciclo de desarrollo, calidad de especificaciones, reducción de retrabajo, adopción activa de herramientas. Hacemos seguimiento 30 días después de cada módulo.

    ¿Qué diferencia este programa de un curso online normal?

    Un curso online lo hace cada developer a su ritmo, sin coordinación con el equipo. Este programa está diseñado para que el equipo aprenda junto, con casos del proyecto real de la empresa cuando es posible, generando cultura de equipo alrededor de la IA — no solo skills individuales.


    Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.

  • Stack IA agéntica en 2026: qué usar, qué ignorar y cuál elijo

    Stack IA agéntica en 2026: qué usar, qué ignorar y cuál elijo

    El problema no es que falten herramientas para construir agentes de IA. Es que sobran.

    Hace unos meses, en una sesión de Dominicode Labs, me preguntaron cuál era el stack IA agéntica 2026 que recomendaba. Empecé a responder y me di cuenta de que tenía una respuesta para cada capa — pero no tenía una respuesta integrada. Llevo varios proyectos agénticos en producción en Dominicode y cada semana aparece un nuevo framework, un nuevo modelo, un nuevo “estándar imprescindible”.

    Qué modelo. Qué framework de orquestación. Qué hacer con la memoria. Cómo trazar lo que hace el agente. Dónde desplegarlo. Cada capa tiene sus propias opciones, sus propias compensaciones y su propio ecosistema de hype que no para de generar nuevas herramientas.

    Este post es mi respuesta integrada: el stack que yo uso, por qué elegí cada pieza y qué descarto con criterio. No es una lista de todas las herramientas que existen. Es una guía con tesis clara sobre qué funciona en producción cuando construyes con TypeScript, para un proyecto real, sin un equipo de 20 personas.


    Cómo pensar en el stack agéntico: capas, no herramientas

    Antes de hablar de herramientas específicas, el marco que uso para evaluar cualquier stack agéntico. Hay cinco capas y cada una resuelve un problema diferente:

    1. Modelo — el LLM que razona y toma decisiones
    2. Framework de agente — el runtime que envuelve el agentic loop
    3. Memoria y contexto — dónde vive la información entre sesiones y entre agentes
    4. Observabilidad — cómo ves qué está haciendo el agente
    5. Deployment — dónde corre el sistema en producción

    La mayoría de los posts sobre herramientas de IA mezclan estas capas y crean confusión. LangChain no compite con Claude — compite con el SDK de Anthropic. Langfuse no compite con Pinecone — resuelven problemas en capas completamente distintas.

    Cuando tienes claro qué capa resuelve cada herramienta, la decisión se vuelve mucho más simple. Si no tienes claro aún qué es el agentic loop y cómo funciona, empieza por aquí antes de elegir el stack.


    Capa 1: El modelo — quién razona

    La decisión más importante del stack y la que más gente toma al revés: eligen el modelo por el benchmark, no por el comportamiento en producción con herramientas.

    Los benchmarks de razonamiento abstracto no predicen bien si un modelo va a gestionar correctamente el agentic loop: respetar los límites de las herramientas, detectar cuándo ha completado el objetivo, no inventarse argumentos para las tool calls, pedir confirmación cuando tiene ambigüedad.

    Mi ranking para sistemas agénticos en 2026, basado en uso real:

    Claude Sonnet (Anthropic) — mi elección principal. La familia Claude 4.x lidera en comportamiento agéntico: sigue instrucciones complejas del sistema prompt con más fidelidad que los competidores, gestiona bien contextos de 200k tokens, y tiene el menor índice de “tool hallucination” — inventarse argumentos para herramientas que no existen o llamar a herramientas con parámetros incorrectos. Para proyectos donde el agente tiene acceso a herramientas reales con consecuencias (escritura a disco, llamadas a APIs, base de datos), esta fidelidad importa.

    Gemini 2.5 Pro (Google) — segunda opción para tareas de análisis. Tiene una ventana de contexto de 1M tokens que es genuinamente útil cuando el agente necesita procesar documentos grandes. El razonamiento es sólido. La API tiene más latencia que Anthropic en llamadas con herramientas. Lo uso puntualmente para tareas de análisis de documentos extensos, no como backbone de un sistema agéntico.

    GPT-4o (OpenAI) — bueno, pero no es mi primera elección para agentes. Excelente en tareas de generación pura. En agentic loops de más de 15 iteraciones, he visto más context drift que con Claude. Para proyectos que ya tienen infraestructura en el ecosistema OpenAI, es perfectamente válido.

    Llama 3.x local (Meta) — para casos específicos, no como base. Los modelos locales tienen su lugar: privacidad total, sin costos por token, sin latencia de red. Pero para sistemas agénticos complejos, la diferencia en calidad de razonamiento con los modelos de frontera es demasiado grande hoy. Los uso para tareas de clasificación simple o cuando los datos no pueden salir del entorno.

    La conclusión práctica: empieza con Claude Sonnet. Si los costos escalan y la tarea lo permite, evalúa migrar partes del sistema a modelos más baratos para subtareas que no requieren razonamiento complejo.


    Capa 2: El framework de agente — quién orquesta el loop

    Aquí está la decisión que más polémica genera, porque hay muchas opciones y cada una tiene su comunidad apasionada.

    Mi posición es clara: el framework que elijas debería desaparecer de tu código. Si tu lógica de negocio está mezclada con abstracciones del framework, tienes un problema de arquitectura, no de elección de herramienta.

    Vercel AI SDK — mi elección para TypeScript

    Para proyectos TypeScript, el Vercel AI SDK es el estándar más sólido hoy. Tiene tres propiedades que importan:

    Primero, la abstracción es mínima. generateText, streamText, generateObject — funciones que hacen lo que dicen, con un tipo de retorno predecible. Puedes leer el código del SDK y entender qué ocurre.

    Segundo, es agnóstico al proveedor. El mismo código funciona con Claude, GPT-4o y Gemini. Cambias el adaptador, no la lógica. En un año donde los modelos evolucionan rápido, esto no es un detalle menor.

    Tercero, tiene soporte nativo para tool use, streaming de respuestas y generateObject con schemas Zod — lo que significa que puedes hacer que el modelo devuelva JSON tipado sin analizadores de texto frágiles.

    import { generateText } from "ai";
    import { anthropic } from "@ai-sdk/anthropic";
    import { z } from "zod";
    
    

    const result = await generateText({ model: anthropic("claude-sonnet-4-6"), // verifica el modelo vigente en docs.anthropic.com/models tools: { readFile: { description: "Lee el contenido de un archivo del proyecto", parameters: z.object({ path: z.string() }), execute: async ({ path }) => fs.readFile(path, "utf-8"), }, }, messages: [{ role: "user", content: userQuery }], maxSteps: 15, // límite de iteraciones del loop });

    El parámetro maxSteps es el límite de iteraciones del agentic loop. No lo omitas nunca. Un agente sin límite de pasos en producción es un bug esperando a ocurrir.

    LangGraph — cuando necesitas flujos con estado y ramificaciones

    LangGraph (de LangChain) resuelve un problema diferente: orquestación de flujos donde el camino de ejecución no es lineal. Si tienes un sistema donde el agente puede ir por diferentes ramas según el resultado de un paso anterior, donde necesitas estado persistente entre sesiones, o donde hay handoffs entre múltiples agentes con condiciones complejas — LangGraph tiene primitivas para eso.

    No es mi primera elección para proyectos simples porque añade complejidad conceptual. Pero para sistemas multi-agente con lógica de routing elaborada, es genuinamente más potente que construir esa lógica a mano.

    SDK de Anthropic directo — para control total

    Cuando necesito control máximo sobre cada llamada a la API, uso el SDK de Anthropic directamente. Sin abstracciones intermedias. El agentic loop lo implemento yo, con la lógica exacta que necesito.

    Esto es lo que haría si estuviera construyendo el loop desde cero con el SDK directo — el mismo patrón que cubro en detalle en el curso Construye con IA:

    import Anthropic from "@anthropic-ai/sdk";
    
    

    const client = new Anthropic();

    async function runAgentLoop(userMessage: string, tools: Tool[]) { const messages: Anthropic.MessageParam[] = [ { role: "user", content: userMessage }, ];

    let iterations = 0; const maxIterations = 20;

    while (iterations < maxIterations) { const response = await client.messages.create({ model: "claude-sonnet-4-6", // verifica en docs.anthropic.com/models max_tokens: 4096, tools, messages, });

    // Si el modelo no llama a ninguna herramienta, ha terminado if (response.stop_reason === "end_turn") { return extractTextResponse(response); }

    // Procesa las tool calls y añade los resultados al contexto const toolResults = await executeToolCalls(response.content); messages.push({ role: "assistant", content: response.content }); messages.push({ role: "user", content: toolResults });

    iterations++; }

    throw new Error(Agente excedió el límite de ${maxIterations} iteraciones); }

    Lo que no uso: CrewAI, AutoGen, AgentGPT ni la mayoría de frameworks Python-first para proyectos TypeScript. No porque sean malos — CrewAI tiene ideas interesantes sobre roles y colaboración entre agentes — sino porque añadir Python al stack cuando ya tienes TypeScript es complejidad operacional que no se justifica en la mayoría de casos. Si tu equipo es Python, la ecuación cambia.


    Capa 3: MCP — el protocolo que está cambiando todo

    El Model Context Protocol (MCP) merece su propio apartado porque no es un framework de agentes. Es un estándar de comunicación — el equivalente a REST para que los agentes consuman herramientas y contexto de fuentes externas de forma estandarizada.

    Antes de MCP, cada herramienta que querías darle a un agente requería código de integración específico. Con MCP, una herramienta bien construida se puede conectar a cualquier agente que soporte el protocolo — Claude Code, Cursor, tu propio agente custom.

    Las implicaciones son grandes: en lugar de construir integraciones punto a punto, construyes servidores MCP reutilizables. Ya existe un ecosistema de servidores MCP públicos para GitHub, bases de datos, sistemas de archivos, APIs populares.

    // Un servidor MCP mínimo con el SDK oficial
    import { Server } from "@modelcontextprotocol/sdk/server/index.js";
    import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
    import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
    
    

    const server = new Server( { name: "dominicode-tools", version: "1.0.0" }, { capabilities: { tools: {} } } );

    server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: "get_post_metrics", description: "Obtiene métricas de un post del blog por slug", inputSchema: { type: "object", properties: { slug: { type: "string" } }, required: ["slug"], }, }, ], }));

    const transport = new StdioServerTransport(); await server.connect(transport);

    En 2026, si construyes herramientas para agentes y no las expones como servidores MCP, estás construyendo para un solo cliente. El ecosistema ya se está moviendo en esta dirección — Anthropic, OpenAI, Google y la mayoría de los frameworks de agentes tienen soporte nativo para MCP.


    Capa 4: Memoria y contexto persistente

    El problema de la memoria en agentes agénticos tiene tres dimensiones distintas y cada una necesita una solución diferente.

    Memoria conversacional (corto plazo) — el historial de mensajes de la sesión actual. La gestión correcta es mantenerlo en el contexto de la llamada al LLM. El truco está en la truncación inteligente: cuando el contexto se acerca al límite, no cortes los mensajes más antiguos a ciegas — resume las iteraciones antiguas y mantén los más recientes completos.

    Memoria semántica (búsqueda por similaridad) — para cuando el agente necesita recuperar información relevante de una base de conocimiento grande. Las opciones que uso:

    • pgvector — extensión de PostgreSQL. Si ya tienes Postgres en el stack (y probablemente lo tienes), añadir pgvector es añadir una extensión. No necesitas otra base de datos. Para la mayoría de proyectos con menos de diez millones de embeddings, pgvector es suficiente y elimina complejidad operacional.
    • Pinecone — la opción gestionada cuando el volumen es grande o quieres zero-ops. Más caro, más simple. Para proyectos en fases tempranas con presupuesto ajustado, pgvector primero.
    • Supabase pgvector — pgvector sobre Supabase. La que uso en proyectos nuevos porque ya tengo Supabase en el stack para auth y database.

    Memoria episódica (estado entre sesiones) — lo que el agente recuerda de sesiones anteriores con un usuario específico. Esto no es búsqueda vectorial: es estado estructurado que guardas en una tabla normal. El patrón que funciona es guardar un JSON con los hechos relevantes del usuario o proyecto y cargarlo al inicio de cada sesión como parte del system prompt.

    // Carga el estado de memoria al inicio de la sesión
    async function buildSystemPromptWithMemory(userId: string): Promise<string> {
      const memory = await db.query<UserMemory>(
        "SELECT facts FROM agent_memory WHERE user_id = $1",
        [userId]
      );
    
    

    const memoryContext = memory.rows[0]?.facts ? \n\nContexto previo del usuario:\n${JSON.stringify(memory.rows[0].facts, null, 2)} : "";

    return Eres un asistente técnico de Dominicode.${memoryContext}; }


    Capa 5: Observabilidad — ver lo que hace el agente

    Sin observabilidad, un agente en producción es una caja negra que factura. Ya hay un post completo en este blog sobre cómo instrumentar tus agentes con Langfuse y OpenTelemetry, así que aquí voy directo a las decisiones de stack:

    Langfuse — la elección por defecto. Open source, autohospedable, SDK para TypeScript con integración nativa en el Vercel AI SDK. Con un experimental_telemetry en la llamada tienes trazas completas:

    const result = await generateText({
      model: anthropic("claude-sonnet-4-6"), // verifica el modelo vigente en docs.anthropic.com/models
      messages,
      tools,
      experimental_telemetry: { // en Vercel AI SDK v4+ puede ser telemetry sin el prefijo
        isEnabled: true,
        metadata: { userId, sessionId, operationType: "support-agent" },
      },
    });

    OpenTelemetry GenAI — si ya tienes infraestructura OTEL en la empresa, las semantic conventions para IA generativa te permiten integrar las trazas de tus agentes en Grafana, Datadog o Honeycomb sin añadir otra plataforma.

    Helicone — proxy sin código si necesitas observabilidad inmediata sin instrumentar. Un cambio de base URL y tienes dashboards. Útil para proyectos donde no puedes tocar el código de integración.


    Capa 6: Deployment — dónde vive el agente en producción

    Las opciones razonables en 2026, con criterio claro sobre cuándo usar cada una:

    Railway — mi primera opción para agentes con estado o procesos de larga duración. Soporta WebSockets, procesos persistentes y tiene buena DX con Docker. Para agentes que necesitan mantener conexiones abiertas o procesar en background, Railway es más natural que Vercel.

    Vercel — ideal para agentes stateless que responden a webhooks o peticiones HTTP. La integración con el Vercel AI SDK es perfecta — maxDuration hasta 300 segundos en planes Pro es suficiente para la mayoría de las respuestas agénticas. Para workflows que duran minutos, necesitas otra opción.

    Cloudflare Workers + Durable Objects — la opción de mayor rendimiento para agentes edge. Durable Objects resuelve el problema de estado en entornos serverless de forma elegante. La curva de aprendizaje es mayor, pero el resultado en latencia y coste a escala es difícil de igualar.

    Docker + VPS — cuando necesitas control total, costos predecibles a escala media y no quieres depender de plataformas específicas. Es lo que uso para los agentes internos de Dominicode que corren de forma continua.

    Una regla práctica: si el agente responde en menos de 30 segundos y no necesita estado entre llamadas, serverless es suficiente. Si el agente trabaja durante minutos, mantiene conexiones o necesita acceso a recursos locales, necesitas un proceso persistente.


    Mi stack en Dominicode: la versión concreta

    Sin rodeos. Esto es exactamente lo que uso:

    Capa Herramienta Por qué
    Modelo principal Claude Sonnet (Anthropic) Mejor comportamiento en agentic loops, 200k contexto
    Modelo para análisis Gemini 2.5 Pro Contexto 1M para documentos grandes
    Runtime Bun Arranque más rápido, compatibilidad TS nativa, fetch nativo
    Framework de agente Vercel AI SDK Tipado TS sólido, agnóstico al proveedor, maxSteps nativo
    Herramientas custom MCP servers propios Reutilizables entre agentes, estándar abierto
    Memoria semántica Supabase + pgvector Postgres ya en el stack, zero overhead operacional
    Memoria episódica Postgres (tabla JSON) No necesita búsqueda vectorial, estado estructurado
    Observabilidad Langfuse cloud Open source, free tier generoso, integración VAISDK
    Deployment (agentes web) Vercel Integración natural con el SDK
    Deployment (procesos) Railway + Docker Agentes de larga duración, procesos internos
    Validación Zod Schemas para tool inputs y outputs tipados

    La parte que más me preguntan es el runtime: por qué Bun y no Node. La respuesta corta: en scripts de agentes que arrancan y terminan frecuentemente, la diferencia de arranque es perceptible. El soporte nativo de TypeScript elimina el paso de transpilación en scripts de herramientas. Y fetch nativo sin polyfills simplifica el código de integración con APIs externas.


    Lo que descarto y por qué

    LangChain (la librería base) — demasiada abstracción sobre abstracciones. El problema no es que sea mala herramienta: es que cuando algo falla en un agente LangChain, la pila de herencia de clases hace que depurar sea más difícil que si hubieras implementado el loop a mano. LangGraph tiene más sentido para flujos complejos, pero la librería base la evito.

    AutoGen (Microsoft) — interesante para investigación, inconsistente en producción. El modelo de conversación entre agentes es elegante en teoría, pero en proyectos reales he visto bucles de conversación que consumen tokens sin converger. Puede mejorar, pero hoy no lo usaría para un sistema que atiende usuarios reales.

    Pinecone como primera opción — no porque sea malo, sino porque pgvector en Postgres elimina una dependencia externa para la mayoría de los casos de uso. Cuando el volumen de embeddings supere los diez millones o necesites búsquedas en milisegundos a escala muy alta, Pinecone tiene sentido. Antes, no.

    Modelos locales como backbone — la brecha de calidad con los modelos de frontera es demasiado grande para sistemas agénticos complejos. Para clasificación de intenciones sencillas o filtros de moderación, tiene sentido. Para el loop principal de un agente que toma decisiones consecuentes, no lo haría hoy.


    El stack no es el problema

    La decisión de stack importa — pero menos de lo que sugiere el volumen de contenido que se publica sobre herramientas de IA cada semana.

    He visto proyectos con el stack perfecto que fallaban en producción por falta de observabilidad. He visto proyectos con stacks “incorrectos” que funcionaban perfectamente porque el equipo entendía qué estaba haciendo.

    El stack es el entorno. Lo que importa es entender cómo funciona el agentic loop, cómo diseñar herramientas que el modelo pueda usar de forma predecible, y cómo instrumentar el sistema para ver qué ocurre cuando algo falla.

    Si quieres construir esto desde cero con criterio — desde el primer loop hasta el sistema completo en producción — en el curso Construye con IA cubrimos exactamente estas decisiones: qué stack elegir para cada tipo de proyecto, cómo estructurar el código para que sea mantenible, y cómo pasar de prototipo a sistema que funciona cuando no estás mirando.

    Y si quieres el marco metodológico para especificar el sistema antes de escribir una línea de código — evitar construir el agente equivocado — el libro de Spec-Driven Development es la guía que yo sigo antes de abrir el editor.


    Y si al montar el stack te queda la duda de fondo de dónde acaba la automatización y empieza la agencia real, la definición operativa está en qué es un agente de IA de verdad.

    FAQ — Preguntas frecuentes sobre el stack de IA agéntica

    ¿Qué framework de agentes es mejor en 2026: Vercel AI SDK, LangGraph o el SDK directo de Anthropic?

    Depende de la complejidad del sistema. Para la mayoría de proyectos TypeScript con flujos lineales, el Vercel AI SDK ofrece el mejor equilibrio entre abstracción mínima y productividad: tipado sólido, soporte nativo para tool use y streaming, y compatibilidad con múltiples proveedores. LangGraph añade valor cuando el flujo tiene ramificaciones complejas, estado persistente entre pasos o múltiples agentes con routing condicional. El SDK directo de Anthropic tiene sentido cuando necesitas control total sobre cada llamada o cuando las abstracciones intermedias ocultan comportamiento que necesitas ver.

    ¿Necesito una base de datos vectorial para construir un agente?

    No necesariamente. La memoria vectorial solo es necesaria cuando el agente necesita recuperar información relevante de un corpus grande de documentos. Si el agente trabaja con un contexto fijo que cabe en la ventana de contexto del modelo (y con 200k tokens de Claude, cabe mucho), no necesitas embeddings ni búsqueda vectorial. Cuando el corpus supera lo que cabe en contexto, empieza por pgvector en Postgres antes de añadir Pinecone u otra base de datos vectorial externa.

    ¿Qué es MCP y por qué debería importarme en 2026?

    El Model Context Protocol es un estándar abierto que define cómo los agentes de IA consumen herramientas y contexto de fuentes externas. Su importancia práctica: en lugar de construir integraciones específicas para cada agente que quieras conectar a una herramienta, construyes un servidor MCP una vez y cualquier agente compatible puede usarlo. Claude Code, Cursor y la mayoría de los IDEs con IA ya soportan MCP. Si construyes herramientas para agentes hoy, exponerlas como servidores MCP multiplica su utilidad sin trabajo adicional.

    ¿Puedo usar Python para construir el stack agéntico si ya soy developer Python?

    Sí, y tiene sentido si Python es tu lenguaje principal. El ecosistema de agentes en Python es más maduro en algunos aspectos: LangChain, AutoGen, CrewAI y la mayoría de frameworks de referencia nacieron en Python. Lo que pierdes en TypeScript: algunas integraciones no tienen SDK Python equivalente al mismo nivel de calidad. Lo que ganas: ecosistema de ML más rico y más documentación de referencia. La decisión debe estar en el lenguaje que dominas, no en el que tiene más hype.

    ¿Cómo elijo entre Railway y Vercel para desplegar un agente?

    La regla práctica: si el agente responde a peticiones HTTP en menos de 60 segundos y no necesita mantener estado entre llamadas, Vercel Functions es suficiente y más simple. Si el agente trabaja en procesos de larga duración (más de un minuto), necesita WebSockets, mantiene conexiones persistentes, o accede a recursos locales del servidor, Railway con un contenedor Docker es la opción correcta. Cloudflare Workers + Durable Objects es la tercera opción para máxima performance edge cuando el coste a escala importa.

    ¿Qué herramienta de observabilidad recomendarías empezar primero?

    Langfuse. El plan gratuito en cloud cubre 50.000 observaciones al mes, la integración con el Vercel AI SDK es de una línea de código (el parámetro experimental_telemetry), y si en algún momento necesitas privacidad total de los datos, puedes autohospedarlo con Docker. Si ya tienes infraestructura OpenTelemetry en la empresa, las semantic conventions GenAI de OTEL te permiten integrar sin añadir otra plataforma.


    Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.

  • Automatización en n8n: Cómo usar Claude Code sin saber programar

    Automatización en n8n: Cómo usar Claude Code sin saber programar

    ¿No sabes programar? Claude Code puede cambiar igual tu forma de trabajar

    Tiempo estimado de lectura: 5 min

    • Claude Code (CLI) ≠ Claude (modelo): la CLI interactúa con tu repo/terminal; el motor se puede usar vía web/API y en integraciones.
    • No necesitas saber sintaxis para obtener valor: se requiere criterio sobre datos, límites y salida esperada.
    • Tres escenarios prácticos: automatizaciones en n8n, limpieza/transformación de datos y documentación/diseño técnico.
    • Prompts efectivos: ejemplos concretos, formato de salida, entorno objetivo y verificación con ejemplos de entrada/salida.

    Si tu respuesta fue “no” al leer la palabra terminal, tranquilo: ¿No sabes programar? Claude Code puede cambiar igual tu forma de trabajar. La distinción clave es simple y práctica: Claude Code (la CLI) no es lo mismo que Claude, el motor de razonamiento que puedes usar vía web, API o en integraciones como n8n. Entender eso cambia todo.

    Fuentes para comprobar:

    Resumen rápido (lectores con prisa)

    Claude Code es la CLI que puede manipular tu repositorio y ejecutar acciones locales. Claude (el motor) está disponible vía web y API y es útil para transformar criterio en artefactos técnicos sin necesidad de escribir mucho código. Usa la CLI para cambios locales y la API/web para flujos visuales, automatizaciones y generación de snippets.

    ¿No sabes programar? Claude Code puede cambiar igual tu forma de trabajar — lo que realmente importa

    No necesitas saber sintaxis para obtener valor técnico real. Sí necesitas criterio: saber qué quieres, de dónde vienen los datos y cuáles son los límites aceptables. Claude transforma ese criterio en artefactos técnicos —snippets, esquemas, queries, diagramas— que cualquiera puede usar.

    La CLI es potente y exige terminal, Git y permisos. Pero el motor (Claude) puede integrarse en flujos visuales o atender peticiones desde la web. Esa capa intermedia es la que permite a product managers, automation builders y responsables de operaciones avanzar sin depender de un dev full-time.

    A continuación, tres escenarios concretos donde este cambio se nota en horas, no en semanas.

    Tres escenarios concretos

    1) Automatizaciones en n8n sin aprender JavaScript

    Problema real: un webhook te llega con JSON mal formado y tu flujo se rompe. Solución clásica: abrir VS Code y escribir un snippet. Solución práctica hoy: pedirle al modelo.

    Qué hacer:

    • Pega 3–5 ejemplos del payload entrante.
    • Describe la salida deseada (campos, tipos, defaults).
    • Pide el fragmento para un Code Node de n8n y las instrucciones de configuración del nodo HTTP Request (headers, auth).

    Qué recibes:

    • Código listo para pegar (manejo de nulos, conversión de fechas, normalización).
    • Un plan de reintentos (backoff exponencial) y puntos de alerta para errores 429/500.

    Por qué es útil: reduces fricción y tiempo de integración. n8n docs

    2) Limpieza y transformación de datos sin depender de un analista

    Problema real: CSV legacy con fechas en 5 formatos y IDs mezclados. El backlog técnico explota.

    Qué pedir:

    • “Convierte estas 50 filas en JSON válido y genera un JSON Schema. Indica transformaciones campo a campo y regex para IDs que empiecen por TX- y 8 dígitos.”

    Qué recibes:

    • JSON Schema para validar importación.
    • Reglas de transformación (pseudocódigo) y la regex exacta.
    • Si quieres, la consulta SQL para insertar/normalizar en Postgres o BigQuery.

    Beneficio: automatizas pipelines de datos sin hojas de cálculo infernales ni tickets eternos al equipo de datos.

    3) Documentación y diseño técnico antes de escribir una sola línea de código

    Problema real: reunión técnica de 40 minutos sin artefactos concretos. Resultado: ambigüedad y retrabajo.

    Qué pedir:

    • Describe el flujo de negocio y pide un diagrama en Mermaid.js.
    • Describe un endpoint y pide la especificación OpenAPI/Swagger.

    Qué recibes:

    • Código Mermaid listo para pegar en Notion/GitHub y visualizar el diagrama. (Mermaid)
    • Un contrato OpenAPI que el equipo de backend puede implementar sin interpretaciones vagas. (OpenAPI)

    Resultado tangible: reuniones más cortas, decisiones con base y menos tickets de aclaración.

    Cómo estructurar prompts que funcionen (reglas prácticas)

    1. Muestra ejemplos concretos. No abstracciones.

    2. Describe el resultado esperado con formatos y límites: tipos de datos, formatos de fecha, tolerancia a errores.

    3. Indica el entorno objetivo: n8n Code Node, Postgres, BigQuery, Notion, etc.

    4. Pide verificación: un ejemplo de entrada y salida esperada.

    Una plantilla compacta:

    “Ejemplo de entrada: [pega]. Objetivo: [qué quieres]. Reglas: [validaciones]. Entorno: [n8n/Postgres/Notion]. Devuélveme: [snippet/JSON Schema/diagram mermaid/OpenAPI].”

    Cuándo deberías usar la CLI de Claude y cuándo el modelo web/API

    – Usa Claude Code (CLI) si necesitas que un agente toque tu repo, ejecute tests o refactorice código localmente. Requiere comodidad con la terminal y Git.

    – Usa Claude Web/API si tu necesidad es transformar datos, diseñar flujos, generar specs o prototipos visuales. Requiere claridad conceptual, no sintaxis.

    La IA no te da la respuesta mágica si no sabes qué preguntar. Pero convierte tu criterio en artefactos operativos que acortan ciclos y reducen dependencias.

    Esto no acaba aquí: prueba pedir a Claude un solo fragmento pequeño en tu flujo n8n y mide la diferencia. Verás que la ventaja no está en escribir código, sino en convertir ideas ordenadas en resultados reproducibles.

    Dominicode Labs

    Si quieres explorar plantillas, ejemplos y flujos de automatización adaptados a equipos no especializados en programación, considera revisar recursos adicionales en Dominicode Labs. Encontrarás ejemplos prácticos y plantillas que complementan lo que puedes generar con Claude y flujos como n8n.

    FAQ

    ¿Qué es Claude Code?

    Claude Code es la interfaz de línea de comandos (CLI) de Anthropic diseñada para que un agente automatizado interactúe con repositorios, ejecute tareas locales y aplique cambios programáticos sobre código y artefactos del proyecto.

    ¿En qué se diferencia Claude (motor) de la CLI?

    El motor Claude es el servicio de razonamiento accesible vía web o API para generar texto, código y artefactos. La CLI (Claude Code) actúa como un agente que puede tocar el sistema de archivos, ejecutar comandos y modificar repositorios localmente.

    ¿Necesito saber programar para obtener valor?

    No necesitas dominar sintaxis para extraer valor. Necesitas criterio: definir entradas, salidas y límites. Con esa claridad, Claude puede generar snippets, esquemas y transformaciones utilizable por equipos no especializados.

    ¿Cómo usar Claude con n8n?

    Para integrarlo en n8n, proporciona ejemplos del payload, especifica la salida deseada y pide un fragmento listo para un Code Node más instrucciones para el nodo HTTP Request (headers, auth). El modelo puede devolver código manejando nulos, fechas y estrategias de reintento.

    ¿Qué debo incluir en un prompt para obtener un snippet útil?

    Incluye ejemplos concretos de entrada, el objetivo claro (campos, tipos, defaults), reglas de validación y el entorno objetivo (p. ej. n8n Code Node). Pide además ejemplo de entrada/salida para verificación.

    ¿Dónde puedo verificar fuentes y documentación?

    Revisa la documentación oficial citada: Anthropic — Claude Code overview, Claude (Anthropic), n8n, Mermaid.js y la OpenAPI Spec.

  • Mejora tus habilidades de programación con IA y automatización

    Mejora tus habilidades de programación con IA y automatización

    ¿Sigues pensando que ser buen programador es escribir más líneas de código que el resto? Estás en peligro y ni lo hueles.

    Tiempo estimado de lectura: 7 min

    • La relevancia hoy viene de saber ensamblar piezas y orquestar, no de escribir cada línea.
    • Integrar IA y automatizaciones es parte de la infraestructura técnica.
    • Prioriza automatizaciones y evaluaciones de producto sobre trabajo artesanal repetitivo.

    Introducción

    ¿Sigues pensando que ser buen programador es escribir más líneas de código que el resto? Estás en peligro y ni lo hueles.

    Poca gente habla de esto: la obsolescencia profesional ya no viene por no saber una sintaxis. Viene por no saber qué piezas ensamblar. Si tu respuesta a casi cualquier problema sigue siendo “voy a levantar un servidor y escribirlo todo”, entonces tienes un problema de criterio, no de habilidad técnica.

    Esto no es un ataque. Es un diagnóstico frío.

    Aquí están las señales reales de que te estás quedando atrás como desarrollador (y aún no lo ves). Y sí: algunas duelen porque son verdades que nadie te dice en las entrevistas.

    Resumen rápido (lectores con prisa)

    RAG y embeddings son patrones para integrar LLMs con datos; se usan cuando necesitas respuestas contextuales y actualizadas. Automatizar workflows con orquestadores reduce deuda técnica y libera tiempo para diferenciar producto. Audita lo que genera la IA: automatiza boilerplate, revisa seguridad y performance antes de producción.

    Señales de que te estás quedando atrás

    1) Sigues tratando la IA como un chat útil y nada más

    Usar ChatGPT para resolver bugs es cómodo. Pero si tu interacción con la IA termina ahí, estás ignorando que los LLMs ya son parte de la infraestructura.

    La IA hoy:

    • Es una API que debes orquestar.
    • Responde mejor si le das contexto correcto.
    • Puede ejecutar funciones, devolver JSON y disparar procesos en tu backend.

    Si no sabes integrar un modelo con RAG (Retrieval-Augmented Generation), embeddings y llamadas a funciones, estás viendo una lámpara excelente y sin saber que hay electricidad detrás.

    2) Prefieres escribir todo desde cero aunque exista una solución fiable

    Orgullo artesanal = deuda técnica. Si te piden integrar un CRM con PostgreSQL y Slack, y tu primer movimiento es montar Express + cron jobs, estás desperdiciando tiempo que tu equipo necesita para diferenciarse.

    La diferencia es simple: los líderes usan orquestadores (n8n, Zapier o Airbyte donde toque) para lo que no aporta valor diferencial. Tú deberías reservar tu tiempo para la lógica que realmente vende producto.

    3) Tu identidad técnica está atada a un framework

    “React es mejor” o “Angular es la única forma”. Si tu argumento técnico se reduce a banderas de framework, estás perdiendo la partida estratégica. Los frameworks cambian, los patrones no.

    Quien no se queda atrás:

    • Entiende rendering strategies, caché, costos de bundle.
    • Evalúa trade-offs por producto, no por fanatismo.

    4) Rechazas asistentes de código por orgullo

    Los asistentes (Copilot, Cursor, etc.) generan código repetitivo y tests. Si los ignoras por “principio”, estás perdiendo velocidad. No se trata de dejar que la IA haga tu trabajo; se trata de auditar lo que la IA produce con criterio.

    El desarrollador moderno:

    • Genera boilerplate con la IA.
    • Invierte tiempo en revisar, asegurar y optimizar.
    • Usa la IA para escribir tests extremos que tú nunca cubrirías a mano.

    5) Tu responsabilidad termina en el commit

    Si crees que tu trabajo acaba cuando haces push, estás en riesgo. El software vive en producción y ahí hay otras reglas: latencia, despliegues, observabilidad y costes.

    No hay que ser un experto en AWS, pero sí:

    • Entender contenedores (Docker).
    • Saber pipelines CI/CD.
    • Saber qué es un sistema stateless y por qué importa.

    6) Sigues resolviendo problemas con soluciones locales en vez de pensar en experiencia y métricas

    Si tu medida de éxito es “funciona en mi máquina”, vas por mal camino. Hoy el foco es negocio: conversiones, tiempo hasta interacción, abandonos en formularios.

    Si no monitoreas métricas, tus decisiones técnicas serán errores caros disfrazados de “buena ingeniería”.

    Cómo reconectar tu perfil y no morir en el intento

    Esto es práctico. No necesitas reinventarte en una tarde. Necesitas cambiar prioridades.

    1) Aprende a pensar en piezas, no en código

    Antes de escribir, pregúntate:

    • ¿Existe un servicio que resuelva esto de forma mantenible?
    • ¿Puedo automatizarlo con un workflow?
    • ¿O esto es realmente ventaja competitiva y merece código?

    2) Domina las integraciones IA → producto

    No basta con “saber usar” la IA. Tienes que:

    • Integrar embeddings y bases vectoriales.
    • Construir pipelines RAG.
    • Programar llamadas a funciones del LLM y validar outputs.

    3) Automatiza donde tenga sentido

    n8n, herramientas de workflow, y PaaS existieron para quitarte trabajo repetitivo. Úsalas. Si tus tareas son integraciones entre servicios, la primera opción no debería ser escribir un microservicio.

    4) Usa asistentes, pero audita con ojo clínico

    Que la IA escriba tests, esquemas o endpoints iniciales. Tu rol será:

    • Revisar seguridad.
    • Comprobar performance.
    • Refactorizar para calidad.

    5) Toma responsabilidad por el entorno de ejecución

    No delegues todo a DevOps. Aprende lo suficiente para:

    • Diagnosticar un despliegue roto.
    • Leer logs con sentido.
    • Configurar health checks y despliegues canary.

    Checklist rápida para saber si estás fuera del mercado (marca lo que apliques)

    • [ ] Consideras la IA solo como un chat.
    • [ ] Prefieres escribir integraciones manuales siempre.
    • [ ] Defiendes un único framework como identidad profesional.
    • [ ] No usas asistentes de código por “principio”.
    • [ ] Tu trabajo termina en el push.
    • [ ] No monitorizas métricas de negocio.

    Si marcaste 2 o más, es hora de actuar.

    Historias reales (personajes que cambian)

    Laura — Frontend Senior

    Antes: construía cada modal y cada transición con hacks CSS.

    Después de redirigir su tiempo: integró RAG para ayuda contextual en la app, delegó automatizaciones tensas y redujo las tareas repetitivas un 60%. Ahora diseña flujos de producto que realmente importan.

    Marco — Mobile Engineer

    Antes: convencido de reescribir pantallas en nativo.

    Tras auditar: mantuvo Ionic para la mayoría de flujos y reescribió solo dos pantallas críticas en nativo. Resultado: menor mantenimiento y mejor ROI.

    Carla — Product Manager

    Antes: recortaba features por problemas de accesibilidad.

    Con integración A11y y RAG en conjunto con el equipo, lanzó la funcionalidad completa sin recorte de alcance.

    Metáforas que te quedarán grabadas

    – El código es un pasivo: genera coste hasta que lo elimines.

    – La IA es la tubería del edificio: no se ve, pero cuando falla, todo se convierte en agua por todas partes.

    – El assistente de código es un taladro potente: úsalo, pero asegúrate de no perforar la pared equivocada.

    Tácticas concretas que te devuelven relevancia en 30 días

    Semana 1

    Aprende lo básico de RAG y embeddings. Haz un PoC que responda preguntas sobre tu documentación interna.

    Semana 2

    Implementa un workflow en n8n para una integración repetitiva. El objetivo: reducir tareas manuales un 50%.

    Semana 3

    Introduce Copilot o Cursor y genera tests unitarios con la IA. Revisa y corrige.

    Semana 4

    Configura un pipeline básico de CI/CD que mande alertas de error y métricas de rendimiento a Slack.

    Errores que te harán perder meses

    • Actualizar dependencias sin pruebas E2E.
    • Depender de selectores CSS de librería para tests.
    • No manejar casos de fallo de la API de IA (timeouts, rate limits, respuestas inválidas).

    Qué pide el mercado hoy (en lenguaje claro)

    • Ingenieros que integren y orquesten.
    • Personas que dominen RAG y LLMOps.
    • Desarrolladores que produzcan menos código repetitivo y más automatizaciones inteligentes.
    • Profesionales que entiendan negocio y métricas.

    No es solo tecnología; es postura profesional. Si sigues vendiendo “sé X framework” como la gran promesa, empezarás a notar menos llamadas de reclutadores. Si en cambio puedes decir “sé montar RAG, automatizar workflows y ponerlo en producción con pipelines reproducibles”, te llamarán mucho más rápido y mejor pagado.

    ¿Quieres algo tangible ahora?

    Respóndeme con “QUIERO CHECKLIST” y te envío:

    • Checklist descargable de migración de skills (PDF).
    • Mini-plan de 30 días (tareas diarias).
    • Recursos para aprender RAG, n8n y LLMOps con ejemplos prácticos.

    Cierre directo: esto no acaba aquí

    Quedarse atrás no es cuestión de talento; es cuestión de prioridades. Mantenerse relevante implica cambiar qué eliges hacer con tu tiempo. Lo peligroso es pensar que tienes tiempo. No lo tienes. Empieza hoy: automatiza lo que no aporta valor, integra lo que mejora decisiones, y usa IA como una herramienta que amplifica tu criterio.

    ¿Quieres que te mande la checklist? Respóndeme “QUIERO CHECKLIST” y te la paso ahora. Esto no acaba aquí.

    Recursos adicionales

    Si te interesa experimentar con workflows, RAG y despliegues reproducibles, puedes explorar material práctico en Dominicode Labs como continuación lógica a estas tácticas. Encontrarás ejemplos y guías para implementar pipelines y pruebas de concepto.

    FAQ

    ¿Por qué RAG y embeddings son importantes?

    Porque permiten que los LLMs respondan con contexto actualizado y relevante sin reentrenar el modelo. Integran tus datos (documentación, logs, productos) a las respuestas del modelo.

    ¿Cuándo debería usar un orquestador como n8n en vez de escribir un microservicio?

    Cuando la integración es principalmente transferencia de datos entre servicios y no aporta ventaja competitiva. Un orquestador reduce tiempo y deuda técnica.

    ¿Cómo integrar asistentes de código sin perder calidad?

    Usa asistentes para generar boilerplate y tests; dedica tiempo a auditar seguridad, rendimiento y cobertura. La IA acelera, tú aseguras calidad.

    ¿Qué métricas debo monitorear para evaluar impacto de mis cambios?

    Conversión (si aplica), tiempo hasta interacción, tasas de abandono en flujos críticos y métricas de rendimiento (latencia, errores). Complementa con alertas y logs para producción.

    ¿Qué debo aprender primero para dominar LLMOps?

    Embeddings, bases vectoriales, pipelines RAG y cómo orquestar llamadas a funciones del modelo. Complementa con prácticas de validación de outputs y tolerancia a fallos.

    ¿Cómo empiezo un PoC de RAG en una semana?

    Extrae un conjunto pequeño de documentación interna, calcula embeddings, indexa en una base vectorial y conecta un LLM para responder preguntas con ese contexto. Mide precisión y tiempos de respuesta.

  • Optimización de AI Workflow para Programadores: Claves y Herramientas

    Optimización de AI Workflow para Programadores: Claves y Herramientas

    ¿Tu IA te está haciendo el trabajo… o te está creando más trabajo?

    Tiempo estimado de lectura: 7 min

    • Contexto y estructura son imprescindibles: sin contexto la IA amplifica el caos.
    • Protege datos sensibles: no subas secretos; usa modelos locales y exclusiones.
    • Automatiza de forma asíncrona y con fallos en mente: sin esto la IA solo será una conversación bonita.
    • Audita más, escribe menos: la IA genera repetitivo; tú revisas seguridad, performance y casos límite.
    • Mide y observa: métricas y logs son esenciales para LLMOps.

    Introducción

    Poca gente habla de esto en serio: tener modelos potentes no es el mismo problema que tener un workflow que te sirva. Uno vende promesas; el otro te hace entregar cosas en producción sin incendios a las 3 a.m.

    Voy a ser directo. Si tu AI workflow no tiene estructura, privacidad y automatización pensando en fallos, lo único que tendrás es un asistente que copia y pega errores más rápido. Aquí tienes la guía práctica y sin postureo para preparar tu AI workflow como programador. Con herramientas, trucos y decisiones claras. Nada de listas largas de “prueba esto” que nadie usa.

    Resumen rápido (lectores con prisa)

    Qué es: Conjunto de prácticas para construir workflows de IA seguros, observables y automatizados.

    Cuándo usarlo: Al integrar modelos en pipelines de producción o cuando manejas datos sensibles.

    Por qué importa: Evita fugas de datos, reduce bugs en producción y facilita auditoría y cumplimiento.

    Cómo funciona (resumen): Documenta contexto, aísla datos sensibles, orquesta tareas asíncronas, valida salidas con JSON schema y mide métricas clave.

    Primero: tres reglas que no puedes saltarte

    Contexto. Sin contexto, la IA es ruido.

    Sin contexto, la IA no puede tomar decisiones útiles. Asegúrate de que tus prompts se alimenten de datos relevantes y estructurados.

    Seguridad. Sin filtros, la IA es fuga de datos.

    Define exclusiones y políticas de retención. Evita enviar secretos y PII a servicios externos sin controles.

    Automatización asíncrona. Sin ella, la IA es una conversación bonita y nada más.

    Automatiza en background, maneja reintentos y diseña para fallos. Una integración síncrona sin tolerancia a fallos no escala.

    Si no cumples esas tres, deja de leer y organiza tu repositorio. En serio.

    1. Ingeniería de contexto: no alimentes a la IA con basura

    Los LLMs son amnésicos por diseño. No “saben” nada hasta que se lo das. Si tu repo es un caos, la IA amplifica el caos.

    Qué hacer:

    • Documenta. ARCHITECTURE.md en la raíz. Puntos rápidos: responsabilidades de cada módulo, decisiones de diseño, contratos de API.
    • Código legible. Nombres claros. Dos minutos que ahorres en comentarios lo recuperas en prompts más precisos.
    • Indexación controlada. Herramientas como Cursor indexan la base de código. No es opcional si quieres que la IA entienda dependencias entre archivos.

    Resultado: prompts más eficaces, menos vueltas y menos parches en producción.

    2. Aislamiento y tratamiento de datos confidenciales: protege lo que importa

    Enviar todo a la nube es fácil. También es ilegal o estúpido, según el caso.

    Medidas concretas:

    • Archivos de exclusión: .cursorignore, .copilotignore. No indexes credenciales, tests con datos reales ni directorios con PII.
    • Modelos locales para datos sensibles: Ollama o LM Studio ejecutan modelos en tu máquina. Cero fugas externas.
    • Política de retención y cifrado: define cuánto tiempo y cómo borras la memoria generada por agentes.

    Si te salta la duda: no subas datos sensibles. Punto.

    3. Cambia el rol: de escribir a auditar

    El workflow moderno invierte la proporción de tiempo. La IA genera lo repetitivo; tú compruebas. Auditar es la nueva magia.

    Haz esto:

    • Usa la IA para boilerplate, tests iniciales y esquemas.
    • Invierte tu tiempo en seguridad, performance y casos límite raros.
    • Configura revisiones automáticas que devuelvan sugerencias como comentarios en PRs (con n8n, por ejemplo).

    Herramientas que realmente usan los equipos que producen

    No quiero listas infinitas. Estas son las que funcionan en equipos medianos y grandes.

    IDEs y asistentes

    • Cursor: indexación real del repo. Útil para refactors que impliquen muchos archivos.
    • Supermaven: autocompletado ultrarrápido (latencia mínima).
    • GitHub Copilot: confianza y cumplimiento en entornos Enterprise.

    Orquestadores y workflows

    • n8n: automatización visual. Ideal para pipelines que conecten GitHub → Linter IA → Slack → PR comments. Maneja reintentos y errores sin que el dev escriba microservicios extra.
    • Alternativas: Zapier/Pipedream para casos sencillos; Airbyte para ingest de datos.

    Ejecución local y modelos privados

    • Ollama: corre modelos en localhost. Perfecto si tu cliente lo exige.
    • LM Studio: buen balance para experimentar con modelos cuantizados y exponerlos como API local.
    • Vector DBs: Pinecone, Qdrant, Weaviate si necesitas búsqueda semántica en docs internos.

    SDKs vs frameworks pesados

    • Evita LangChain/LlamaIndex cuando necesites control fino. Te ayudan a prototipar, pero esconden la lógica real.
    • Usa SDKs oficiales (OpenAI/Anthropic) + orquestador visual: control, visibilidad y debugging más sencillo.

    Patrones prácticos: cómo montar pipelines que no te rompan

    A continuación, flujos que puedes implementar en cuestión de días.

    Pipeline: revisión automática de PR con IA (n8n)

    1. Webhook en GitHub al abrir PR.
    2. n8n descarga diff y lo manda a un modelo local o API con prompt que busca issues de seguridad / antipatrón.
    3. Resultados validados (JSON schema) → comentarios automáticos en PR + reporte en Slack.
    4. Si la IA sugiere algo crítico, crea un ticket en JIRA y asigna prioridad.

    Beneficio: feedback inmediato sin humanos en la primera línea.

    Pipeline RAG para documentación interna

    1. Indexa docs técnicas en vector DB (Pinecone/Qdrant).
    2. Usa un extractor barato (GPT-4o-mini / Claude 3 Haiku) para generar metadatos y facts.
    3. Cuando el asistente responde, inyecta top-K facts relevantes en el prompt.
    4. Mantén extractor asíncrono con reconciliación por versión para evitar race conditions.

    Diseño de memoria y extracción: regla simple

    • Extrae hechos en background (asíncrono).
    • Para acciones críticas (pagos, cambios legales), ejecuta extracción síncrona o pide confirmación explícita.
    • Versiona la memoria (version_id) y aplica locks optimistas.

    Errores que te costarán tiempo y reputación

    • Enviar secrets a modelos en la nube. Sí, gente lo hace. No seas esa gente.
    • Depender de selectores CSS o clases de librería en tests generados por IA. Rompen fácil. Usa data-testid.
    • Confiar en la IA para lógica crítica sin validación humana estricta. La probabilidad no es garantía.

    Observabilidad y LLMOps: lo que medir y por qué importa

    No puedes mejorar lo que no mides. Las métricas importan.

    Métricas claves:

    • TTFT (Time to First Token).
    • Tiempo de extracción de memoria.
    • Tasa de fallos de parsing JSON del extractor.
    • Conflictos por versiones aplicadas a la memoria.
    • Porcentaje de sugerencias de IA aceptadas por humanos.

    Logs:

    Guarda inputs y outputs del extractor, pero anonimiza PII. Necesitarás trazabilidad si algo sale mal.

    Checklist para lanzar tu AI workflow hoy (marca y haz)

    • [ ] ARCHITECTURE.md en la raíz del repo.
    • [ ] .cursorignore / .copilotignore configurados.
    • [ ] Pipeline básico en n8n para PR review.
    • [ ] Modelo local para datos sensibles (Ollama / LM Studio).
    • [ ] Extractor forzado a JSON + validación con Zod/JSON Schema.
    • [ ] Versionado de memoria y locks optimistas.
    • [ ] Logs estructurados y dashboard de métricas.
    • [ ] Pruebas E2E que incluyan casos de race conditions.

    Plan de 30 días (qué tocar cada semana)

    Semana 1

    Limpiar repo y documentar arquitectura. Configurar ignores.

    Semana 2

    Implementar n8n para PR review + tests automáticos generados por IA.

    Semana 3

    Levantar modelo local y mover procesos sensibles allí. Añadir vector DB básica.

    Semana 4

    Añadir observabilidad y medir. Ejecutar pruebas A/B con y sin memoria en producción limitada.

    Historias reales (no teoría, verdad en el barro)

    Laura, frontend

    Usaba la IA para PRs. Al principio aceptaba todo. Rompió producción en staging. Aprendió a auditar, ahora automatiza el 60% del boilerplate y solo revisa arquitectura.

    Marco, mobile

    Migró a modelos locales para PII y ganó la confianza de compliance. El equipo redujo tiempos de revisión y ganó contrato público.

    Carla, PM

    Quería “más features” sin pensar en deuda. Les explicó la regla: si no hay métricas detrás, no se lanza. El equipo ahora prioriza correctamente.

    Metáfora que recuerda todo esto

    La IA es un taladro potente. Si no pones la broca correcta y no aseguras la pared, perforas donde no debes. Aprende a elegir la broca y pon un protector antes de empezar.

    Cierre con decisión y CTA fuerte

    ¿Quieres el plan y la plantilla listos para pegar en tu repo?

    Responde “QUIERO AI-WORKFLOW” y te mando:

    • Checklist descargable.
    • Prompt extractor listo para usar.
    • Un flujo n8n para revisión de PRs que puedes clonar y ejecutar en 20 minutos.

    Esto no acaba aquí. La IA no es una moda: es infraestructura. Si no defines tu workflow hoy, tu competencia lo hará mañana. ¿Vas a quedarte viendo cómo lo hacen otros o quieres montar algo que funcione de verdad?

    Para recursos y experimentos que complementan estas prácticas visita Dominicode Labs. Es un buen punto de partida si quieres plantillas y flujos listos para adaptar.

    FAQ

    ¿Cuáles son las tres reglas imprescindibles?

    Contexto, Seguridad y Automatización asíncrona. Sin esos tres pilares tu workflow será propenso a errores, fugas de datos y no escalará.

    ¿Cómo evito filtrar datos sensibles a modelos en la nube?

    Configura archivos de exclusión (.cursorignore, .copilotignore), usa modelos locales (Ollama/LM Studio) para datos sensibles y aplica políticas de retención y cifrado.

    ¿Qué herramientas conviene priorizar para empezar?

    Para equipos medianos: Cursor para indexación, n8n para orquestación, y un vector DB básico (Pinecone/Qdrant). Complementa con modelos locales si manejas PII.

    ¿Por qué evitar LangChain/LlamaIndex en producción?

    Porque abstraen lógica crítica y pueden esconder fallos. Para control fino es mejor usar SDKs oficiales y un orquestador visual que te permita debugear y auditar.

    ¿Qué métricas debo medir primero?

    TTFT, tiempo de extracción de memoria, tasa de fallos de parsing JSON, conflictos de versiones en memoria y porcentaje de sugerencias aceptadas por humanos.

    ¿Cómo implementar un pipeline básico de revisión de PRs?

    Configura un webhook en GitHub, usa n8n para descargar el diff y llamar a un modelo (local o API), valida la respuesta con JSON schema y publica comentarios en el PR. Para sugerencias críticas crea tickets automáticos en JIRA.