Saltar al contenido
Volver al blog
·8 min de lectura

Construyendo flujos de trabajo agentivos con LangChain

IA/MLLangChainAgentesPython

Durante los últimos dos años en Intuit he estado trabajando en sistemas de IA agentivos que van mucho más allá del simple patrón "prompt entra, respuesta sale". Estos flujos encadenan múltiples llamadas a LLM, invocan herramientas externas y toman decisiones de forma autónoma —todo mientras atienden a millones de usuarios en TurboTax y QuickBooks.

¿Qué hace que un flujo sea "agentivo"?

Las integraciones tradicionales con LLM siguen un patrón petición-respuesta: el usuario pregunta, el modelo responde. Los flujos agentivos son diferentes. El LLM actúa como un motor de razonamiento que decide qué hacer a continuación, invoca herramientas, evalúa resultados e itera hasta completar la tarea.

En Intuit, un flujo agentivo típico se ve así:

  1. El usuario sube una forma W-2
  2. El agente invoca una herramienta de OCR para extraer los campos
  3. El agente valida los datos extraídos contra los esquemas del IRS
  4. El agente identifica discrepancias y hace preguntas aclaratorias
  5. El agente llena los campos correctos en la forma fiscal

Cada paso involucra una llamada al LLM que decide la siguiente acción. El agente mantiene el estado, maneja errores y puede retroceder cuando es necesario.

LangChain como capa de orquestación

Elegimos LangChain (y después LangGraph) como nuestro framework de orquestación por varias razones:

  • Abstracción de herramientas — Interfaces limpias para envolver APIs internas, bases de datos y microservicios como herramientas invocables
  • Gestión de memoria — Soporte integrado para historial de conversación y memoria de trabajo en interacciones de varios turnos
  • Componibilidad — Las cadenas y grafos nos permiten construir flujos complejos a partir de componentes simples y testeables
  • Observabilidad — La integración con LangSmith nos dio visibilidad completa de los traces en producción

Arquitectura: el grafo del agente

Nuestros agentes en producción usan un patrón de grafo de estados (vía LangGraph) en lugar de simples cadenas secuenciales. Cada nodo del grafo representa una capacidad —extracción de datos, validación, cálculo, interacción con el usuario— y las aristas representan transiciones condicionales.

from langgraph.graph import StateGraph, END

graph = StateGraph(AgentState)
graph.add_node("extract", extract_document_data)
graph.add_node("validate", validate_against_schema)
graph.add_node("clarify", ask_user_clarification)
graph.add_node("populate", populate_form_fields)

graph.add_edge("extract", "validate")
graph.add_conditional_edges("validate", route_on_confidence)
graph.add_edge("clarify", "validate")
graph.add_edge("populate", END)

La función route_on_confidence revisa el puntaje de validación. Si la confianza está por debajo de nuestro umbral, dirige al nodo de aclaración; de lo contrario, avanza al llenado.

Confiabilidad a escala

Ejecutar flujos agentivos para millones de usuarios nos enseñó lecciones duras sobre confiabilidad:

  • Presupuestos de tokens — Cada llamada del agente tiene un presupuesto máximo de tokens. Implementamos circuit breakers que terminan cadenas descontroladas antes de agotar recursos.
  • Fallbacks deterministas — Cuando el agente no puede resolver una tarea con confianza, caemos en sistemas basados en reglas en lugar de adivinar. Los usuarios confían más en la exactitud que en la velocidad.
  • Salidas estructuradas — Forzamos esquemas JSON en cada respuesta del LLM usando modelos Pydantic. Esto atrapa campos alucinados antes de que se propaguen aguas abajo.
  • Ejecución asíncrona — Las tareas largas del agente (como análisis multi-documento) corren de forma asíncrona con callbacks de progreso, evitando timeouts en las peticiones.

Monitoreo y evaluación

Construimos un pipeline de evaluación propio que corre cada noche contra un dataset dorado de resultados conocidos. Las métricas clave incluyen:

  • Tasa de completación de tareas — Porcentaje de flujos que llegan al estado final sin intervención humana
  • Precisión de llamadas a herramientas — Si el agente seleccionó la herramienta correcta en cada paso
  • Latencia P95 — Tiempo de extremo a extremo para los flujos más complejos
  • Costo por tarea — Gasto total de tokens por flujo completado

Conclusiones clave

Construir sistemas agentivos es fundamentalmente distinto a construir software tradicional. El no determinismo significa que necesitas guardarrieles robustos, pruebas extensas y rutas de degradación elegantes. Pero cuando funciona, los resultados son notables —nuestras funciones impulsadas por agentes redujeron el tiempo de captura manual de datos en un 60% mientras mejoraban la exactitud.

Si vas empezando con flujos agentivos, mi consejo: arranca con una tarea estrecha y bien definida. Logra confiabilidad antes de expandir el alcance. E invierte fuerte en observabilidad desde el día uno —no puedes depurar lo que no puedes ver.

¿Necesitas agentes de IA para tu negocio?

En The Brainy Guys construimos y desplegamos agentes de IA en producción sobre infraestructura dedicada.

Conocer más

Recibe ideas de IA e ingeniería

Artículos sobre agentes de IA, sistemas distribuidos y arquitectura de software. Sin spam, te puedes dar de baja cuando quieras.