Plan-and-Execute vs ReAct: comparativa práctica de agentes de IA

7 min de lectura

Día 39 / 60

Durante la semana escribí sobre los 4 caminos posibles para escalar D.N más allá de las 30 herramientas. Luego de conversar con algunos amigos y con mis agentes decidí irme por: Plan-and-Execute.

Y funcionó bastante bien la verdad.

Los números que importan

El mismo estudio de flujo de potencia que hace una semana tomaba 4.6 minutos con 15 tools ahora se ve así:

60.2

minutos

82

tools

$1.05

USD

2M

tokens

Métrica
Semana anterior
Esta semana
Tiempo
4.6 min
60.2 min13x
Herramientas
15
825.5x
Páginas
6
13+117%
Diagramas
0
10nuevo
Escenarios
1
3nuevo
Costo
$0.15
$1.057x

Calidad

"Parecía escrito por un practicante"

Calidad

13 pág · 10 diagramas · 1 hora autónomo

Sí, toma más tiempo. Sí, usa más herramientas. Pero el resultado pasó de 6 páginas a 13 páginas con 10 diagramas y 3 escenarios de operación distintos. El informe que antes parecía escrito por un practicante ahora se ve mucho mejor.

1hautónomo

El agente corrió por 1 hora completa sin preguntarme nada. Una de mis metas es lograr que D.N corra por horas de forma autónoma con una sola instrucción. Esta semana lo logré por primera vez.

El agente ya escribe informes mejor que yo. Y eso es el primer paso de lo que quería lograr.

Cómo funciona la nueva arquitectura

Agregué un clasificador al inicio de cada consulta. Cuando llega una instrucción, el sistema decide: ¿esto es una tarea simple que el ReAct tradicional puede resolver, o necesita planificación?

Clasificador de tareas

Clasificador de tareas

Si es simple — "muéstrame el diagrama de la barra San Pedro" — el agente responde como siempre. Sin cambios.

Si es complejo — "hazme un estudio completo de flujo de potencia con contingencias" — entra Plan-and-Execute:

  1. El Planner (Gemini 3 Pro) genera un plan estructurado de tareas
  2. El Executor (Gemini 3 Flash) ejecuta cada tarea una por una
  3. Si algo falla, el Planner replanifica con el contexto del error

En la prueba que hice, el clasificador detectó que era una tarea compleja con alta confianza y activó Plan-Execute. El Planner generó un plan inicial de 15 tareas:

Plan v1 generado por el agente

Plan v1 generado por el agente

Lo que me sorprende es el nivel de detalle. El agente decidió por sí mismo usar annotate_diagram para crear visualizaciones técnicas — una tool que le permite escribir sobre el diagrama unifilar de PowerFactory.

Diagrama unifilar anotado por el agente

Diagrama unifilar anotado por el agente

El prompt que le di fue extenso y específico. Le pedí un estudio completo con caso base, análisis de cargabilidad térmica, contingencias N-1, tres escenarios de generación (mínima al 30%, máxima al 100%, operación en isla), análisis de pérdidas, perfil de tensiones, análisis de sensibilidad, y 10 diagramas con códigos de colores específicos para tensiones y sobrecargas.

Y el agente lo interpretó correctamente:

  • Usar list_elements para obtener todas las barras, líneas y transformadores
  • Crear diagramas específicos: Diagram 1 (Voltage Profile), Diagram 2 (Thermal Loading)
  • Usar control_element y run_power_flow iterativamente para las contingencias
  • Modificar generadores al 30% y 100%, cargas al 70% y 100% para distintos escenarios
  • Desconectar la red externa para simular operación en isla
  • Las últimas dos tareas: write_technical_report y generate_report_pdf

El agente entendió el dominio. Sabe que un estudio de flujo de potencia necesita casos base, contingencias N-1, escenarios de generación, y que todo termina en un informe. Planificó los 10 diagramas que le pedí. Todo bien.

La tarea 9 falló, (creo que fue porque Gemini 3 estaba justo sobrecargado en ese momento). En vez de quedarse pegado, el Planner rehizo el plan considerando ese error y continuó.

Plan v2 generado por el agente

Plan v2 generado por el agente

Esto es exactamente el modelo "Senior-Junior" que describí en mi post anterior. El senior piensa. El junior ejecuta rápido y barato.

Los problemas que tengo que resolver

Paralelización. Todas las tareas corren secuencialmente. Una detrás de otra. Pero muchas podrían correr en paralelo — generar el diagrama 1 no depende de generar el diagrama 2.

La solución es hacer que el Planner genere un DAG (Directed Acyclic Graph) en vez de una lista lineal. Cada tarea declara sus dependencias, y el Executor puede correr en paralelo todo lo que no tenga conflictos.

Esto es prioridad. Si logro paralelizar, podría bajar el tiempo de 60 minutos a 20-30.

Sistemas pequeños. Todo lo que estoy probando es con sistemas de 50 barras máximo — es el límite de mi licencia de DIgSILENT. El sistema eléctrico chileno real tiene más de 2,500 barras. No sé cómo se va a comportar el agente cuando escale.

Tools faltantes. Me faltan las tools de Infotécnica y de la PGP. Sin ellas, el agente no puede acceder a datos oficiales del Coordinador. Están en el backlog.

Lo que viene

Usando otros agentes en mi día a día me di cuenta de algo: los mejores no se lanzan a ejecutar de inmediato. Primero preguntan. Clarifican. Se aseguran de entender bien lo que quieres antes de ponerse a trabajar.

D.N no hace eso. Le dices "hazme un estudio de flujo de potencia" y sale corriendo. A veces eso está bien, pero otras veces el resultado no es lo que esperabas porque asumió cosas que podría haber preguntado.

El próximo paso es agregar una fase de clarificación antes de la ejecución. Que el agente pregunte: ¿qué escenarios quieres? ¿con qué nivel de detalle? ¿hay alguna contingencia específica que te interese? Y que recién después de entender todo, arme el plan y ejecute.

Suscríbete al blog