プロンプトインジェクションを回避するエージェント支出管理を設定します。
ダッシュボードで支出権限を設定します - 期間ごとの許可と取引ごとの上限 - そしてバックエンドはすべての支払いに対してそれを強制します。バックエンドに存在し、APIが読み取り専用であるため、エージェントのプランナーをハイジャックするプロンプトインジェクションでも制限を引き上げることはできません。あなたのコードは、表示するためにAPI経由で権限を読み取ります。
始める前に。
- 既存のエージェント(add-payments-to-agent guideを参照)。
- エージェントを所有するワークスペースへのダッシュボードアクセス - 権限はそこに設定され、API経由ではありません。
- 予想される1日の支出の大まかなアイデア - 許可は通常の使用量の2-3倍であるべきであり、100倍ではなく、実際に荷重を支えています。
- 許可を読み取るためのAPIキー(このガイドには
sk_test_キーが適しています)。 - エージェントの支出ポリシーの概念に対する理解 - このガイドはその運用の対応物です。
ダッシュボードで権限を設定します。
Blockchain0xダッシュボードでエージェントを開き、2つの数字を設定します:期間(1日、1週間、または30日)にわたる手当と取引ごとの上限。手当は全期間にわたる最悪のケースを制限します。取引ごとの上限は、単一の異常なリクエストが一度にすべてを消費するのを防ぎます。これは意図的なダッシュボードアクションです - それはエージェントが内部で実行する人間が設定した境界です。
Amounts are USDC base units (6 decimals). An allowance_wei of "20000000" is 20 USDC; a per_tx_wei of "2000000" is 2 USDC. The period is a period_seconds value: 86400 for a day, 604800 for a week, 2592000 for 30 days.
API経由で権限を読み取る。
あなたのコードは、UIに表示するためにライブの許可を取得したり、エージェントが支払いを試みる前にどれだけの余地が残っているかを確認させたりできます。ルートは読み取り専用です - 変更エンドポイントはありません。これが、エージェントのキーが自分の制限を広げることができない理由です。
curl https://api.blockchain0x.com/v1/agents/agt_123/spend-permissions \
-H "Authorization: Bearer $BLOCKCHAIN0X_API_KEY"{
"allowance_wei": "20000000",
"per_tx_wei": "2000000",
"period_seconds": 86400,
"start_at": "2026-05-15T00:00:00Z",
"end_at": null,
"revoked_at": null
}期間を設定するか、取り消してください。
2つのフィールドが権限を時間制限のある制御に変えます。start_atとend_atは、それが有効なウィンドウを設定しますので、スケジュールされたジョブのために予算を事前に設定するか、自動的に期限切れにさせることができます。ウィンドウの外では何も認可されません。revoked_atはキルスイッチです:ダッシュボードから取り消すと、その後評価された支払いのために許可がゼロに下がります。
より厳しい停止のために、apiKeys.revoke または apiKeys.rotate を使用してエージェントのAPIキーを取り消すか回転させます - それにより、支出だけでなく資格情報全体が切断されます。権限の取り消しは外科的な手段です; キーの取り消しはキルスイッチです。
制限に達する支払いを処理します。
支払いがアクティブな許可を超える場合、バックエンドはチェーンに触れる前にそれを拒否します - 資金は移動しません。あなたのpayments.create呼び出しはエラーを返します。それを他の失敗した呼び出しと同様に処理し、オペレーターに提示し、同じ壁に盲目的に再試行しないでください。
エージェントが試みたことを見るには、ダッシュボードのアクティビティログを監視し、実際の動きをtransactions.getで調整します。拒否された試みの急増は、あなたの早期警告信号です:誤設定された許可、無限ループ、または注入プローブのいずれかです。それに対しては、失敗した呼び出しの急増と同じように警告を出します。
制御を打破する5つの間違い。
エージェントコードに支出上限を設定するのではなく、バックエンドに設定する
エージェントのプランナーやシステムプロンプトでの支出ルールはセキュリティ境界ではありません。プランナーをオーバーライドするプロンプトインジェクション攻撃は、上限もオーバーライドします。支出権限の全体のポイントは、それがエージェントの操作可能な範囲の外に存在することです - バックエンドにあり、ダッシュボードで設定されているため、エージェントはそれを変更できません。そこに設定してください、「エージェントに$X以上支出しないように伝える」ではなく。
エージェントのAPIキーが制限を広げることを期待しています
APIは支出権限に対して読み取り専用です:許可を引き上げるエンドポイントやSDKメソッドはありません。それは故意です。もし侵害されたまたは注入されたエージェントが、すでに保持しているキーでミューテートエンドポイントを呼び出すことができれば、その制御は無価値になります。制限を変更するには、ダッシュボードを使用します。そこでの変更は、監査証跡を持つ人間の行動です。
許可を非常に高く設定して、決して問題を引き起こさないようにする
許可は荷重を支える場合にのみあなたを保護します。通常の使用量の100倍に設定された許可は、すでにあなたが望んでいた以上に支出するまで、暴走ループを止めることはありません。許可と取引ごとの上限を予想される使用量の約2-3倍に設定し、実際のトラフィックが必要であることを証明した場合は意図的に広げてください。
トランザクションごとの上限を忘れる
allowance_weiは全期間にわたる最悪のケースを制限し、per_tx_weiは単一の支払いを制限します。これらは異なる役割を果たします。取引ごとの上限がない寛大な期間の手当でも、異常なリクエスト(バグのある再試行や悪意のある価格引用)が一度に大きな金額を移動させることを許可します。両方を設定してください。
迅速なキルスイッチはリハーサルされていません
午前2時に何かが間違っているように見えるとき、あなたはすでに練習した動きを望みます。2つの方法があります:ダッシュボードで許可を取り消す(revoked_atを設定し、許可をゼロにします)か、apiKeys.revoke / apiKeys.rotateでエージェントのAPIキーを取り消す/回転させる(資格情報を完全に切断します)。どちらを選ぶかを知り、迅速に実行できることを確認してください。
許可が設定された後。
許可が強制されると、最も効果的なフォローアップは信頼できるWebhook処理(支払いイベントが実際にハンドラーに届くようにするため)、身元確認(取引先がエージェントのプロフィールを信頼できるようにするため)、および事前のセキュリティレビュー(他のドアを開けっぱなしにしていないことを確認するため)です。
docs.blockchain0x.comに完全なリファレンスがあります。製品サーフェス: 支出管理。