claudio.cool
CCAR-FLecciones

CCAR-F · Arquitectura agéntica

Descomponer tareas, con un flujo fijo o dinámico

⏱ 2 min de lecturaBorrador

Hay dos maneras de dividir una tarea grande: decidir los pasos de antemano o dejar que el agente los descubra mientras avanza.

Pipeline fijo

Un pipeline fijo (fixed pipeline), que la guía llama encadenamiento de prompts (prompt chaining), es una secuencia de pasos definida de antemano donde cada uno recibe lo que produjo el anterior. Sirve cuando ya sabés qué hay que hacer, aunque sea mucho, como una revisión con varios aspectos previsibles. El tamaño del trabajo no es lo mismo que la incertidumbre: revisar 200 archivos conocidos sigue siendo un pipeline fijo.

Descomposición dinámica

La descomposición dinámica (dynamic decomposition) sirve cuando no sabés qué vas a encontrar, por ejemplo en un código heredado sin documentación. Necesita un ancla, porque si no, el agente sigue descubriendo trabajo nuevo y no termina nunca:

  • un objetivo claro;
  • criterios de finalización (completion criteria);
  • una lista de tareas explícita que el agente va repriorizando a medida que encuentra cosas nuevas.

Quitar el límite de iteraciones no lo arregla, y un tope arbitrario de pasos lo corta sin ningún criterio de prioridad.

Híbrido

Muchas veces lo mejor es combinar los dos: investigar en forma dinámica y, cuando ya se sabe qué hay que cambiar, aplicar el arreglo con un pipeline fijo.

Varias pasadas

Si un agente revisa muchos elementos de una vez y la calidad baja, puede ser dilución de la atención (attention dilution): conviene analizar cada archivo por separado y después hacer una pasada de integración (integration pass) aparte, que mira los problemas que cruzan archivos. Pasarle a esa pasada lo que dejó el análisis de cada archivo (interfaces, exports, flujos de datos) en lugar de todo el código puede ayudar, pero no es una regla de la guía: lo que la guía pide es separar el análisis por archivo de la pasada entre archivos.

Ojo con el diagnóstico: si la calidad sigue siendo igual de mala revisando de a un elemento, no era dilución. El problema está en los criterios, en los ejemplos o en la capacidad del modelo.

En el examen

Primero preguntate si el trabajo se conoce de antemano. Después, si la opción dinámica tiene un objetivo y un criterio para terminar.

Pregunta rápida

Una pregunta del simulacro sobre este dominio. Cuenta para tu progreso.

A recruitment platform runs an agent that searches its internal candidate database and public profiles to shortlist applicants for open roles. It worked well on the team's test set of 150 job descriptions.

In production, however, the agent occasionally runs for dozens of iterations, repeating near-identical searches with tiny variations in the query. These runs are rare, a few a day out of several thousand, but each one is slow and expensive.

The developer has confirmed that the loop already branches correctly on stop_reason: it continues on "tool_use", finishes on "end_turn" and handles the other values separately.

The team is also planning to move the candidate database to a new search engine next quarter, although nothing about the runaway runs suggests the database itself is failing.

Which change is the most appropriate?

Practicá este dominio en el simulacro →