Ayúdame a construir mi flujo de trabajo: nodo Agent con Gemini + herramienta Perplexity + herramienta HTTP se bloquea antes del analizador de salida. El error alterna entre a.ok(nodeExists y falta de memoria

Hola, soy nuevo en n8n. Empecé a crear un flujo de trabajo para aplicar con copilot a algunos roles que coinciden con mi perfil, pero simplemente no logro que el flujo funcione. ¿Es un problema de arquitectura o estoy haciendo algo más mal? ¿Es algo viable o soy demasiado ambicioso? Si no es posible, ¿qué podría hacer para que sea al menos usable? - por ejemplo, solo conseguir que el flujo coloque todos los enlaces e información en una tabla de datos para que pueda aplicar más fácilmente. ¿Debería empezar de nuevo?

Esta automatización debe:

  • Ejecutarse todos los días a las 9 AM.

  • Buscar en múltiples bolsas de empleo diariamente vacantes que coincidan con la experiencia del candidato (candidato único).

  • Detectar palabras clave ATS, URL, empresa, información del puesto, rol, y detectar inyecciones de prompt y evidencia.

  • Extraer la información en una tabla.

Un segundo disparador debe crear versiones personalizadas del currículum y carta de presentación para cada candidato y guardar estos archivos en una carpeta de Drive. También debe completar automáticamente los formularios para que el candidato pueda decidir si aplicar o no. Debe cargar los documentos del CV en cada sitio web.

Si esto no es posible o tiene limitaciones, dímelo y haremos algo más simple. Tengo acceso a Perplexity y Google Studio.

1 me gusta

¡Bienvenida @Camila_Andrea!

El error a.ok(nodeExists) generalmente significa que hay un nodo en la cadena de herramientas del agente que se referencia pero no está conectado correctamente - verifica que cada nodo de herramienta (Perplexity, HTTP) tenga una conexión adecuada a la entrada “Tool” del nodo AI Agent, no solo al flujo principal. El problema de OOM es un problema separado: con Gemini + múltiples herramientas, el agente puede hacer bucles muchas veces acumulando una ventana de contexto grande, lo que agota la memoria. Establece un límite máximo de iteraciones en el nodo Agent (en Settings) - comienza con 5-10 e intenta si se completa.

Para la arquitectura: tu alcance está bien, pero la dividiría en dos flujos de trabajo separados - uno para descubrimiento/extracción de trabajos, otro para generación de documentos. Ejecutar todo en un agente único con tantas herramientas hace que la depuración sea mucho más difícil.

1 me gusta

Hola Camila,

Este es en realidad un proyecto muy interesante, y definitivamente es posible hacerlo en n8n — pero la arquitectura necesita replantearse.

El error que estás viendo probablemente proviene del nodo Agent intentando manejar demasiado a la vez. Cuando combinas múltiples llamadas de herramientas (búsqueda en Perplexity + scraping de bolsas de empleo + rellenado de formularios) dentro de un único nodo Agent, puede exceder los límites de memoria, especialmente con Gemini.

Aquí está lo que sugiero:

  1. Divídelo en flujos de trabajo separados.** No intentes hacerlo todo en un solo nodo Agent. Divídelo así:
    Flujo A: Cron diario → buscar bolsas de empleo → filtrar coincidencias → guardar en base de datos
    Flujo B: Disparado por coincidencia → Perplexity para análisis de palabras clave ATS → formatear en hoja de cálculo
    Flujo C: Disparador manual → generar resume y carta de presentación personalizados por trabajo seleccionado

  2. El nodo Agent funciona mejor para tomar decisiones**, no para encadenar múltiples solicitudes HTTP pesadas. Usa el Agent para decidir CUÁLES trabajos solicitar, no para hacer scraping de los trabajos en sí.

  3. Para la parte de rellenado automático de formularios** — ese es el fragmento más complicado. La mayoría de bolsas de empleo usan estructuras de formulario únicas. Un enfoque más práctico es que el flujo de trabajo prepare todo (resume, carta de presentación, respuestas) y te alerte para aplicar manualmente. He encontrado que este enfoque 80/20 ahorra un tiempo de desarrollo masivo.

Construyo flujos de trabajo de n8n como este profesionalmente — este tipo de automatización de IA de múltiples pasos es realmente mi especialidad. Si quieres que te ayude a arquitectar o construirlo, envíame un mensaje directo. Feliz de saltar a una llamada rápida y mapear la arquitectura para ti.

De cualquier forma, gran idea de proyecto — no la abandones, solo reestructúrala.

1 me gusta

Dos errores diferentes alternándose generalmente significa dos problemas reales acumulados, y la respuesta anterior los dividió correctamente. Vale la pena abordarlos en este orden.

El error a.ok(nodeExists) es un problema de cableado: un nodo de herramienta (Perplexity, la herramienta HTTP) es referenciado por el agente pero no está conectado correctamente en la entrada Tool del nodo AI Agent. Cada herramienta tiene que conectarse a la entrada ai_tool del agente, no en la línea de ejecución principal. Abre el nodo del agente y confirma que cada herramienta aparezca en su lista de herramientas; si una está cableada al flujo principal en lugar de la entrada de herramienta, obtendrás exactamente esto.

La falta de memoria es algo separado y es que el agente está en bucle. Con Gemini y varias herramientas, si el agente no converge, sigue llamando herramientas y acumulando contexto hasta que agota la memoria de la instancia. Limítalo: establece un límite de iteraciones máximas en el agente para que no pueda hacer bucles sin límite, y reduce lo que devuelve cada herramienta (la herramienta HTTP volcando una respuesta enorme en el contexto es una causa común de OOM). Arregla primero el cableado para que funcione de extremo a extremo, luego añade el límite de iteraciones para que una ejecución que no converja falle limpiamente en lugar de consumir memoria.

Para un principiante este es un flujo de trabajo factible, no estás siendo demasiado ambicioso, simplemente caíste en dos de las trampas estándar de agentes a la vez. Obtén una herramienta cableada y funcionando de extremo a extremo antes de añadir la segunda; es mucho más fácil depurar una herramienta que tres. ¿Cuál era la herramienta que estabas cableando cuando apareció por primera vez el error nodeExists?

1 me gusta

Este error alternado ocurre cuando la asignación de memoria heap de Node.js (max-old-space-size) se ve completamente saturada por los datos de ejecución concurrente que fluyen a través de las ventanas de contexto de Gemini y Perplexity. Cuando el contenedor falla, o bien descarta el seguimiento del estado del nodo (a.ok(nodeExists) o se bloquea bruscamente con un error Out-of-Memory.

Para evitar que esto derrumbe tu instancia, necesitas forzar a n8n a que elimine los registros de ejecución anteriores y expanda la huella de memoria de Node.js dentro de tus variables de entorno de Docker.

Añade esto a tu configuración de contenedor ahora mismo:
NODE_OPTIONS=–max-old-space-size=4096
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=24

Si estás ejecutando bucles de IA altamente complejos para un proyecto de cliente y necesitas una configuración de servidor a prueba de fallos que no se bloquee bajo carga antes del lunes por la mañana, conectemos. Soy ingeniero de infraestructura backend; puedo participar en una compartición rápida de pantalla contigo hoy, optimizar tus capas de Docker Compose y estabilizar tus motores de análisis de IA por una tarifa plana de $250. ¡Envíame un DM si quieres que esto se arregle en 30 minutos!