Passer au contenu principal

Presentation

Le moteur de politiques evalue chaque transaction avant qu’elle n’atteigne la couche de signature MPC. Les politiques sont definies par agent et peuvent etre mises a jour a tout moment via le SDK ou l’API REST. La premiere violation de politique arrete immediatement la transaction.

Types de politiques

Limites de depenses

Controlez combien un agent peut depenser :
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
});
RegleDescriptionFenetre
maxTransactionAmountMontant maximum pour un seul paiementPar transaction
dailyLimitTotal maximum sur 24 heures glissantesFenetre glissante
monthlyLimitTotal maximum sur 30 jours glissantsFenetre glissante

Controles d’adresses

Restreignez les adresses auxquelles un agent peut envoyer :
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 defini, seules ces adresses sont autorisees. Si allowedAddresses et blockedAddresses sont definis simultanement, allowedAddresses a la priorite.

Controles de jetons

Restreignez les jetons avec lesquels un agent peut effectuer des transactions :
await aw.policies.update("agent_abc123", {
  allowedTokens: ["USDC", "USDT"],  // Only stablecoins
});

Controles de velocite

Limitez la frequence des transactions pour empecher les agents incontroles :
await aw.policies.update("agent_abc123", {
  velocityLimit: {
    maxCount: 100,        // Max number of transactions
    windowSeconds: 3600,  // Per hour
  },
});

Controles temporels

Restreignez les moments ou les transactions peuvent avoir lieu :
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
  },
});

Approbation humaine

Acheminez les transactions de haute valeur vers une revision humaine :
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",
  ],
});
L’approbation humaine est disponible sur les plans Growth et Enterprise. Lorsqu’une transaction necessite une approbation, un evenement webhook est envoye et la transaction entre dans l’etat pending_approval.

Ordre d’evaluation des politiques

Les politiques sont verifiees dans cet ordre. Le premier echec arrete la transaction :
1

Statut de l'agent

L’agent est-il actif (non gele) ?
2

Verification du jeton

Ce jeton est-il dans la liste allowedTokens ?
3

Verification de l'adresse

Le destinataire est-il dans allowedAddresses et pas dans blockedAddresses ?
4

Verification du montant

Cela depasse-t-il maxTransactionAmount ?
5

Limite quotidienne

Cela depasserait-il le total quotidien glissant ?
6

Limite mensuelle

Cela depasserait-il le total mensuel glissant ?
7

Verification de velocite

L’agent a-t-il depasse son taux de transactions (velocityLimit) ?
8

Verification de planification

Est-ce dans les heures et jours autorises ?
9

Approbation humaine

Cela necessite-t-il une revision humaine basee sur le seuil ?
10

Filet de securite d'infrastructure

Limites strictes appliquees par Paratro (ne peuvent pas etre outrepassees).

Evenements de violation de politique

Lorsqu’une politique bloque une transaction, l’API renvoie une erreur detaillee :
{
  "code": "policy_violation",
  "type": "invalid_request_error",
  "message": "Transaction would exceed daily limit"
}
Vous pouvez egalement recevoir les violations sous forme d’evenements webhook :
await aw.webhooks.create({
  url: "https://your-app.com/webhooks",
  events: ["policy.violated"],
});

Modeles de politiques

Utilisez des modeles pour les configurations courantes :
// 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");

Bonnes pratiques

Commencez de maniere restrictive, elargissez progressivement. Demarrez avec des limites strictes et augmentez-les a mesure que vous gagnez confiance dans le comportement de votre agent.
  • Utilisez allowedAddresses — Mettez en liste blanche les adresses de confiance plutot que de vous fier uniquement aux limites de montant.
  • Activez l’approbation humaine pour les montants eleves — Definissez un seuil au-dessus duquel les humains revisent les transactions.
  • Surveillez les violations de politiques — Suivez les violations via les webhooks pour identifier les agents mal configures.
  • Utilisez les limites de velocite — Empchez les boucles incontroles ou un agent tente des transactions de maniere repetee.
  • Revisez les politiques chaque semaine — A mesure que les comportements des agents evoluent, mettez a jour les politiques en consequence.