Ir al contenido
angel.library

Agentes, herramientas, guardrails y evaluaciones

Un agente combina un modelo con instrucciones, estado y herramientas para avanzar hacia un objetivo. El modelo propone acciones; la aplicación decide qué está permitido, ejecuta la herramienta y devuelve el resultado. No se debe confundir autonomía con acceso ilimitado.

const tools = {
getOrder: {
input: z.object({ orderId: z.string().uuid() }),
execute: async ({ orderId }, context) => {
await requirePermission(context.user, "orders:read", orderId)
return orders.findById(orderId)
}
}
}

La descripción ayuda al modelo a elegir; el esquema valida argumentos; la función ejecutora aplica autenticación, autorización, timeout y auditoría. El modelo nunca sustituye esos controles.

Un workflow tiene pasos y transiciones explícitas. Es preferible cuando el proceso se conoce:

clasificar → recuperar datos → preparar propuesta → aprobación humana → ejecutar

Un bucle agente más libre es útil cuando no se conoce de antemano qué herramientas harán falta, pero necesita límites:

  • máximo de pasos, tokens, tiempo y costo;
  • herramientas permitidas por tarea;
  • detección de acciones repetidas;
  • cancelación con AbortSignal;
  • estado persistido para reanudar sin repetir efectos;
  • aprobación humana antes de pagos, borrados o mensajes externos.

La memoria de una conversación puede dividirse en:

MemoriaContenidoPersistencia
De trabajoMensajes y resultados del turnoContexto actual
ResumenDecisiones y estado compactoConversación
PerfilPreferencias confirmadasCuenta, con consentimiento
ConocimientoDocumentos recuperablesÍndice externo

No guardes cada salida como hecho. Separa afirmaciones del usuario, datos verificados y conclusiones del modelo; permite revisar y eliminar información personal.

Un guardrail es un control antes o después del modelo. Puede validar entrada, detectar datos sensibles, restringir herramientas, moderar contenido o comprobar la forma de salida. La seguridad importante debe ser determinista y ejecutarse alrededor del modelo.

Una eval es una prueba repetible del comportamiento de un sistema de IA. Mantén un conjunto con casos normales, bordes, ataques y fallos históricos.

type EvalCase = {
input: string
expectedCategory: string
mustCite?: string[]
forbiddenActions?: string[]
}

Mide por componentes: selección de herramienta, argumentos, resultado final, citas, latencia y costo. Combina reglas exactas, jueces humanos y, cuando sea apropiado, un modelo evaluador calibrado. Compara versiones del prompt, modelo y herramientas antes de desplegar.