策略配置
为你的 Agent 精细化配置支出控制和安全规则
概述
策略引擎在每笔交易到达 MPC 签名层之前进行评估。策略按 Agent 独立配置,可随时通过 SDK 或 REST API 更新。
策略类型
支出限额
控制 Agent 的支出额度:
await aw.policies.update("agent_abc123", {
maxTransactionAmount: "500", // 单笔交易最大金额
dailyLimit: "5000", // 滚动 24 小时总额
monthlyLimit: "50000", // 滚动 30 天总额
});| 规则 | 说明 | 重置方式 |
|---|---|---|
maxTransactionAmount | 单笔支付最大金额 | 每笔交易 |
dailyLimit | 滚动 24 小时最大总额 | 滚动窗口 |
monthlyLimit | 滚动 30 天最大总额 | 滚动窗口 |
地址控制
限制 Agent 可以发送到的地址:
await aw.policies.update("agent_abc123", {
// 白名单模式:仅允许发送到这些地址
allowedAddresses: [
"0xTrustedVendor1",
"0xTrustedVendor2",
"0xTrustedExchange",
],
// 黑名单模式:阻止特定地址
blockedAddresses: [
"0xKnownScam",
],
});如果设置了
allowedAddresses,则仅允许这些地址。如果同时设置,allowedAddresses优先。
代币控制
限制 Agent 可以交易的代币:
await aw.policies.update("agent_abc123", {
allowedTokens: ["USDC", "USDT"], // 仅限稳定币
});速率控制
限制交易频率以防止 Agent 失控:
await aw.policies.update("agent_abc123", {
velocityLimit: {
maxCount: 100, // 最大交易次数
windowSeconds: 3600, // 每小时
},
});时间控制
限制交易发生的时间:
await aw.policies.update("agent_abc123", {
schedule: {
timezone: "Asia/Shanghai",
allowedHours: { start: 9, end: 17 }, // 上午 9 点 - 下午 5 点
allowedDays: [1, 2, 3, 4, 5], // 周一至周五
},
});人工审批
将大额交易路由至人工审查:
await aw.policies.update("agent_abc123", {
requireHumanApproval: true,
humanApprovalThreshold: "1000", // 超过 $1000 的交易
approvalTimeout: 3600, // 1 小时内审批,否则自动拒绝
approvers: [
"user_admin1@company.com",
"user_admin2@company.com",
],
});策略评估顺序
策略按以下顺序检查。首个失败即终止交易:
- Agent 状态 — Agent 是否处于活跃状态(未冻结)?
- 代币检查 — 该代币是否被允许?
- 地址检查 — 该收款方是否被允许?
- 金额检查 — 是否超出单笔交易限额?
- 每日限额 — 是否会超出滚动每日总额?
- 每月限额 — 是否会超出滚动每月总额?
- 速率检查 — Agent 是否超出交易频率?
- 时间检查 — 是否在允许的时间段内?
- 人工审批 — 是否需要人工审查?
- 基础设施安全网 — Paratro 强制执行的硬限制
策略违规事件
当策略拦截交易时,你会收到详细错误:
{
"code": "policy_violation",
"type": "invalid_request_error",
"message": "交易将超出每日限额"
}你也可以通过 Webhook 事件接收这些通知:
await aw.webhooks.create({
url: "https://your-app.com/webhooks",
events: ["policy.violated"],
});策略模板
使用模板进行常见配置:
// 保守型:用于测试的严格限制
await aw.policies.applyTemplate("agent_abc123", "conservative");
// 标准型:用于生产的均衡限制
await aw.policies.applyTemplate("agent_abc123", "standard");
// 自定义:定义并复用你自己的模板
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");最佳实践
- 从严格开始,逐步放宽 — 从紧限制开始,随着信心增长逐步提高
- 使用地址白名单 — 白名单可信地址,而非仅依赖金额限制
- 启用大额人工审批 — 设置人工审查的金额阈值
- 监控策略违规 — 通过 Webhook 跟踪违规,识别配置不当的 Agent
- 使用速率限制 — 防止 Agent 循环中反复尝试交易的失控场景
- 每周审查策略 — 随着 Agent 行为演变,及时更新策略