Descripción general
El motor de políticas evalúa cada transacción antes de que llegue a la capa de firma MPC. Las políticas son por agente y pueden actualizarse en cualquier momento mediante el SDK o la API REST. La primera violación de política detiene la transacción inmediatamente.
Tipos de políticas
Límites de gasto
Controle cuánto puede gastar un agente:
await aw.policies.update("agent_abc123", {
maxTransactionAmount: "500", // Max per single transaction (USDC)
dailyLimit: "5000", // Rolling 24-hour total
monthlyLimit: "50000", // Rolling 30-day total
});
| Regla | Descripción | Ventana |
|---|
maxTransactionAmount | Monto máximo para un solo pago | Por transacción |
dailyLimit | Máximo total en 24 horas continuas | Ventana deslizante |
monthlyLimit | Máximo total en 30 días continuos | Ventana deslizante |
Controles de direcciones
Restrinja a qué direcciones un agente puede enviar:
await aw.policies.update("agent_abc123", {
// Whitelist mode: only send to these addresses
allowedAddresses: [
"0xTrustedVendor1",
"0xTrustedVendor2",
"0xTrustedExchange",
],
// Blacklist mode: block specific addresses
blockedAddresses: [
"0xKnownScam",
],
});
Si allowedAddresses está configurado, solo se permiten esas direcciones. Si tanto allowedAddresses como blockedAddresses están configurados, allowedAddresses tiene prioridad.
Controles de tokens
Restrinja con qué tokens puede transaccionar un agente:
await aw.policies.update("agent_abc123", {
allowedTokens: ["USDC", "USDT"], // Only stablecoins
});
Controles de velocidad
Limite la frecuencia de transacciones para prevenir agentes descontrolados:
await aw.policies.update("agent_abc123", {
velocityLimit: {
maxCount: 100, // Max number of transactions
windowSeconds: 3600, // Per hour
},
});
Controles basados en tiempo
Restrinja cuándo pueden ocurrir las transacciones:
await aw.policies.update("agent_abc123", {
schedule: {
timezone: "America/New_York",
allowedHours: { start: 9, end: 17 }, // 9 AM - 5 PM
allowedDays: [1, 2, 3, 4, 5], // Monday - Friday
},
});
Aprobación humana
Dirija transacciones de alto valor a revisión humana:
await aw.policies.update("agent_abc123", {
requireHumanApproval: true,
humanApprovalThreshold: "1000", // Transactions above $1000
approvalTimeout: 3600, // 1 hour to approve before auto-reject
approvers: [
"user_admin1@company.com",
"user_admin2@company.com",
],
});
La aprobación humana está disponible en los planes Growth y Enterprise. Cuando una transacción requiere aprobación, se envía un evento webhook y la transacción entra en estado pending_approval.
Orden de evaluación de políticas
Las políticas se verifican en este orden. La primera falla detiene la transacción:
Estado del agente
¿Está el agente activo (no congelado)?
Verificación de token
¿Está este token en la lista allowedTokens?
Verificación de dirección
¿Está el destinatario en allowedAddresses y no en blockedAddresses?
Verificación de monto
¿Excede esto el maxTransactionAmount?
Límite diario
¿Excedería esto el total diario acumulado?
Límite mensual
¿Excedería esto el total mensual acumulado?
Verificación de velocidad
¿Ha excedido el agente su tasa de transacciones (velocityLimit)?
Verificación de horario
¿Está esto dentro de las horas y días permitidos?
Aprobación humana
¿Requiere esto revisión humana según el umbral?
Red de seguridad de infraestructura
Límites estrictos aplicados por Paratro (no pueden ser anulados).
Eventos de violación de políticas
Cuando una política bloquea una transacción, la API devuelve un error detallado:
{
"code": "policy_violation",
"type": "invalid_request_error",
"message": "Transaction would exceed daily limit"
}
También puede recibir violaciones como eventos webhook:
await aw.webhooks.create({
url: "https://your-app.com/webhooks",
events: ["policy.violated"],
});
Plantillas de políticas
Use plantillas para configuraciones comunes:
// Conservative: tight limits for testing
await aw.policies.applyTemplate("agent_abc123", "conservative");
// Standard: balanced limits for production
await aw.policies.applyTemplate("agent_abc123", "standard");
// Custom: define and reuse your own templates
await aw.policies.createTemplate("my-template", {
maxTransactionAmount: "200",
dailyLimit: "2000",
allowedTokens: ["USDC"],
velocityLimit: { maxCount: 50, windowSeconds: 3600 },
});
await aw.policies.applyTemplate("agent_abc123", "my-template");
Mejores prácticas
Comience con restricciones estrictas y amplíe gradualmente. Empiece con límites ajustados y auméntelos a medida que gane confianza en el comportamiento de su agente.
- Use allowedAddresses — Incluya en lista blanca las direcciones de confianza en lugar de depender únicamente de los límites de monto.
- Habilite la aprobación humana para alto valor — Establezca un umbral por encima del cual los humanos revisen las transacciones.
- Monitoree las violaciones de políticas — Rastree las violaciones mediante webhooks para identificar agentes mal configurados.
- Use límites de velocidad — Evite bucles descontrolados donde un agente intente transacciones repetidamente.
- Revise las políticas semanalmente — A medida que los comportamientos de los agentes evolucionen, actualice las políticas para adaptarse.