跳轉到主要內容

概覽

策略引擎會在每筆交易到達 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,則僅允許這些地址。如果同時設定了 allowedAddressesblockedAddressesallowedAddresses 優先。

代幣控制

限制代理可以交易的代幣:
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 狀態。

策略評估順序

策略按以下順序檢查。第一個失敗即停止交易:
1

代理狀態

代理是否處於啟用狀態(未凍結)?
2

代幣檢查

該代幣是否在 allowedTokens 清單中?
3

地址檢查

收款方是否在 allowedAddresses 中且不在 blockedAddresses 中?
4

金額檢查

是否超過 maxTransactionAmount
5

每日限額

是否會超過滾動每日總額?
6

每月限額

是否會超過滾動每月總額?
7

速率檢查

代理是否超過交易頻率限制(velocityLimit)?
8

排程檢查

是否在允許的時間和日期範圍內?
9

人工審核

是否需要基於門檻的人工審查?
10

基礎設施安全防線

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 追蹤違規以識別配置有誤的代理。
  • 使用速率限制 — 防止代理重複嘗試交易的失控迴圈。
  • 每週檢視策略 — 隨著代理行為的演變,更新策略以符合需求。