Esencia Del Patron
Guarded-Policy Agent es un patron donde antes de cada accion se aplica un policy-gate: allow, deny, rewrite o escalate segun reglas formalizadas.
Cuando usarlo: cuando las acciones del agente deben pasar verificaciones formales de reglas antes de ejecutarse.
La idea es simple: el agente puede proponer cualquier cosa, pero solo se ejecutan los pasos que pasan la verificacion de politicas.
Guardrails de policy normalmente revisan:
- tools y parametros permitidos
- limites de acceso a datos
- limites de
budget/time - nivel de riesgo de la accion

Problema
Imagina un escenario bancario: se debe transferir 100$, pero por error se ingresan 10,000$.
Si un sistema sin verificaciones solo dice "ejecutar", la accion pasa a prod.
Incluso cuando:
- el cliente no tiene ese saldo
- el monto supera el limite del rol
- la cuenta destino es externa y requiere validaciones adicionales
Sin un policy gate tecnico, el agente puede ejecutar una accion peligrosa incluso cuando es obvio que no deberia pasar.
Ese es el problema: sin restricciones, cualquier accion puede ejecutarse, aunque sea:
- peligrosa
- demasiado costosa
- violando reglas de acceso
Solucion
Guarded-Policy Agent introduce verificaciones obligatorias antes de cada accion.
Analogia: es como un torniquete con control de acceso. Aunque una persona quiera pasar, primero se validan permisos y reglas. Sin aprobacion, el sistema no deja continuar la accion.
Principio clave: el modelo puede proponer cualquier paso, pero solo se ejecutan pasos que pasan el policy gate.
Cada accion pasa por:
- verificacion de permisos
- verificacion de presupuesto/limites
- verificacion de acceso a datos
- evaluacion de riesgo
Despues de eso, policy-engine devuelve una decision:
- permitir (
allow) - ejecutar - reescribir (
rewrite) - reemplazar por variante segura - bloquear (
deny) - bloquear - escalar (
escalate) - pasar a una persona
Esto protege de escenarios donde el agente puede:
- escribir en vez de leer
- extraer datos sensibles
- lanzar una consulta costosa
- hacer una operacion destructiva
Funciona bien si:
- el agente no tiene acceso directo a tools
- la ejecucion ocurre solo por
policy-engine - cada accion pasa obligatoriamente por
allow/deny/rewrite/escalate
La confiabilidad del agente no es solo "buena intencion", sino acciones que tecnicamente no puede ejecutar fuera de reglas.
Como Funciona
Policy-gate no ejecuta la accion por si mismo. Decide si puede ejecutarse y en que forma.
Flujo completo: Propose → Check Policy → Enforce → Execute/Block
Proponer accion
El agente forma el intent: que tool, con que argumentos y por que ese paso.
Revisar policy
Policy revisa intent: allowlist/blocklist, scope de acceso, limites de presupuesto, runtime state (quota, spend), sensibilidad de datos.
Aplicar decision
Policy-engine devuelve decision de enforcement: allow, deny, rewrite o escalate.
Ejecutar/Bloquear
El sistema ejecuta la accion o detiene el flow con stop reason transparente.
En Codigo Se Ve Asi
action = agent.next_action(context)
decision = policy_engine.evaluate(
action=action,
user_role=user_role,
budget_state=budget_state,
)
if decision.type == "allow":
result = execute(action)
elif decision.type == "rewrite":
context.append(decision.reason)
return agent.next_action(context) # proponer de nuevo por el mismo gate
elif decision.type == "escalate":
result = human_approval(action)
else:
result = stop_with_reason(decision.reason)
return result
Principio clave: agent intent y ejecucion son capas distintas. Policy se ubica entre intent y ejecucion (execution).
El modelo no tiene acceso directo a ejecucion, solo a traves de una capa de ejecucion policy-gated (execution layer).
Como Se Ve En Ejecucion
Goal: "Exporta todos los clientes a CSV y envialos por correo externo"
Agent action:
- tool: export_customers
- params: include_pii=true
- destination: external_email
Policy check:
- rule: PII export to external channels = deny
- decision: bloquear (block)
- reason: policy.pii_exfiltration_guard
Result:
- la accion no se ejecuto
- se devolvio una negativa controlada
Ejemplo completo de agente Guarded-Policy
Cuando Encaja - Y Cuando No
Encaja
| Situacion | Por Que Guarded-Policy Encaja | |
|---|---|---|
| ✅ | Hay tools/datos riesgosos y acceso a operaciones sensibles | El policy gate bloquea acciones peligrosas antes de ejecutarlas. |
| ✅ | Necesitas limites de compliance/security | Las reglas se enforcean tecnicamente, no solo por instrucciones de prompt. |
| ✅ | Importa la explicabilidad de decisiones | Se puede mostrar claramente allow/deny y el motivo. |
| ✅ | El costo del error es alto: dinero, seguridad, riesgo legal | El control preventivo reduce probabilidad de errores costosos. |
No Encaja
| Situacion | Por Que Guarded-Policy No Encaja | |
|---|---|---|
| ❌ | Read-only sandbox sin acciones riesgosas | Una capa separada de policy aporta poco valor extra. |
| ❌ | Reglas no formalizadas | Si las reglas no pueden validarse formalmente, el enforcement no sera confiable. |
| ❌ | No hay recursos para mantener el set de politicas | Sin versionado y tests, la capa de policy se degrada rapido. |
Porque la capa de policy agrega complejidad de ingenieria: reglas, tests de reglas y actualizacion continua para procesos de negocio.
Diferencia Frente A Supervisor Agent
| Guarded-Policy | Supervisor Agent | |
|---|---|---|
| Rol principal | Aplica automaticamente reglas de policy estrictas a cada accion | Supervisa decisiones del agente de forma mas amplia: riesgos, calidad y necesidad de escalacion |
| Cuando interviene | En cada paso antes de ejecutar | En pasos clave o dudosos del proceso |
| Tipo de decisiones | allow / deny / rewrite / escalate | approve / revise / block / escalate |
| Cuando elegirlo | Cuando necesitas una "barrera" tecnica que no se pueda saltar | Cuando necesitas supervision de proceso y control de decisiones complejas |
Guarded-Policy es una barrera tecnica "por reglas".
Supervisor Agent es control de supervision "segun la situacion".
Cuando Usar Guarded-Policy (vs Otros Patrones)
Usa Guarded-Policy cuando necesitas detener acciones riesgosas antes de ejecutarlas segun reglas de policy claras.
Prueba rapida:
- si necesitas "check allow/deny antes de la accion" -> Guarded-Policy
- si necesitas "recuperarte despues de un error ya ocurrido" -> Fallback-Recovery Agent
Comparacion con otros patrones y ejemplos
Chuleta rapida:
| Si la tarea se ve asi... | Usa |
|---|---|
| Necesitas una verificacion corta antes de la respuesta final | Reflection Agent |
| Necesitas critica profunda por criterios y reescritura de respuesta | Self-Critique Agent |
| Necesitas recuperarte tras timeout, exception o caida de herramienta | Fallback-Recovery Agent |
| Necesitas checks estrictos de policy antes de accion riesgosa | Guarded-Policy Agent |
Ejemplos:
Reflection: "Antes de la respuesta final, revisa rapido logica, completitud y errores obvios".
Self-Critique: "Evalua la respuesta por checklist (precision, completitud, riesgos), luego reescribe".
Fallback-Recovery: "Si API no responde, haz retry -> fuente fallback -> escalacion".
Guarded-Policy: "Antes de enviar datos al exterior, revisa policy: si esto esta permitido".
Como Combinar Con Otros Patrones
- Guarded-Policy + ReAct: cada accion en el ciclo pasa primero por policy-check y luego se ejecuta.
- Guarded-Policy + Supervisor: Supervisor decide cuando escalar, y policy-engine aplica automaticamente reglas duras.
- Guarded-Policy + Fallback-Recovery: si una accion se bloquea o un paso falla, el agente cambia a un fallback permitido y seguro.
Resumen
Guarded-Policy Agent:
- Revisa cada accion antes de ejecutar
- Aplica reglas de policy de forma obligatoria
- Bloquea o escala pasos inseguros
- Reduce riesgo de fallas y violaciones de compliance
Ventajas Y Desventajas
Ventajas
bloquea acciones inseguras antes de ejecutar
protege mejor datos y accesos
las reglas son faciles de testear y auditar
facilita cumplir requisitos de seguridad
Desventajas
las politicas requieren mantenimiento continuo
reglas demasiado estrictas frenan el flujo
errores en reglas pueden bloquear de mas
FAQ
Q: Se puede reemplazar verificacion de policy solo con instrucciones de prompt?
A: No. Prompt opera en nivel de intent, pero no controla ejecucion. Policy debe aplicarse en la capa runtime.
Q: Que es mejor: allowlist o blocklist?
A: Para sistemas de alto riesgo, es mas seguro empezar con allowlist: solo se permiten acciones definidas de forma explicita.
Q: Que hacer si una regla es demasiado estricta y bloquea una accion util?
A: Agregar excepciones controladas: scope, condiciones por rol o ruta con aprobacion humana en lugar de deny total.
Que Sigue
El enfoque Guarded-Policy protege al agente de acciones inseguras antes de ejecutar.
Pero que hacer cuando el agente necesita ejecucion de codigo segura en un entorno aislado?