エージェントキーにはリスク予算が必要です
Shuriken の shuriken-skills リポジトリは、Claude Code、Codex CLI、GitHub Copilot CLI、Gemini CLI、Cursor、OpenCode、AGENTS.md 互換エージェント向けの指示をまとめたものです。1 また、このリポジトリは、それらのエージェントを、ユーザーが権限を付与した場合にエージェントキーで市場データの読み取り、ウォレットの確認、見積もり依頼、取引の実行ができるプラットフォームへ案内します。2
重要なのは取引そのものではありません。重要なのは、その構造です。いまのエージェントには、現実の外部影響を生むツールにアクセスするための認証情報が必要になっています。エージェントキーは、通常の API キーのように振る舞うべきではありません。リスク予算として振る舞うべきです。
エージェントキーとは、境界を持つ権限オブジェクトです。エージェントに何ができるのか、何ができないのか、どれだけのリスクを生み得るのか、運用者がその行動をどう確認できるのか、そして必要なときにどれだけ素早く一時停止、ローテーション、失効できるのかを示すべきです。プロンプトの指示は助けになりますが、境界を担うのはサーバー側の制限です。
要約
MCP とポータブルなスキルにより、エージェントは外部システムへ接続しやすくなっています。34 その移植性は、認証情報の重要性も高めます。Shuriken のドキュメントは、危険を伴うツールに対して正しい制御の形を示しています。つまり、エージェントキーを作成し、必要な権限だけを付与し、制限をサーバー側で強制し、活動を記録し、その連携が不要になったらキーを失効させる、という形です。256 最近の最小権限に関する研究も、同じ方向を指しています。スキルは、特定のタスクに必要な最小範囲を超える行動を実行できるため、権限はパッケージ単位ではなく、タスクを意識したものにする必要があります。9
この教訓は金融以外にも当てはまります。送金する、コンテンツを公開する、インフラを変更する、顧客にメッセージを送る、個人情報に触れる。そうしたエージェントツールには、リスク予算を持つ範囲限定キーが必要です。その予算は、モデルより下、スキルファイルより下に置かれるべきです。エージェントが自信満々に要求しても、権限のない行動はサーバーが拒否しなければなりません。
重要なポイント
- エージェントツールの作り手へ: 認証情報は万能のベアラートークンではなく、機能ごとの予算として設計しましょう。
- セキュリティチームへ: 読み取り範囲と書き込み・実行範囲を分離し、実行側には支出、レート、対象オブジェクトの制限を置きましょう。
- プロダクトチームへ: 活動ログと失効操作は、奥まった設定ページではなく、主要 UI に表示しましょう。
- MCP の作り手へ: ツール配布と認証情報の権限は別の層として扱いましょう。スキルは教えるものです。キーは制限するものです。
- 運用者へ: まず読み取り専用で始め、連携経路を確認し、対応計画がある場合にだけ書き込み権限を追加しましょう。
スキルは指示を配り、キーは権限を配る
shuriken-skills リポジトリは、新しい配布パターンを示しています。1つのソースツリーに、スキルの Markdown、Claude と Codex 用のプラグインマニフェスト、Cursor プラグインマニフェスト、Gemini 拡張ファイル、OpenCode プラグイン、Rust クレート、AGENTS.md のフォールバック経路が含まれています。17
このパッケージ化が重要なのは、エージェントへの指示が複数のクライアントをまたいで移動するようになったからです。ベンダーは、同じ API と連携する方法を Codex、Claude Code、Cursor、Gemini、その他のツールに教えられます。MCP のドキュメントでは、エージェントスキルを、デプロイモデル、認証フロー、ツール設計パターンなどの設計判断を含むドメイン知識をコーディングアシスタントに与える、ポータブルな指示セットとして説明しています。4 配布側については、エージェントスキルにはパッケージマネージャーが必要ですで書きました。セキュリティ側の問題は、それらのパッケージが実際の権限を求めた瞬間に始まります。
ポータブルな指示は、1つの問題を解き、別の問題を生みます。エージェントが正しい連携経路を学ぶ助けにはなります。しかし、その結果として行われる行動を安全にはしません。スキルは、最小権限を使うようモデルに伝えられます。プロンプトは「注意せよ」と言えます。README は推奨スコープを説明できます。けれども、モデルが認証済みリクエストを送ると決めた後では、それらの制御はリクエストを止められません。
この緊張関係は、MCP サーバーは新しい攻撃対象領域ですで扱った、より広い MCP の問題と一致します。ツールアクセスは、従来の承認習慣が追いつくより速く、行動可能な領域を広げます。エージェントスキルは指示の経路をポータブルにします。キーの仕組みは、権限の経路を狭く保たなければなりません。
だからこそ、認証情報には独自の設計が必要です。スキルファイルは指示の層にあります。エージェントキーは権限の層にあります。この2つを混ぜると、壊れやすいシステムになります。エージェントに何をすべきか教える同じテキストが、エージェントがやりすぎるのを止めようとするからです。
境界はサーバーに置くべきです。
Shuriken のパターンはリスク予算です
Shuriken の Agent Kit ドキュメントは、エージェントキーを、AI ツールができることを制御するオブジェクトとして説明しています。トークン価格の読み取りから取引実行までを対象にし、エージェントが行動を始める前に、サーバー側で制限を強制します。5 権限ページでは6つの権限カテゴリを挙げ、付与された範囲外の呼び出しは認可エラーで失敗するとしています。6
この捉え方は、公開エージェントデモでよくある誤りも避けています。つまり、公開されたコード、見える指示、読めるプラグインマニフェストを境界として扱う誤りです。公開性はレビューを助けますが、オープンソースはセキュリティ境界ではありません。境界は、権限のない行動が失敗する場所にあります。
このパターンには5つの要素があります。
| 制御 | なぜ重要か |
|---|---|
| 範囲限定の権限 | 読み取り専用キーは確認だけできます。取引用キーは行動できます。この違いが影響範囲を変えます。 |
| 対象オブジェクトの制限 | ウォレットアクセスは、接続されたすべての資産ではなく、狭い範囲に留められます。 |
| 支出制限 | 買い、売り、日次、時間単位、スリッページ、ガス、同時取引数の上限により、権限を測定可能な予算に変えます。 |
| 活動ログ | 運用者は最終回答を信じる代わりに、ツール呼び出し、見積もり、時刻、ステータスを確認できます。 |
| 失効 | ユーザーのメインセッションや他の連携を終了せずに、キーだけを無効化できます。 |
これは、高リスクなエージェントツールに適した形です。この設計は、モデルが賢くなることに依存しません。モデルが間違うかもしれない、過信するかもしれない、入力により侵害されるかもしれない、単に悪い指示を受けるかもしれない、という前提に立ちます。それでもサーバーはキーの制限を強制します。
私なら、ドメインではなく制御パターンをコピーします。デプロイキー、公開キー、顧客メッセージ用キー、Stripe 返金キー、取引用キーのいずれにも、同じ問いが必要です。このキーは、人間が気づくまでに最大でどれだけの損害を生み得るのか。
サーバー側の制限はプロンプトの約束に勝る
OpenAI の Agents SDK ドキュメントは、ガードレールを、入力ガードレールや出力ガードレールのトリップワイヤーを含む、エージェントの周囲で実行できるチェックとして位置づけています。8 ガードレールは、モデル実行の前後でリスクを捕まえられるため役に立ちます。それでも、認証情報の権限とは別の層にあります。
出力ガードレールは、危険な提案行動に警告を出せます。サーバー側のキー制限は、ガードレールが見逃しても、その行動を拒否できます。行動がテキストを超えると、この違いは重要になります。
投稿を公開する、メールを送る、DNS レコードを変更する、pull request をマージする、取引を実行する。そうしたツールを考えてみてください。プロンプトルールは「先に確認せよ」と言えます。ガードレールは高リスクなテキストを探せます。サーバー側のキーは、実際の制限を強制できます。
| リスクのある行動 | プロンプトレベルのルール | キーレベルの境界 |
|---|---|---|
| メール送信 | 「承認なしに送信しない」 | キーは下書きのみ可能で、送信はできない |
| コンテンツ公開 | 「先に引用を確認する」 | キーはステージングには書けるが本番には書けない |
| インフラ変更 | 「破壊的操作を避ける」 | キーは設定を読めるがリソースは変更できない |
| 取引実行 | 「保守的に行動する」 | キーが支出、レート、スリッページ、ウォレットアクセスを制限する |
| 顧客へのメッセージ | 「承認済みコピーを使う」 | 昇格まではテスト対象にしか届かない |
プロンプトルールは、静かに失敗することがあります。キーレベルの境界は、観測可能な拒否を作ります。その拒否は証拠になります。エージェントは範囲を超えようとした。サーバーは拒否した。運用者は失敗したリクエストを確認し、連携に新しいキーが必要なのか、より狭い手順が必要なのか、人間の承認ステップが必要なのかを判断できます。
これは、証拠ゲートの考え方と同じです。信頼は自信ではなく、観測可能な証拠から生まれるべきです。「制限内に留まりました」という最終回答より、どの制限が作動したかを示すサーバーログのほうが重要です。
また、最終回答はレビュー用の資料に近づきます。レビュー資料こそ新しい最終回答ですでは、本格的なエージェント作業には証拠となる成果物が必要だと論じました。認証情報の拒否、活動ログ、範囲限定キーの変更は、そのセキュリティ版です。
エージェント認証情報に最低限必要な形
外部世界に影響を与えられるエージェント認証情報には、6つの性質が必要です。
| 性質 | 最低要件 |
|---|---|
| 目的 | どこでも使い回す1つのキーではなく、連携またはジョブごとに1つのキー |
| 範囲 | 読み取り、書き込み、実行、通知、管理者権限を明示的に付与 |
| 予算 | ドメインで可能な範囲で、支出、レート、量、対象オブジェクト、対象者、時間の制限 |
| 可視性 | リクエスト種別、対象オブジェクト、時刻、ステータス、失敗理由を含む活動ログ |
| ライフサイクル | 無関係な連携を壊さずに、ローテーション、一時停止、失効ができること |
| 昇格経路 | 読み取り専用から始め、ローカルテスト、ステージングでの証拠、運用者レビューの後にだけ範囲を広げること |
Shuriken のスキルも、連携の言葉で同じ中核を述べています。連携ごとに1つのキーを作り、最小範囲だけを付与し、キーを秘密に保ち、侵害が疑われたらローテーションし、不要になった連携は失効させる、ということです。7 スコープ設定スキルも、読み取り範囲と取引範囲を分け、「念のため」に広いキーを作ることへ警告しています。7
研究側の語彙も、このプロダクトパターンに追いつきつつあります。SkillScope 論文は、過剰権限をタスク依存のものとして説明しています。同じスキルの行動でも、あるユーザー要求には妥当で、別の要求には過剰になり得るということです。9 著者らは、検証済みの過剰権限動作を持つ 7,039 個のスキルを報告し、自分たちのフレームワークにより権限を制限した結果、発火した過剰権限行動インスタンスが 88.56% 減少したとしています。9 その正確な仕組みをコピーする必要はありません。受け取るべきプロダクト上の教訓は、エージェント認証情報は、そのツールが想像できる最大の仕事ではなく、現在の仕事を反映すべきだということです。
この考え方は、通常のエージェントプロダクト設計になるべきです。バックエンドサービスが狭いコードパスを所有していた時代には、広い API キーにも意味がありました。エージェントは、狭い1本のコードパスのようには振る舞いません。計画し、再試行し、ツールを組み合わせ、失敗を要約し、補助スクリプトを呼び出し、外部入力に反応します。認証情報は、通常のサービストークンよりも大きな行動のばらつきを前提にすべきです。
そのばらつきがあるからこそ、エージェントのコード検索にはトークン予算の問題がありますは、認証情報の記事でも重要になります。エージェントは、不完全な文脈で判断することがよくあります。狭いキーは、コンテキストウィンドウが危険な細部を見落としたとき、システムに二度目の防御機会を与えます。
コピーしてはいけないもの
マーケティング上の楽観はコピーしないでください。
Shuriken の公開ドキュメントは、ユーザーが離席している間にエージェントが行動し、機会を捉えることについて強い表現を使っています。2 その言い方は、彼らのプロダクトには合うのかもしれません。しかし、外部影響を生むエージェントツールの標準的な安全姿勢にするべきではありません。
高リスクな行動において、「離席中」は、より狭い運用上の意味を持つ必要があります。
- ユーザーが離席中でも、エージェントは情報を集められる。
- ユーザーが離席中でも、エージェントは行動の下書きを準備できる。
- エージェントが実行できるのは、小さく明示的で、サーバー側で強制される予算の内側だけである。
- 運用者は、後からすべての行動を確認できる。
- 運用者は、キーをただちに一時停止または失効できる。
これが、自律性と責任放棄の違いです。ユーザーは行動を委任できます。しかし、システムは説明責任を委任できません。
同じ注意は、スキルやプラグインマニフェストにも当てはまります。リポジトリがすべてのエージェントクライアントをサポートしていても、保守的な初期設定に値します。私が確認した .codex-plugin/plugin.json は、インターフェースメタデータに読み取り機能を記載していました。一方でドキュメントは、取引には明示的に有効化された権限と制限が必要だと説明しています。7 これは正しい方向です。配布は広くても、権限は狭く始められます。
判断ルール
新しいエージェント連携が認証情報を求めたら、発行する前にキーを分類してください。
| 連携タイプ | 開始時のキー | 昇格要件 |
|---|---|---|
| 検索、読み取り、要約 | 読み取り専用 | 個人データの範囲が広がらない限り不要 |
| コンテンツまたはコードの下書き | ステージングへの書き込みのみ | 人間レビューと公開基準 |
| 通知またはメッセージ | テスト対象のみ | 配信ログとオプトアウト経路 |
| 本番設定の変更 | まず読み取り専用 | 変更計画、承認、ロールバック、監査ログ |
| 金銭または資産の移動 | まず実行権限なし | サーバー側で強制される小さな予算、活動レビュー、失効訓練 |
| 他のキーの管理 | 原則として避ける | 人間承認付きの別管理フロー |
この表は、境界をモデル自身が持っているかのように装うことなく、エージェントに使える経路を与えます。手順は改善され続けてよいものです。キーは、その改善が無制限の権限に変わることを防ぎます。エージェント実行トレースはランタイム契約ですも、監査の側面から同じことを述べています。何が起きたかをシステムが示せないなら、エージェントが意図された契約の内側で行動したとは証明できません。
同じ分離については、エージェントのサンドボックスセキュリティは提案にすぎませんでも書きました。モデルは、付与された権限の完全な内側で動いていても、安全でない結果を生み得ます。権限と安全性は同じものではないため、エージェントキーにはリスク予算が必要です。
FAQ
エージェントキーは、名前を変えただけの API キーですか?
いいえ。通常の API キーは、サービスへの広いアクセスを許可することがよくあります。エージェントキーは、1つの連携に対して境界のある機能セットを付与するべきです。サーバー側の制限、活動ログ、そしてユーザーのメインセッションに影響しない失効も必要です。
なぜサーバー側の強制が重要なのですか?
サーバーは最終リクエストを見ます。モデルの指示、スキルファイル、ガードレールは、危険な行動を見逃すことがあります。サーバー側の権限チェックなら、キーに必要な範囲がない場合や、設定済みの制限を超える場合にリクエストを拒否できます。6
すべてのエージェントは読み取り専用から始めるべきですか?
はい。ツールが意味のある外部影響を持つなら、読み取り専用アクセスから始めるべきです。連携経路を確認し、どのログ、制限、承認、ロールバック手順があるのかをチームが把握してから、書き込みまたは実行権限を追加してください。
MCP はエージェント認証情報をより危険にしますか?
MCP により、外部ツールを複数のクライアントから接続しやすくなります。3 その便利さは、認証情報設計の重要性を高めます。ポータブルなツールアクセスには、より広い信頼ではなく、狭いキーを組み合わせるべきです。
Shuriken から何をコピーすべきですか?
指示の配布とサーバー側の権限を分ける設計をコピーしてください。ポータブルなスキルは連携方法を教えられます。一方で、範囲限定キー、制限、ログ、失効が行動を制約します。プロダクト、法務、運用上の制御が正当化しない限り、ドメイン固有の取引動作をコピーしてはいけません。
参照
-
ShurikenTrade、
shuriken-skillsGitHub リポジトリ、および 2026年5月18日に行った現セッションでのクローン確認。リポジトリには.claude-plugin/plugin.json、.codex-plugin/plugin.json、.cursor-plugin/plugin.json、gemini-extension.json、.opencode/plugins/shuriken-skills.js、skills/*/SKILL.md、GEMINI.md、バージョン0.2.0のパッケージメタデータが含まれていました。 ↩↩ -
Shuriken、“AI Agent Kit,” Shuriken ドキュメント。現セッションでの検証では status 200 が確認され、Agent Kit、MCP、サーバー側の強制、秘密鍵に関する主張、実行制限の目印が見つかりました。 ↩↩↩
-
Model Context Protocol、“What is the Model Context Protocol?” MCP ドキュメント。MCP を、AI アプリケーションをデータソース、ツール、ワークフロー、ユーザーの代理で行動できるシステムに接続するオープンスタンダードとして説明する出典です。 ↩↩
-
Model Context Protocol、“Build with Agent Skills,” MCP ドキュメント。エージェントスキルを、設計判断、認証フロー、ツール設計パターン、行動可能領域の把握をエンコードするポータブルな指示セットとして説明する出典です。 ↩↩
-
Shuriken、“Create an Agent Key,” Shuriken ドキュメント。エージェントキー、読み取り専用テンプレートと取引用テンプレート、サーバー側の制限、キーの一度限りのコピー、活動ログ、一時停止・失効操作、取引制限の設定に関する出典です。 ↩↩
-
Shuriken、“Permissions & Safety,” Shuriken ドキュメント。6つの権限カテゴリ、サーバー側の強制、取引制限、推奨設定、セキュリティのベストプラクティスに関する出典です。 ↩↩↩
-
2026年5月18日に
https://github.com/ShurikenTrade/shuriken-skills.gitを浅いクローンで取得して行った、skills/agent-keys/SKILL.md、skills/scoping/SKILL.md、.codex-plugin/plugin.json、.claude-plugin/plugin.json、package.jsonの現セッション確認。連携ごとに1つのキーを作る指針、最小スコープ、ローテーション・失効手順、読み取り範囲と取引範囲のカテゴリ、Codex プラグインメタデータに関する出典です。 ↩↩↩↩ -
OpenAI Agents SDK、“Guardrails,” OpenAI ドキュメント。入力・出力ガードレールの位置づけ、トリップワイヤー、エージェント実行の周囲で動くガードレールに関する出典です。 ↩
-
Jiangrong Wu, Yuhong Nan, Yixi Lin, Huaijin Wang, Yuming Xiao, Shuai Wang, and Zibin Zheng、“SkillScope: Toward Fine-Grained Least-Privilege Enforcement for Agent Skills,” arXiv、2026年5月7日投稿。エージェントスキルにおけるタスク依存の過剰権限、検証済みの過剰権限スキル 7,039 個、評価における発火済み過剰権限行動インスタンスの 88.56% 削減に関する出典です。 ↩↩↩