“Un agente es un becario con una lista de tareas y un teléfono. Útil para recados; peligroso con tu tarjeta de crédito.”
Un agente no es más que un bucle
No hay magia. Un agente es: un prompt de sistema, un conjunto de herramientas y un bucle que ejecuta el modelo, ejecuta cualquier herramienta que llame, devuelve el resultado y repite hasta que el modelo produce una respuesta final o alcanza un límite de pasos. Esa es toda la idea. Todo lo demás es disciplina de ingeniería alrededor de ese bucle.
messages = [system_prompt, user_message]
for step in range(MAX_STEPS):
response = model.call(messages, tools=TOOLS)
if response.is_final_answer:
return response.text
result = run_tool(response.tool_call) # your code, with all the guards
messages += [response, result]
raise StepLimitExceeded() # never loop forever
Por qué los agentes se caen: el error compuesto
La razón por la que las ejecuciones largas de agentes fracasan no es que el modelo sea tonto. Es aritmética. Si cada paso es fiable al 95 %, una tarea de 10 pasos tiene éxito el 0,95^10 ≈ 60 % de las veces. Una tarea de 20 pasos: 36 %. El error se compone de forma multiplicativa, y no hay ningún prompt que derogue la multiplicación.
El estado honesto de los agentes: excelentes para tareas bien acotadas de unos pocos pasos («tría este ticket con estas herramientas», «concilia estos dos registros»), poco fiables para objetivos abiertos y de largo horizonte. El alcance es la palanca.
Cómo construir uno que funcione
Todo agente de producción fiable hace el mismo puñado de cosas. Ninguna es exótica; todas son disciplina.
- Alcance estrecho: un solo trabajo, un conjunto pequeño de herramientas, una definición clara de lo terminado. Cuanto más estrecho el alcance, más tratable la evaluación.
- Tope de pasos estricto: el bucle siempre debe terminar. Un agente sin tope es una factura sin techo.
- Herramientas idempotentes: cada herramienta segura de reintentar, porque el agente reintentará.
- Humano en el bucle para las acciones de alto riesgo: propón, no ejecutes, cuando la acción es irreversible.
- Registra todo: cada prompt, respuesta, llamada a herramienta y resultado. Lo necesitarás dentro de la semana.
Y prefiere la estructura a la autonomía. Un flujo de trabajo fijo con un modelo en cada punto de decisión es más fiable que un agente totalmente autónomo que decide su propio plan, y mucho más fácil de evaluar. Recurre a la autonomía abierta solo cuando la tarea lo exige de verdad, lo cual es más raro de lo que sugieren las demos.
Los sistemas multiagente: prematuros casi siempre
Es tentador construir un equipo de agentes especializados que se hablan entre sí. A veces ese es el diseño correcto. Por lo general multiplica el problema del error compuesto (ahora tienes varios bucles frágiles coordinándose) a la vez que vuelve el sistema mucho más difícil de depurar y evaluar. Haz que funcione primero un solo agente. Añade agentes solo cuando puedas señalar el límite concreto que uno solo alcanzó.
Una línea por cada uno
- Un agente es un modelo en un bucle con herramientas y un tope de pasos. No hay magia, solo ingeniería alrededor del bucle.
- Los agentes se caen porque el error se compone: el 95 % por paso es ~60 % en 10 pasos. A la multiplicación no le importa tu prompt.
- Constrúyelos estrechos: un solo trabajo, conjunto pequeño de herramientas, tope de pasos estricto, herramientas idempotentes, puertas humanas, registro completo.
- Prefiere los flujos de trabajo a la autonomía y un solo agente a varios; añade complejidad solo frente a un límite que de verdad hayas alcanzado.
Adónde ir ahora