← Todo el material
Investigación Avanzado 14 de octubre de 2026

ReAct y las arquitecturas de agentes: qué usar y cuándo

Informe sobre cómo se diseña un agente de IA en 2026: ReAct a fondo (el paper, sus cifras y por qué no se copia literal), las alternativas (CoT, Plan-and-Solve, Reflexion, Tree of Thoughts, Toolformer, RL), RAG y memoria como subsistemas, comparativa de costo y complejidad, seguridad, evaluación con pass^k y un roadmap de prototipo a producción.

☰ Índice del contenido

La pregunta “¿cuál es la mejor arquitectura de agente?” está mal planteada. ReAct, Chain-of-Thought, Reflexion, Tree of Thoughts, RAG, memoria o RL no compiten entre sí: resuelven problemas distintos y se combinan. Este informe parte por ReAct —el bucle que está debajo de casi todo agente con herramientas—, explica qué tomar de él y qué no copiar del paper de 2022, recorre las alternativas con su costo real, y termina en una arquitectura híbrida y un roadmap concreto de prototipo a producción.

Fecha de los datos: octubre 2026. Las cifras de los papers son resultados históricos en configuraciones concretas de 2022–2023, no comparaciones con modelos actuales. Las valoraciones de madurez, latencia y costo de las tablas comparativas son valoración técnica propia, no ratings de los autores.

Resumen ejecutivo

ReAct —de Reasoning + Acting (razonar + actuar)— es un patrón en el que el modelo alterna razonamiento, elección de una acción, ejecución de una herramienta y observación del resultado, repitiendo el ciclo hasta cumplir el objetivo. “REACT” en mayúsculas es la misma palabra escrita informalmente, no otra arquitectura. El paper original (Yao et al., ICLR 2023) mostró que entrelazar razonamiento y acción podía superar tanto a los enfoques que solo razonan como a los que solo actúan, sobre todo cuando la tarea exige consultar información o interactuar con un entorno.

La idea sigue plenamente vigente, pero el ReAct de 2022/2023 no se debería copiar literal como arquitectura de producción en 2026. El paper armaba prompts few-shot (con unos pocos ejemplos) con trazas de razonamiento escritas a mano; un sistema moderno reemplaza gran parte de ese protocolo de texto por tool calling estructurado (llamadas a herramientas con esquema), estado explícito, validación, memoria controlada, límites de ejecución y observabilidad. Además, los modelos de razonamiento actuales piensan en buena parte internamente, así que no conviene —ni siempre se puede— controlar el agente leyendo su cadena de pensamiento.

La conclusión central: no existe una única arquitectura óptima. Conviene separar problemas que suelen mezclarse:

ProblemaTécnica como punto de partida
Razonar mejor dentro de una sola llamadaPrompting, CoT, Plan-and-Solve
Consultar APIs, buscadores o ejecutar códigoReAct / tool calling nativo
Explorar alternativas y volver atrásTree of Thoughts
Aprender de errores entre intentos sin entrenarReflexion
Acceder a conocimiento corporativo o documentalRAG
Recordar información entre sesionesSistema de memoria explícito
Trabajo largo y descomponiblePlanificación jerárquica / orchestrator-workers
Flujos críticos o repetiblesWorkflow determinista con pasos agénticos acotados
Aprender a usar herramientasSFT/RL al estilo Toolformer
Optimizar un agente con experienciaRL agéntico
Producción mantenibleMáquina de estados, guardrails y evals

Esta separación calza con CoALA (un marco que modela al agente como memoria + espacio de acciones + proceso de decisión) y con la guía de ingeniería de Anthropic, que distingue workflows (el código fija la ruta) de agentes (el modelo decide dinámicamente qué hacer) y recomienda partir por lo más simple y sumar autonomía solo cuando aporte valor medible.

Para la mayoría de los productos nuevos, la recomendación es un híbrido “workflow + ReAct”:

  1. una máquina de estados o grafo explícito gobierna las fases críticas;
  2. el modelo decide localmente cuándo y cómo usar un set restringido de herramientas;
  3. RAG aporta el conocimiento externo;
  4. la memoria persistente guarda solo lo que merece sobrevivir a la sesión;
  5. un validador revisa los resultados antes de cualquier operación de alto impacto;
  6. hay límites de pasos, tiempo, costo y permisos;
  7. todas las trayectorias se registran para evaluar y depurar.

Así se conserva la flexibilidad de ReAct sin la fragilidad de un agente totalmente autónomo. LangGraph, por ejemplo, está diseñado justamente como capa de orquestación de bajo nivel para agentes con estado, ejecución durable, intervención humana y memoria, mezclando pasos deterministas con decisiones del LLM.

No se recomienda usar AutoGPT Classic ni BabyAGI como base de un sistema empresarial nuevo. Son históricamente importantes —popularizaron los ciclos autónomos y la creación dinámica de tareas—, pero AutoGPT hoy es una plataforma de workflows mucho más amplia, y el propio repositorio de BabyAGI dice que el proyecto original se archivó y que la versión actual es experimental y no apta para producción.

Cuando ReAct estándar no basta, las extensiones tienen perfiles muy distintos: Reflexion agrega aprendizaje verbal entre intentos sin tocar pesos; Tree of Thoughts explora varias ramas y es bastante más caro; Plan-and-Solve planifica antes de ejecutar; Toolformer entrena al propio modelo para decidir cuándo y cómo llamar APIs; y el RL agéntico aprende políticas desde recompensas, a cambio de una infraestructura de entrenamiento mucho mayor.

Por último, seguridad y evaluación no se agregan al final. τ-bench muestra que el éxito en una ejecución puede esconder baja consistencia entre ejecuciones, y Agent-SafetyBench encontró fallas de seguridad importantes incluso en agentes avanzados, con defensas basadas solo en prompts insuficientes. Un agente de producción se evalúa a la vez por éxito, fiabilidad, costo, latencia, corrección de las llamadas, seguridad y cuánta intervención humana necesita.

ReAct en profundidad

El paper de Yao, Zhao, Yu, Du, Shafran, Narasimhan y Cao propone intercalar dos capacidades que antes se estudiaban por separado: el razonamiento en lenguaje y las acciones sobre un entorno. Las trazas de razonamiento permiten armar, seguir y corregir planes y manejar excepciones; las acciones permiten traer información nueva desde bases de conocimiento, buscadores o entornos interactivos.

Recursos primarios:

El repositorio trae notebooks para HotpotQA, FEVER, ALFWorld y WebShop y reproduce la metodología de prompting del paper. Hay que verlo como código de investigación de referencia, no como runtime de producción: no implementa persistencia durable, autorización granular, colas, observabilidad distribuida ni manejo de secretos.

El ciclo

       ┌──────────────────────┐
       │ Objetivo del usuario │
       └──────────┬───────────┘
                  ▼
       ┌──────────────────────┐
       │ Contexto + estado    │◄────────────────┐
       └──────────┬───────────┘                 │
                  ▼                             │
       ┌──────────────────────┐                 │
       │ LLM: ¿actuar o       │                 │
       │ terminar?            │                 │
       └────┬────────────┬────┘                 │
     actuar │            │ terminar             │
            ▼            ▼                      │
  ┌──────────────┐  ┌──────────────┐            │
  │ Tool +       │  │ Validar      │            │
  │ argumentos   │  │ respuesta    │            │
  └──────┬───────┘  └──────┬───────┘            │
         ▼                 ▼                    │
  ┌──────────────┐  ┌──────────────┐            │
  │ Validación y │  │ Respuesta    │            │
  │ autorización │  │ final        │            │
  └──────┬───────┘  └──────────────┘            │
         ▼                                      │
  ┌──────────────┐                              │
  │ Herramienta  │                              │
  └──────┬───────┘                              │
         ▼                                      │
  ┌──────────────┐                              │
  │ Observación  ├──────────────────────────────┘
  └──────────────┘

En el ReAct histórico, eso se escribía como texto plano en el prompt:

Question: ...

Thought: necesito averiguar X.
Action: Search[X]
Observation: ...

Thought: con esto puedo investigar Y.
Action: Lookup[Y]
Observation: ...

Thought: ya tengo suficiente evidencia.
Answer: ...

El sitio oficial especifica que los prompts incluían trayectorias de ejemplo con razonamientos escritos por humanos, acciones y observaciones del entorno. En tareas de decisión, los autores razonaban de forma más esporádica y dejaban que el modelo eligiera cuándo pensar y cuándo actuar.

En una implementación moderna conviene separar esas piezas en estructura:

{
  "status": "needs_tool",
  "current_subgoal": "obtener la cotización validada",
  "tool": "get_quote",
  "arguments": {
    "symbol": "XYZ"
  }
}

El modelo razona por dentro y el programa conserva un estado operativo auditable: subobjetivo, herramienta, argumentos, observación, errores, costos y resultado. Así el runtime no depende de una transcripción literal del razonamiento, que en varios modelos de razonamiento actuales ni siquiera se expone completo por la API.

Los componentes, con precisión

ComponenteQué significa en ReActQué conviene hacer hoy
ReasoningTraza intermedia que interpreta observaciones y decide el siguiente pasoRazonamiento del modelo + estado o plan resumido y estructurado
ActingEmitir una acción concreta hacia el entornoTool calling tipado
Tool useEn el paper: APIs como Wikipedia y acciones del entornoRegistro de herramientas con JSON Schema, permisos y timeouts
ObservationResultado que vuelve y condiciona el ciclo siguienteNormalizar, etiquetar procedencia y limitar tamaño
PlanningNo hay un planner separado: emerge del razonamientoEn tareas largas, separar planner y executor
Working memoryHistorial de pensamientos, acciones y observaciones en el contextoEstado explícito y compactación del contexto
Long-term memoryNo es parte del ReAct originalAgregarla solo si el caso de uso necesita persistencia
PromptingTrayectorias ReAct de ejemplo (few-shot)Política de sistema + descripción de tools + esquemas; ejemplos solo si aportan

Ojo: llamar “ReAct” a cualquier sistema con base vectorial, planner, RAG y herramientas esconde el diseño real. ReAct es el bucle razonar → actuar → observar; RAG, memoria persistente, reflexión y planificación jerárquica son extensiones independientes.

Qué rindió en el paper

Frente a métodos previos de imitación y RL de sus experimentos, los autores reportaron que ReAct mejoraba la tasa de éxito en ALFWorld en 34 puntos absolutos y en WebShop en 10, con solo una o dos demostraciones en el prompt. En preguntas y verificación de hechos, consultar Wikipedia reducía la alucinación y la propagación de errores del baseline que solo razonaba.

El README del repositorio publica estos resultados absolutos por benchmark:

Modelo del experimentoHotpotQA (EM)FEVER (EM)ALFWorld (éxito)WebShop (éxito)
PaLM-540B (resultados del paper)29,462,270,940,0
GPT-3 davinci-002 (ejecución del repo)30,454,078,435,8

EM = exact match (coincidencia exacta con la respuesta correcta). Son resultados históricos de 2022–2023, no comparables con modelos de 2026.

El resultado conceptual dura más que las cifras: el baseline que solo razona puede inventar o sostener información equivocada porque no consulta el entorno; el que solo actúa recupera información pero no la sintetiza bien. ReAct junta ambas cosas.

Fortalezas y límites

Fortalezas. Es simple de implementar, encaja naturalmente con herramientas, corrige decisiones a partir de resultados nuevos, deja una trayectoria observable y no requiere entrenar el modelo. Basta un LLM que siga instrucciones, una interfaz de herramientas y un bucle de control. El cómputo se va en inferencia y crece con el número de iteraciones y llamadas a tools, no en entrenamiento.

Límites. El agente puede elegir la herramienta equivocada, armar mal los argumentos, entrar en loops, malinterpretar una observación, agotar el contexto o acumular errores a lo largo de la trayectoria. Cada iteración suma latencia y costo. El propio paper reconoce fallas incluso en ALFWorld y los límites de contexto del prompting, por lo que los autores también probaron fine-tuning sobre el formato ReAct.

Por eso conviene ver a ReAct como un excelente mecanismo local de decisión, no como el controlador global automático de cualquier proceso de negocio.

Estrategias de razonamiento, planificación y aprendizaje

Estas técnicas se presentan a menudo como competidoras, pero operan en capas distintas: CoT y Plan-and-Solve son estrategias de prompting; ReAct agrega interacción con el entorno; Reflexion agrega aprendizaje textual entre intentos; Tree of Thoughts convierte la inferencia en búsqueda; Toolformer modifica el modelo.

EnfoqueQué haceRequisitosFortalezasDebilidadesMadurezCuándo usarlo
Prompt engineeringInstrucciones, contexto, ejemplos, formatos y descripción de toolsSolo inferenciaBarato, rápido, versionableFrágil en tareas muy complejas; no crea memoria ni aprendizajeAltaPrimera capa de todo sistema, con prompts versionados y evaluados
Chain-of-Thought (CoT)El modelo escribe pasos intermedios antes de responderModelo capaz; few-shot en el paperMejora tareas de varios pasos sin herramientasMás tokens y latencia; sin anclaje externo; no es prueba de correcciónAltaRazonamiento interno; nunca como reemplazo de herramientas o validadores
Plan-and-Solve (PS+)Pide al modelo idear un plan con subtareas y luego ejecutarlo paso a pasoSolo inferencia: un prompt zero-shot (sin ejemplos); en sistemas reales a veces se separa en dos llamadasReduce pasos omitidos; fácil de adoptarUn plan inicial malo arrastra toda la ejecuciónMedia-altaEl paso natural después del prompting simple, antes de multi-agente
ReActAlterna razonar → actuar → observarLLM + tools; sin entrenamientoAnclaje en datos reales, adaptación, integración con APIsLoops, errores acumulados, costo por pasoAlta como patrónPor defecto cuando hay herramientas, con máquina de estados y límites
ReflexionTras un intento, un evaluador escribe una reflexión que se guarda y condiciona el siguiente intentoVarias inferencias + una señal de éxito; no toca pesosAprende de fallas sin fine-tuning; se monta sobre ReActMás costo y latencia; puede diagnosticar mal; necesita una buena señalMedia / experimentalSolo después de una falla, con reintentos limitados
Tree of Thoughts (ToT)Genera varios estados de razonamiento, los evalúa y explora con búsqueda y retrocesoMuchas inferencias (ramas × profundidad × evaluación)Sirve cuando las decisiones tempranas hay que reconsiderarlasLatencia y costo altos; el mismo LLM puede ser mal juez de sus ramasInvestigación / selectivaSolo donde la búsqueda realmente mejora el KPI
ToolformerGenera y filtra ejemplos de llamadas a APIs y entrena al modelo para decidir si, cuándo, cuál y con qué argumentos llamarGeneración de datos + entrenamientoInterioriza buenas políticas de uso de toolsCosto de datos y entrenamiento; difícil adaptarse a APIs que cambianInvestigación (idea muy influyente)Solo cuando un agente basado en prompting ya genera trazas suficientes y el volumen lo justifica

Datos de los papers, en sus configuraciones originales: CoT mostró grandes mejoras en aritmética, razonamiento simbólico y sentido común; Plan-and-Solve mejoró sobre Zero-shot-CoT en los diez datasets que evaluó; Reflexion reportó 91% pass@1 en HumanEval; y Tree of Thoughts resolvió 74% de Game of 24 frente a 4% de CoT con GPT-4.

Repositorios: Plan-and-Solve · Reflexion · Tree of Thoughts.

“Usar herramientas” no es Toolformer. Un agente ReAct mantiene el modelo congelado y elige herramientas al inferir; Toolformer genera ejemplos de llamadas y entrena los pesos para integrarlas en la predicción. Una versión moderna “al estilo Toolformer” consiste en juntar trayectorias correctas de tool calling y usarlas para SFT (supervised fine-tuning, ajuste supervisado), optimización por preferencias o RL, con el mismo objetivo: mejorar la política de elección y uso de herramientas.

Reflexion tampoco es RL tradicional. Sus autores lo llaman verbal reinforcement learning porque el feedback queda en memoria de texto, sin ajustar parámetros. Eso lo hace atractivo cuando tienes un verificador —un compilador, una suite de tests, una señal de éxito— y quieres una segunda oportunidad sin entrenar nada.

Los agentes con RL sí modifican la política del modelo. WebGPT fue un ejemplo temprano: OpenAI entrenó un modelo para navegar con un navegador de texto, primero imitando demostraciones humanas y luego optimizando la calidad con feedback humano (su mejor versión usó muestreo best-of-n contra un modelo de recompensa entrenado con preferencias humanas). Agent Lightning lleva esa línea a agentes modernos: representa las ejecuciones como transiciones aprovechables para asignar crédito y entrenar con RL, desacoplando el runtime del sistema de entrenamiento.

Cuidado: la estrategia correcta para RL no es empezar por RL. Primero se construye un agente competente, se registran miles de trayectorias, se define una recompensa difícil de manipular, se monta una evaluación offline estable y se comprueba que prompting o SFT no resuelven el problema. Recién ahí el costo extra se justifica.

Herramientas, RAG, memoria y arquitecturas modulares

Un agente real necesita bastante más que una estrategia de razonamiento. CoALA es útil para diseñarlo porque separa memoria, espacio de acciones y procedimiento de decisión, y trata tanto la interacción con la memoria como con el mundo externo como acciones estructuradas.

Una arquitectura modular recomendable:

  ┌────────────────┐
  │ Usuario/evento │
  └───────┬────────┘
          ▼
  ┌────────────────┐     ┌────────────────┐
  │ Política +     ├───► │ Planner        │
  │ intención      │     └───────┬────────┘
  └────────────────┘             ▼
  ┌─────────────────────────────────────────┐
  │ Orquestador / máquina de estados        │
  │                                         │
  │  RAG · workers · tools/APIs             │
  │  memoria de trabajo · memoria larga     │
  │  tracing · métricas · auditoría         │
  └────────────────────┬────────────────────┘
                       ▼
             ┌───────────────────┐
             │ Evaluador /       │
             │ verificador       │
             └──┬──────┬──────┬──┘
         retry  │      │      │ ok
       ┌────────┘      │      └────────┐
       ▼               ▼               ▼
  ┌──────────┐  ┌──────────────┐  ┌──────────┐
  │ volver al│  │ aprobación   │  │ Resultado│
  │ orquest. │  │ humana       │  │          │
  └──────────┘  │ (alto impac.)│  └──────────┘
                └──────────────┘

Este grafo no exige varios modelos: planner, executor y evaluador pueden ser llamadas distintas al mismo modelo con prompts y permisos diferentes. Separar roles es sobre todo una decisión de control de software, no de arquitectura multi-modelo.

RAG como herramienta

RAG (Retrieval-Augmented Generation, generación aumentada con recuperación) es un subsistema de conocimiento, no una alternativa completa a ReAct. El trabajo original de Lewis et al. combina la memoria del modelo (sus parámetros) con una memoria externa recuperada desde un índice de documentos, motivado por lo difícil que es actualizar conocimiento guardado solo en los pesos y dar procedencia.

En un agente moderno, RAG suele convertirse en una herramienta más:

Agente
  ├─ search_internal_docs(query)
  ├─ search_web(query)
  ├─ get_customer(id)
  └─ create_ticket(...)

Así el agente decide cuándo recuperar en vez de meter documentos en cada solicitud. El costo es una nueva clase de fallas —recuperación incorrecta, documentos desactualizados, contexto contaminado, más latencia—; el beneficio es que el conocimiento se actualiza sin reentrenar el modelo.

Memoria no es “poner una base vectorial”

MemoriaContenidoPersistenciaImplementación típica
Estado de trabajoObjetivo, pasos completados, resultados recientesLa ejecuciónObjeto de estado / checkpoint
ConversacionalMensajes relevantesLa sesiónHistorial + compactación
EpisódicaExperiencias o ejecuciones anterioresLargo plazoBase de datos + búsqueda temporal o semántica
SemánticaHechos sobre el usuario, una entidad o el dominioLargo plazoSQL / clave-valor / índice vectorial
ProcedimentalReglas, skills, instruccionesVersionadaCódigo, prompts, registro de skills
De artefactosDocumentos, código, archivos generadosLargo plazoObject storage / repositorio

MemGPT se diseñó en torno a una jerarquía inspirada en la memoria virtual de los sistemas operativos, moviendo información entre niveles para superar el contexto limitado; esa línea evolucionó después a Letta. Generative Agents ofrece otro patrón: guarda experiencias, recupera recuerdos, sintetiza reflexiones de nivel superior y las usa para planificar; sus ablaciones (pruebas quitando una pieza a la vez) mostraron que observación, planificación y reflexión aportaban al comportamiento en su simulación de 25 agentes.

Ojo: la memoria trae riesgos propios —información obsoleta, contradicciones, crecimiento sin límite, filtración entre usuarios y consolidación de errores—. Una memoria seria necesita política de escritura, expiración o invalidación donde corresponda, procedencia, namespaces por usuario o tenant, y una decisión explícita de qué merece persistir.

Planificación jerárquica y multi-agente

La planificación jerárquica sirve cuando una tarea se descompone en decenas de pasos: el nivel superior define subtareas, los workers las resuelven con ventanas de contexto más chicas y el orquestador junta los resultados. Corresponde al patrón orchestrator-workers que describe Anthropic y a los subgrafos y subagentes de los frameworks actuales.

Su gran beneficio es acortar el “horizonte” que cada worker debe sostener. Pero multi-agente no es gratis: más llamadas, más contexto que propagar, más puntos de falla y más difícil atribuir un error. No conviene crear un agente por cada rol del negocio solo porque se ve elegante. Como regla práctica, un solo agente con cinco tools es más fácil de operar y depurar que cinco agentes conversando entre sí, salvo que haya una razón concreta: aislar contextos, separar permisos, especializar o paralelizar.

AutoGPT, BabyAGI y LangGraph hoy

  • AutoGPT sigue activo, pero cambió de significado: el repositorio distingue el AutoGPT Classic original de la plataforma actual, que permite construir, desplegar y correr workflows completos con triggers y agendamiento, como servicio gestionado o self-hosted. No hay que evaluarlo como si fuera el famoso bucle autónomo de 2023. Repositorio
  • BabyAGI: el README indica que el original de marzo de 2023 (planificación de tareas para agentes autónomos) se archivó en 2024; la variante posterior explora un agente que construye y registra sus propias funciones, con advertencia explícita de que no es para producción. Hoy vale más como laboratorio conceptual. Repositorio
  • LangChain / LangGraph: LangChain aporta integraciones y componentes de alto nivel; LangGraph es la capa de orquestación de bajo nivel para agentes con estado y ejecuciones largas, con persistencia, human-in-the-loop, memoria y observabilidad. Su propiedad clave: no esconde la arquitectura detrás de una abstracción de “agente”, sino que permite mezclar nodos deterministas y agénticos en un grafo explícito. LangGraph · LangChain

Madurez práctica en 2026 (valoración propia)

FamiliaMadurezEvaluación
Tool calling estructuradoAltaBase recomendada
RAGAltaBase recomendada cuando hay conocimiento externo
Workflows deterministas + LLMAltaPreferible en operaciones críticas
ReActAlta como patrónExcelente para uso local de herramientas
LangGraph / máquina de estados agénticaAltaAdecuado para sistemas complejos
Memoria de corto plazo / persistencia explícitaAltaNecesaria en tareas largas
Memoria “auto-curada” por el agenteMediaRequiere evals fuertes
Planificación jerárquicaMedia-altaMuy útil en tareas largas
Multi-agente dinámicoMediaSolo con justificación
AutoGPT PlatformMedia-alta como plataformaEvaluar según integración y producto
AutoGPT ClassicHistórico / experimentalNo usar como base de producción
BabyAGIExperimentalInvestigación y prototipos
CoALAAlta como marco conceptualExcelente guía de arquitectura
Toolformer tal cualInvestigaciónEntrenamiento especializado
RL agénticoInvestigación avanzada → emergenteSolo con escala y una buena señal de recompensa

Comparativa de rendimiento, costo y complejidad

No hay un benchmark único que ponga todas estas arquitecturas en una tabla justa: CoT, RAG, LangGraph y RL resuelven problemas distintos. La tabla siguiente es una evaluación relativa de ingeniería, suponiendo el mismo modelo base y una tarea típica de varios pasos. “Latencia alta” significa más llamadas al modelo o a tools que el baseline; “costo” incluye complejidad operativa, no solo tokens.

EnfoqueLatenciaInterpretabilidad operativaEscalabilidadFacilidadIntegración toolsSeguridad intrínsecaCosto relativo
Prompting simpleBajaAltaAltaMuy altaBajaBajaBajo
CoTBaja–mediaMediaAltaMuy altaBajaBajaBajo–medio
Plan-and-SolveMediaAltaAltaAltaMediaMediaMedio
ReActMedia–altaAltaAlta con buen runtimeAltaMuy altaMedia-bajaMedio–alto
ReflexionAltaAltaMediaMediaAltaMediaAlto
Tree of ThoughtsMuy altaAltaBaja–mediaMedia-bajaMediaMediaMuy alto
Toolformer-like entrenadoBaja–media al inferirMediaMuy altaBajaMuy altaMediaAlto en entrenamiento
RAGMediaAlta por procedenciaAltaAltaMedia–altaMediaMedio
Memoria persistente+Baja–mediaAlta si hay procedenciaAltaMediaMediaMediaMedio
Workflow determinista + toolsBaja–mediaMuy altaMuy altaMediaAltaAltaMedio
LangGraph / modularMediaMuy altaAltaMediaMuy altaAlta si se diseña bienMedio
Multi-agente jerárquicoAlta–muy altaAltaMedia–altaBajaMuy altaMediaAlto–muy alto
Autónomo estilo AutoGPTAltaMediaMediaAlta para demoAltaBaja sin controlesAlto
Estilo BabyAGIAltaMediaBaja–mediaAlta para experimentarMediaBajaMedio–alto
Agente con RLMedia al correr / entrenamiento enormeBaja–mediaAlta una vez entrenadoMuy bajaAltaVariableMuy alto al inicio

Sobre interpretabilidad: ver una cadena de pensamiento no garantiza que sea una representación fiel del cálculo interno del modelo. En operaciones de negocio, la interpretabilidad que sirve es otra: estado de la tarea, plan declarado, herramienta elegida, argumentos, observación, política aplicada, duración, costo y veredicto del verificador.

La escalabilidad tiene dos ejes. Una arquitectura puede escalar bien en número de solicitudes y mal en pasos por solicitud. ToT tiene el segundo problema por su búsqueda ramificada; un workflow determinista procesa volúmenes enormes con trayectorias cortas; un multi-agente puede paralelizar workers pero gasta muchas más inferencias por tarea.

El costo total de una tarea se puede pensar así:

Costo(tarea) = Σ costo de cada llamada al LLM
             + Σ costo de cada tool
             + costo de recuperación (RAG)
             + costo de memoria
             + costo de infraestructura

y la latencia crítica, así:

Latencia(tarea) ≈ Σ latencias de los pasos secuenciales
                + máx. latencia entre ramas paralelas

Por eso reducir pasos secuenciales suele importar tanto como usar un modelo barato. Un ReAct de diez iteraciones con un modelo económico puede salir más lento y caro que un planner mejor que resuelve la misma tarea en tres llamadas. Y repartir el problema entre agentes sin criterio suma tokens de pura coordinación.

La práctica útil es fijar un presupuesto agéntico explícito (valores de ejemplo; se calibran con tus propias evals):

max_steps = 12
max_model_calls = 15
max_tool_calls = 20
max_parallel_workers = 4
wall_clock_timeout = 120 s
maximum_external_cost = ...

Llegar a un límite debe producir un estado controlado como NEEDS_REVIEW, nunca un loop abierto.

Seguridad, guardrails y evaluación

El gran cambio al pasar de un chatbot a un agente es que un error de texto se puede convertir en una acción. Por eso la seguridad se construye alrededor del runtime, no solo dentro del prompt.

  ┌─────────┐   ┌──────────────┐   ┌──────────────┐
  │ Input   ├─► │ Política de  ├─► │ LLM/planner  │◄──┐
  └─────────┘   │ entrada      │   └──────┬───────┘   │
                └──────────────┘          ▼           │
                                   ┌──────────────┐   │
                                   │ Tool call    │   │
                                   │ propuesta    │   │
                                   └──────┬───────┘   │
                                          ▼           │
                                   ┌──────────────┐   │
                                   │ Validar      │   │
                                   │ esquema      │   │
                                   └──────┬───────┘   │
                                          ▼           │
                                   ┌──────────────┐   │
                                   │ Autorizar    │   │
                                   │ (mín. priv.) │   │
                                   └──────┬───────┘   │
                                          ▼           │
                ┌──────────────┐   ┌──────────────┐   │
                │ Aprobación   │◄──┤ ¿Acción      │   │
                │ humana       │sí │ sensible?    │   │
                └──────┬───────┘   └──────┬───────┘   │
                       │                  │ no        │
                       ▼                  ▼           │
                ┌─────────────────────────────────┐   │
                │ Sandbox / ejecutor              │   │
                └────────────────┬────────────────┘   │
                                 ▼                    │
                ┌─────────────────────────────────┐   │
                │ Observación: sanitizar +        ├───┘
                │ procedencia                     │
                └─────────────────────────────────┘

  Respuesta final ──► política de salida / verificador
  Todo el recorrido ──► traza de auditoría

La evidencia empírica respalda los controles fuera del prompt: Agent-SafetyBench evaluó 16 agentes en 349 entornos y 2.000 casos de prueba; ninguno superó 60% en su métrica de seguridad, y los autores concluyeron que las defensas basadas solo en prompts son insuficientes.

Un sistema de producción aplica defensa en profundidad:

  • Sandbox y mínimo privilegio. El modelo nunca recibe una credencial todopoderosa. read_customer() y refund_customer() deben tener permisos, políticas y, si corresponde, flujos de aprobación distintos.
  • Validación de argumentos. La salida del modelo no se convierte directo en SQL, shell, HTTP arbitrario ni una operación financiera: pasa por validación de esquema, reglas de negocio, allowlists y autenticación independientes del modelo.
  • Human-in-the-loop en lo irreversible. Pausar para inspeccionar o modificar el estado antes de pagos, borrados, despliegues, comunicaciones externas sensibles o cambios de permisos.
  • Presupuestos y circuit breakers. Topes de pasos, tokens, costo, reintentos y duración para que un error local no se transforme en una ejecución indefinida.
  • Lo que devuelven las herramientas es input no confiable. Web, correo, documentos recuperados y respuestas de terceros pueden traer instrucciones maliciosas (prompt injection). Es la aplicación, no el texto recuperado, la que define qué herramientas y permisos existen.
  • Idempotencia y compensación. Las herramientas que modifican sistemas deberían aceptar claves de idempotencia, para que un reintento no duplique un pago, un correo o un ticket.

Cómo evaluar un agente

Un agente no se mide solo por accuracy. AgentBench evaluó LLMs como agentes en múltiples entornos y encontró dificultades sobre todo en razonamiento largo, toma de decisiones y seguimiento de instrucciones. GAIA se diseñó con tareas generales que combinan razonamiento, multimodalidad, búsqueda web y herramientas: evaluar un agente exige mucho más que preguntas y respuestas estáticas.

DimensiónMétricas recomendadas
Éxito de la tareaTasa de éxito, exact match, tests que pasan, objetivo cumplido
FiabilidadÉxito en N repeticiones, varianza, pass^k
Uso de toolsPrecisión al elegir tool, precisión de argumentos, tasa de llamadas inválidas
TrayectoriaPasos hasta el éxito, tasa de loops, reintentos, llamadas innecesarias
RAGRecall@k de recuperación, citas correctas, respuestas ancladas en fuentes
Latenciap50, p95, p99 de punta a punta y por tool
CostoTokens de input/output, costo de tools, costo por tarea exitosa
SeguridadViolaciones de política, acciones inseguras, tasa de éxito de inyecciones
Autonomía% completado sin intervención
Carga humanaAprobaciones o escalamientos cada 100 tareas
ExperienciaSatisfacción y tasa de corrección manual
RobustezÉxito ante errores de API, timeouts, datos incompletos y caídas de tools

τ-bench aporta una idea clave: pass^k, que pregunta si el sistema resuelve la tarea correctamente en todas de k ejecuciones, no si alguna sale bien. En el trabajo original, incluso agentes de punta como gpt-4o tenían consistencia limitada: en el dominio retail, su pass^8 quedaba bajo 25%.

Eso cambia cómo se hace el testing de aceptación. Un 90% de éxito por ejecución suena alto, pero suponiendo independencia (una simplificación), la probabilidad de ocho éxitos seguidos es 0,9⁸ ≈ 43%; con 95% por ejecución, 0,95⁸ ≈ 66%. Por eso una operación realmente crítica puede necesitar workflow determinista, verificadores y aprobaciones aunque el modelo parezca “muy bueno”.

Un patrón ReAct moderno (independiente del proveedor)

Pseudocódigo que no depende de una cadena de pensamiento en texto y mantiene un registro operativo:

from dataclasses import dataclass, field
from typing import Any


@dataclass
class AgentState:
    goal: str
    observations: list[dict[str, Any]] = field(default_factory=list)
    step: int = 0


MAX_STEPS = 12


def run_agent(goal: str) -> str:
    state = AgentState(goal=goal)

    for _ in range(MAX_STEPS):
        state.step += 1

        # El modelo recibe:
        # - objetivo
        # - estado resumido
        # - resultados de tools relevantes
        # - herramientas permitidas y sus esquemas
        decision = model.decide(
            goal=state.goal,
            observations=compact(state.observations),
            tools=tool_registry.schemas(),
        )

        if decision.type == "final":
            result = verify_final_answer(decision.answer, state)

            if result.accepted:
                return decision.answer

            state.observations.append({
                "type": "verification_failure",
                "details": result.feedback,
            })
            continue

        if decision.type != "tool_call":
            raise RuntimeError("Decisión de agente inválida")

        tool = tool_registry.get(decision.tool)

        # Control externo al LLM.
        validate_schema(tool, decision.arguments)
        authorize(tool, decision.arguments)

        if is_high_impact(tool, decision.arguments):
            require_human_approval(tool, decision.arguments)

        try:
            observation = sandbox_execute(
                tool,
                arguments=decision.arguments,
                timeout_seconds=20,
            )
        except Exception as exc:
            observation = {
                "status": "error",
                "error_type": type(exc).__name__,
            }

        state.observations.append({
            "tool": decision.tool,
            "arguments": redact_secrets(decision.arguments),
            "result": sanitize(observation),
        })

    raise RuntimeError("Agente detenido: se agotó el presupuesto de pasos")

Conceptualmente es ReAct: decisión → acción → observación → nueva decisión. Pero la seguridad, el control y el estado pertenecen al programa, no a la obediencia del modelo.

Una segunda mejora es planificar solo cuando hace falta:

plan = planner.create_plan(task)

for subtask in plan:
    result = executor.solve_with_tools(
        subtask=subtask,
        max_steps=6,
    )

    if not evaluator.accept(result):
        result = executor.retry(
            subtask=subtask,
            feedback=evaluator.feedback,
            max_steps=3,
        )

    memory.save_artifact(subtask, result)

Aquí conviven Plan-and-Solve + ReAct + Reflexion (evaluador) + memoria, cada pieza con una responsabilidad explícita. Esa composición le gana a la búsqueda del “algoritmo de agente ganador”.

Recomendaciones prácticas y roadmap

La recomendación cambia según el objetivo (valoración propia; supone inferencia por API o servicio gestionado y sin certificaciones regulatorias especiales).

ObjetivoArquitecturaInfraestructuraRiesgo técnico
Prototipo rápidoReAct / tool calling + RAG opcionalAPI de LLM; sin GPU propiaBajo–medio
Producción escalableMáquina de estados + ReAct local + RAG + memoria + verificador + guardrailsAPIs o inferencia gestionada + BD + tracing + sandboxMedio
Investigación avanzadaJerárquico / ToT / Reflexion / SFT-RLClúster GPU o gran presupuesto de inferenciaAlto

Prototipo rápido

Un solo agente con tool calling. Python, Pydantic para los contratos, FastAPI si hay que exponer un servicio, SQLite o PostgreSQL para el estado y un proveedor de LLM con tool calling. RAG solo si existe un corpus externo real. Nada de base vectorial, multi-agente, Reflexion o memoria de largo plazo “por si acaso”.

El objetivo del prototipo no es “tener autonomía”, sino construir un dataset de evaluación real: un conjunto de tareas representativas de tu caso real antes de optimizar la arquitectura. Por cada ejecución, registrar objetivo, tools permitidas, llamadas hechas, argumentos, resultado, costo, latencia y causa de falla.

Python
  │
  ├── API de LLM con tool calling / salida estructurada
  ├── Pydantic / JSON Schema
  ├── bucle ReAct propio y corto
  ├── PostgreSQL o SQLite
  ├── pgvector solo si hay RAG real
  ├── pytest + dataset de evaluación
  └── tracing estructurado

Una abstracción mínima permite entender qué está fallando antes de meter un framework.

Producción escalable

Migrar el loop a un grafo o máquina de estados durable. LangGraph es una opción razonable porque combina lógica determinista con pasos agénticos, checkpoints, human-in-the-loop y memoria; una implementación propia equivalente también vale si el equipo quiere minimizar dependencias.

API / Event Bus
       │
       ▼
Workflow durable / LangGraph / máquina de estados
       │
       ├── Planner acotado
       ├── Executor ReAct
       ├── Servicio de recuperación
       ├── Tool gateway
       │     ├── esquemas
       │     ├── permisos
       │     ├── idempotencia
       │     └── sandbox
       ├── Evaluador
       └── Servicio de aprobaciones
              │
              ▼
     PostgreSQL + object store
              │
              ▼
     Tracing + métricas + auditoría

Para equipos que prefieren un servicio gestionado, ya existen runtimes agénticos de los proveedores. Por ejemplo, OpenAI lanzó el 10 de septiembre de 2026 su Agents API en beta pública: sesiones durables, orquestación, compactación de contexto, herramientas (incluido MCP), subagentes y ejecución en un sandbox gestionado o propio. Es una alternativa a construir todo el harness en casa; revisa sus condiciones de residencia y retención de datos antes de usarla con información sensible.

Cómo decidir entre framework y desarrollo propio:

SituaciónRecomendación
Pocas tools, ejecución breveLoop propio
Flujo lineal y estableWorkflow tradicional
Ramificaciones, reintentos, checkpointsLangGraph / máquina de estados
Tareas de minutos u horasRuntime durable
Necesidad fuerte de infraestructura gestionadaPlataforma de agentes
Requisitos regulatorios / control totalRuntime propio o self-hosted
Investigar el algoritmo agénticoCódigo propio mínimo, para no mezclar variables

Investigación avanzada

Recién después de tener un baseline ReAct y una suite de evals, probar mejoras de a una:

Baseline: tool calling / ReAct
                 │
                 ├── + planificación explícita
                 │     ¿mejora éxito/costo?
                 │
                 ├── + recuperación
                 │     ¿mejora factualidad?
                 │
                 ├── + Reflexion
                 │     ¿mejora éxito tras fallar?
                 │
                 ├── + búsqueda en árbol
                 │     ¿justifica el costo?
                 │
                 ├── + workers jerárquicos
                 │     ¿mejora tareas largas?
                 │
                 └── + SFT / RL
                       ¿mejora la política de acción?

Cuidado: comparar ReAct contra ReAct + Reflexion + RAG + planner + modelo más grande y concluir que “Reflexion funciona” es un error de diseño experimental. Cada intervención se aísla con ablaciones.

  • Tree of Thoughts: pocas ramas y un presupuesto fijo; su valor viene justamente de generar, evaluar y retroceder, que es también la fuente de su sobrecosto.
  • Reflexion: memoria de fallas asociada a la tarea o clase de tarea, con expiración o puntaje de confianza. Una reflexión autogenerada nunca se convierte sola en regla global permanente.
  • Al estilo Toolformer: primero juntar un corpus grande de trayectorias exitosas y fallidas; después entrenar elección de tool y generación de argumentos con SFT, y solo entonces pasar a RL.
  • RL agéntico: exige tres condiciones —recompensa verificable, volumen suficiente de episodios y evaluación protegida contra contaminación y reward hacking (que el modelo aprenda a engañar la métrica)—. Trabajos como Agent Lightning muestran que se puede, pero suma toda una segunda plataforma: generación de rollouts, entrenamiento, versionado de políticas y evaluación.

Roadmap recomendado

FaseQué implementarCriterio para avanzar
BaselinePrompt + salida estructuradaEval reproducible
ToolsTool calling + esquemasLa gran mayoría de llamadas sintácticamente válidas en la suite propia
ReActLoop acción/observación + presupuestosMejora el éxito frente al baseline
RAGRecuperación como herramientaMejora factualidad y anclaje
EstadoCheckpoints + resumen de contextoTareas largas sin degradación excesiva
SeguridadPermisos, sandbox, aprobacionesRed-teaming y eval de acciones
ProducciónEjecución durable + tracingSLO de latencia y fiabilidad
MemoriaEpisódica/semántica, selectivaEvidencia de mejora entre sesiones
PlanificaciónPlan-and-Solve / jerárquicaMejora tareas largas, neto de costo
ReflexiónEvaluador + reintento controladoMayor éxito tras una falla
BúsquedaToT solo en rutas difícilesLa calidad compensa el costo
AprendizajeSFT → RLDataset y recompensa maduros

Los umbrales de la tabla son objetivos de ingeniería sugeridos, no cifras universales.

La arquitectura final recomendada

Para la mayoría de los agentes comerciales complejos:

┌──────────┐     ┌─────────────────┐
│ Objetivo │ ──► │ Router/política │
└──────────┘     └────────┬────────┘
                          ▼
                 ┌─────────────────┐ sí  ┌──────────────┐
                 │ ¿Tarea simple?  │ ──► │ Una llamada  │
                 └────────┬────────┘     │ al LLM       │
                       no ▼              └──────────────┘
                 ┌─────────────────┐
                 │ Planner liviano │◄───────────────┐
                 └────────┬────────┘                │
                          ▼                         │
                 ┌─────────────────┐                │
                 │ Máquina estados │                │
                 │ + memorias      │                │
                 │ + traza/audit.  │                │
                 └────────┬────────┘                │
                          ▼                         │
                 ┌─────────────────┐                │
                 │ Executor ReAct  │◄────────┐      │
                 │ RAG·APIs·código │         │      │
                 └────────┬────────┘         │      │
                          ▼                  │      │
                 ┌─────────────────┐ fallo   │      │
                 │ Verificador     ├─────────┘      │
                 │                 ├────────────────┘
                 └────────┬────────┘ nueva estrategia
                       ok ▼
           respuesta final (o aprobación humana
           si la acción es de alto impacto)

Toma de ReAct el bucle adaptativo acción-observación; de Plan-and-Solve, la planificación cuando hace falta; de RAG, el anclaje en fuentes; de Reflexion, los reintentos con feedback; de CoALA y MemGPT, la separación entre memoria y estado; y de los sistemas de workflows modernos, el control determinista, la persistencia y el human-in-the-loop.

La prioridad es siempre subir la autonomía solo donde una evaluación demuestre que mejora el resultado neto. Pasar de un LLM con tools a un agente totalmente autónomo no es una progresión obligatoria. En muchas aplicaciones el óptimo está deliberadamente al medio: el software convencional controla seguridad, estado y flujo; el LLM pone razonamiento flexible solo en los nodos donde la variabilidad del problema lo exige.

La frase para llevarse

ReAct es el motor, no el auto: el bucle razonar → actuar → observar decide bien a nivel local, pero el estado, los permisos, los límites y la evaluación los pone el programa, no el modelo.

Referencias primarias

ReAct (paper) · ReAct (repo) · Chain-of-Thought · Toolformer · Reflexion · Reflexion (repo) · Tree of Thoughts · ToT (repo) · Plan-and-Solve · Plan-and-Solve (repo) · CoALA · Recursos CoALA · RAG · MemGPT · Generative Agents · Generative Agents (repo) · LangGraph · AutoGPT · BabyAGI

Material relacionado

InvestigaciónAgentes IAReActArquitecturaReflexionEvaluaciónGuardrails

Preguntas sobre este investigación

Regístrate gratis para hacer preguntas y guardar tu progreso.

✉ Entérate de lo nuevo

Recibe un aviso cuando publique nuevos cursos, workshops o investigaciones. Sin spam.