策略引擎會在每筆交易到達 MPC 簽名層之前進行評估。策略是針對每個代理設定的,可隨時透過 SDK 或 REST API 更新。第一個策略違規即會立即停止交易。
策略類型
支出限額
控制代理可以花費的金額:
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
});
| 規則 | 說明 | 視窗 |
|---|
maxTransactionAmount | 單筆付款的最大金額 | 每筆交易 |
dailyLimit | 滾動 24 小時的最大總額 | 滾動視窗 |
monthlyLimit | 滾動 30 天的最大總額 | 滾動視窗 |
地址控制
限制代理可以發送到哪些地址:
await aw.policies.update("agent_abc123", {
// Whitelist mode: only send to these addresses
allowedAddresses: [
"0xTrustedVendor1",
"0xTrustedVendor2",
"0xTrustedExchange",
],
// Blacklist mode: block specific addresses
blockedAddresses: [
"0xKnownScam",
],
});
如果設定了 allowedAddresses,則僅允許這些地址。如果同時設定了 allowedAddresses 和 blockedAddresses,allowedAddresses 優先。
代幣控制
限制代理可以交易的代幣:
await aw.policies.update("agent_abc123", {
allowedTokens: ["USDC", "USDT"], // Only stablecoins
});
速率控制
限制交易頻率以防止失控的代理:
await aw.policies.update("agent_abc123", {
velocityLimit: {
maxCount: 100, // Max number of transactions
windowSeconds: 3600, // Per hour
},
});
基於時間的控制
限制交易可以發生的時間:
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
},
});
人工審核
將高價值交易路由至人工審查:
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",
],
});
人工審核功能在 Growth 和 Enterprise 方案中提供。當交易需要審核時,會發送 webhook 事件,交易進入 pending_approval 狀態。
策略評估順序
策略按以下順序檢查。第一個失敗即停止交易:
代幣檢查
該代幣是否在 allowedTokens 清單中?
地址檢查
收款方是否在 allowedAddresses 中且不在 blockedAddresses 中?
金額檢查
是否超過 maxTransactionAmount?
速率檢查
代理是否超過交易頻率限制(velocityLimit)?
基礎設施安全防線
Paratro 強制執行的硬性限制(無法覆寫)。
策略違規事件
當策略阻止交易時,API 會回傳詳細錯誤:
{
"code": "policy_violation",
"type": "invalid_request_error",
"message": "Transaction would exceed daily limit"
}
您也可以透過 webhook 事件接收違規通知:
await aw.webhooks.create({
url: "https://your-app.com/webhooks",
events: ["policy.violated"],
});
策略範本
使用範本進行常見配置:
// 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");
最佳實踐
從最嚴格的限制開始,隨著您對代理行為的信心增加而逐步放寬。
- 使用 allowedAddresses — 白名單信任的地址,而非僅依賴金額限制。
- 為高價值交易啟用人工審核 — 設定一個門檻,超過該門檻的交易由人工審查。
- 監控策略違規 — 透過 webhook 追蹤違規以識別配置有誤的代理。
- 使用速率限制 — 防止代理重複嘗試交易的失控迴圈。
- 每週檢視策略 — 隨著代理行為的演變,更新策略以符合需求。