エージェントスキルにはパッケージマネージャーが必要です
エージェントスキルは、ロックファイルが普及する前のJavaScriptと同じ失敗の形を持つようになりました。便利なファイルを各自がローカル設定にコピーし、そのコピーがそれぞれずれていくのです。
同じ週に、その兆候は複数の方向から見えてきました。Microsoft の Agent Package Manager ドキュメントでは、エージェントのコンテキストはチームがマニフェストで宣言し、ロックファイルへ解決し、各 AI クライアントがすでに読みに行くディレクトリへ配布するものとして説明されています。1 Sx は、別の角度から同じ領域を捉えています。AI コーディングアシスタント向けのパッケージマネージャーとして、スキル、ルール、エージェント、コマンド、フック、MCPサーバー、プラグインバンドルをチームやツールをまたいで共有できる、という位置づけです。2
この領域が重要なのは、Codex、Claude、Cursor、Copilot、Gemini、OpenCode などのツールが、もはやプロンプトだけで動いていないからです。プロセス用ファイル、スキル定義、コマンドファイル、MCPサーバー宣言、フックスクリプト、ポリシーファイル、プラグインマニフェストによって動きます。こうしたファイルは、タスク固有の作業で最初のトークンが出る前から、エージェントの振る舞いを形づくっています。
要約
エージェントスキルにパッケージマネージャーが必要なのは、エージェントのコンテキストがソフトウェアのサプライチェーンになったからです。有用なスキルは単なる文章ではありません。スクリプト、MCPサーバー、フック、コマンド、エージェント、インストール範囲を伴うことがあります。チームには、こうした資産に対するマニフェスト、ロックファイル、内容スキャン、取得元ポリシー、レビュー基準、ロールバックが必要です。
いま問うべきなのは、「このスキルをどこに貼り付ければよいか」ではありません。「どのバージョンを入れたのか、どこから来たのか、誰が承認したのか、どのクライアントに配布されたのか、何を実行できるのか、どう戻せるのか」です。
パッケージマネージャーだけで、エージェント作業が安全になるわけではありません。ただし、依存関係の構造を管理できるだけ十分に見える状態にしてくれます。
重要ポイント
エンジニアリングチームへ: - エージェントスキル、MCPサーバー、フック、コマンド、プロンプト、プラグインを依存関係として扱いましょう。 - 新しいパッケージが共有プロジェクトに入る前に、ロックファイルをコミットし、更新をレビューし、インストールと監査のチェックを実行します。
セキュリティレビュー担当者へ: - ビルド時のパッケージ完全性と、実行時の安全性は分けて考えます。問題なくインストールできたことは、フックやMCPサーバーがエージェントに読まれたあとも安全に振る舞うことの証明にはなりません。 - 共有のエージェントコンテキストを信頼する前に、取得元の許可リスト、固定されたコミット、不可視文字のスキャン、シークレット参照ルールを求めましょう。
エージェントツールの開発者へ: - 私的なワークフロー全体ではなく、最小限で一貫した能力をパッケージ化します。 - 最初の公開リリースから、範囲付きインストール、更新レビュー、ロールバックを前提に設計しましょう。
何が変わったのか
OpenAI の Codex Academy ページは、わかりやすい区分を示しています。プラグインは Codex を外部ツールや情報源につなぐもの、スキルはチーム固有のプロセスを Codex に教えるものです。3 Anthropic のプラグインドキュメントは、より広いパッケージ化の枠組みで説明しています。プラグインは、MCPコネクタ、スキル、スラッシュコマンド、サブエージェントを、再利用可能な能力パッケージとして束ねるものです。4
この定義が、運用上の問題を生みます。チームがインストールしているのは、もはや「助言」ではありません。エージェントが見るツール、ユーザーが呼び出すワークフロー、裏側で走るチェック、コンテキストに読み込まれる指示を変えられるファイルです。
Claude Code のプラグイン参照を見ると、その形がはっきりわかります。プラグインには、スキル、コマンド、エージェント、フック、MCPサーバー宣言、モニター、バイナリ、設定、マニフェストを含められます。5 CLI は、ユーザー、プロジェクト、ローカルといったインストール範囲に対応しています。バージョン解決は、プラグインのメタデータ、マーケットプレイスのメタデータ、または git commit SHA から行えます。6
これは依存関係システムのように見えます。実際、依存関係システムなのです。
コピー&ペーストが破綻する理由
1人の開発者が1つのスキルを試すだけなら、コピー&ペーストでも動きます。チームでは破綻します。
最初の失敗は、ずれです。あるリポジトリには昨日のスキルがあります。別のリポジトリにはブランチ版があります。3人目の開発者は、ある一文がモデルの挙動を悪くした気がして、ローカルコピーを編集します。先週のよい結果がどのバージョンから生まれたのか、誰にもわからなくなります。
2つ目の失敗は、範囲です。デザインレビュー用のスキルは、デザインの比重が大きいリポジトリに置くべきです。データベース移行スキルは、バックエンドサービスだけでよいかもしれません。シークレットスキャンのフックは、ほぼすべてに必要でしょう。グローバルインストールはコンテキストを膨らませ、意図しない発火を増やします。一方でプロジェクトごとのコピー&ペーストは、有用な作業を埋もれさせます。
3つ目の失敗は、信頼です。スキルファイルには手順指示を含められます。プラグインにはフックを含められます。MCPサーバーはデータやツールに接続できます。スラッシュコマンドは複数ステップのワークフローを起動できます。パッケージマネージャーは、そのワークフローが信頼に値するかを判断できません。ただし、ファイルがどこから来て、どのバージョンがツリーに入ったのかを、インストールする側に答えさせることはできます。
4つ目の失敗は、ロールバックです。新しいスキルがエージェントの判断を弱めたとき、チームに必要なのは、1つの依存関係変更として戻せる状態です。手作業のコピーでは、ロールバックが発掘作業になります。
パッケージマネージャーが加えるもの
Microsoft APM は、パッケージマネージャーとしての形を明示しています。apm.yml が依存関係を宣言します。apm.lock.yaml は解決済みパッケージを固定し、2人の開発者がバイト単位で同一のコンテキストをインストールできるようにします。APM は、.github/、.claude/、.cursor/、.codex/、AGENTS.md、.gemini/、.opencode/、.windsurf/ など、既存クライアントのディレクトリに書き込みます。新しい実行環境を発明するわけではありません。1
クイックスタートには、実際の成果物一式も示されています。apm.yml、apm.lock.yaml、gitignore される apm_modules/ キャッシュ、クライアント中立のスキル、対象別の出力ファイルです。同じページでは、APM が推移的依存関係を解決し、不可視 Unicode をスキャンし、正確なコミットと内容ハッシュをロックファイルに記録すると説明されています。7
依存関係のワークフローは見慣れた形です。
| 従来のソフトウェア依存関係での問い | エージェントパッケージでの対応 |
|---|---|
| どのライブラリバージョンをインストールしたか? | どのスキル、プラグイン、MCPのバージョンをインストールしたか? |
| ロックファイルは何を固定しているか? | どのコミット、内容ハッシュ、配布済みファイルがエージェント設定に入ったか? |
| どのパッケージがコードを実行できるか? | どのフック、バイナリ、コマンド、MCPサーバーが実行できるか? |
| 本番で許可される依存関係はどれか? | どの取得元、範囲、プリミティブ、通信経路が共有プロジェクトに届いてよいか? |
| どうロールバックするか? | パッケージマニフェストまたはロックファイルを戻し、コンパイル済みコンテキストを再インストールする。 |
Microsoft のドキュメントは、ロックファイル運用も明確に述べています。生成されたロックファイルをコミットすること、手で編集しないこと、チームが実際にどのバージョンを動かしているかを知るために確認することです。8
この規律は、多くの従来の設定ファイル以上に、エージェントでは重要です。エージェントのコンテキストは、確率的な振る舞いを変えます。1行の指示で、モデルが何を拒否するか、どのツールを好むか、証拠を求めて止まるか、リリースを完了扱いにするかが変わります。
Sx も同じ圧力を示している
Sx は別の製品面から出発していますが、行き着く領域は同じです。README では、sx を AI コーディングアシスタント向けのパッケージマネージャーと呼び、スキル、MCP設定、コマンド、関連資産を管理すると説明しています。2 インストール範囲は、組織、リポジトリ、パス、チーム、ユーザー、ボットIDにまたがります。9
この範囲指定が重要です。よいエージェントコンテキストは、どこにでも読み込まれるべきではありません。パッケージマネージャーは、誰がその資産を受け取るのか、どのリポジトリで、どのパス配下で、どのボットまたは人間のIDに対してなのかに答えられるべきです。
Sx は、監査と利用状況も一級の機能として扱っています。README には、導入状況を見る sx stats と、直近のチームまたはインストール変更を確認する sx audit が挙げられています。9 これは次の層を示しています。エージェントパッケージに必要なのは配布だけではなく、利用実績でもあります。誰も呼び出さないスキルは重荷です。誰もが呼び出すのに、毎回修正が必要になるスキルは改訂が必要です。有用な作業を止めるフックには、静かな削除ではなく変更依頼が必要です。
Sx の最も強いアイデアはマーケットプレイスではありません。範囲付き配布と、観測された導入状況です。
パッケージマネージャーでは証明できないこと
パッケージマネージャーは、依存関係の構造を見えるようにできます。すべてのパッケージが価値あるものだと保証することはできません。
Microsoft のセキュリティドキュメントは、その境界を明確にしています。APM が守るのは、プロンプト、指示、スキル、フック、MCPサーバー宣言に対するビルド時のサプライチェーンです。対象は再現性、完全性、出自、デプロイ前の内容安全性です。10 同じページでは、APM は実行時のMCPサーバーをサンドボックス化せず、依存コードのマルウェア解析を行わず、パッケージに署名せず、エージェントがコンテキストを読んだ後に何をするかを検査しない、と述べています。11
導入時には、この境界を前提にすべきです。
インストール成功を、信頼の決定として扱ってはいけません。レビューを続ける理由として扱います。レビューではなお、可視の指示、実行可能なフック、MCPの通信経路、環境変数の扱い、更新ポリシー、そのパッケージが担うと主張する実際の仕事を確認する必要があります。
ルールは単純です。パッケージマネージャーはエージェントコンテキストを管理可能にしますが、それ自体をよいものにするわけではありません。
最低限の基準
チームは、1つのエコシステムの勝者が決まるのを待たなくても、今すぐプロセスを改善できます。まずは6つのルールから始められます。
1. すべてのエージェント資産を棚卸しする。 スキル、コマンド、フック、MCPサーバー、エージェント、プラグインバンドル、プロンプトファイル、プロジェクト指示を一覧化します。資産を棚卸しできなければ、管理もできません。
2. 個人、プロジェクト、組織の範囲を分ける。 個人の実験をプロジェクトの既定値にしてはいけません。プロジェクト標準をグローバルコンテキストにしてもいけません。組織パッケージには、明示的な所有者が必要です。
3. 共有前にバージョンを固定する。 共有パッケージにはタグまたは commit SHA を使います。浮動ブランチは実験用であり、リリースワークフローには向きません。
4. ロックファイルをコミットする。 再現性に必要なのは、マニフェストの意図だけではありません。解決済みツリーです。
5. 実行時の接点は別にレビューする。 フック、バイナリ、シェルコマンド、MCPサーバーは、単なる指示文のスキルより厳しくレビューすべきです。実行や接続ができるため、リスクが高くなります。
6. ロールバックを退屈にする。 悪いパッケージ更新は、1つの依存関係変更と1つの再インストールコマンドで戻せるべきです。コピーしたファイルを思い出す必要があるなら、その仕組みはまだ準備不足です。
実践的な導入手順
小さく始めましょう。
まずは害の少ないスキルを1つパッケージ化します。文章評価基準、テストチェックリスト、レビュー形式などです。1つのリポジトリにインストールします。正しいクライアントから見えることを確認します。ロックファイルで固定されていることを確認します。アンインストールが動くことも確認します。
次に、人がすでに手動で呼び出しているコマンドをパッケージ化します。チームがインストールとロールバックの経路を理解するまでは、フックとMCPサーバーは避けます。
その後、MCPサーバー宣言をパッケージ化します。ただし認証情報はパッケージに入れません。環境変数参照と別のシークレットストアを使います。パッケージが記述するのは実行時の依存関係であり、シークレットそのものではありません。
フックは最後です。フックは適切なタイミングで品質を強制できます。一方で、作業を止めたり、脆い前提を隠したり、誤った信頼モデルのもとでスクリプトを実行したりもします。フックを出すのは、取得元ポリシー、レビュー所有者、ロールバックが整ってからにしましょう。
この順序は、リスクの勾配に沿っています。
| パッケージ種別 | 既定のリスク | 最初のレビュー質問 |
|---|---|---|
| 単純なスキル | 低 | コンテキストを膨らませずに仕事をよくしているか? |
| プロンプトまたはスラッシュコマンド | 中 | 正しいワークフローを起動し、ユーザーの制御を保っているか? |
| エージェントのペルソナ | 中 | 範囲を絞っているか、それともメインエージェントとの混乱を生んでいるか? |
| MCPサーバー | 高 | どのデータと操作を公開できるのか? |
| フックまたは実行ファイル | 高 | 何を実行でき、いつ実行され、どう失敗するのか? |
レビュー用パケット
共有エージェントパッケージをプロジェクトへ入れる前に、レビュー用パケットを1つ求めます。退屈なくらいで十分です。
| 項目 | 必須の回答 |
|---|---|
| 取得元 | リポジトリ、所有者、バージョン参照、ロックファイル項目 |
| 内容 | スキル、プロンプト、コマンド、フック、エージェント、MCPサーバー、バイナリ、設定 |
| 範囲 | ユーザー、プロジェクト、ローカル、組織、チーム、パス、ボット |
| 実行時の接点 | ファイルのみ、ツールアクセス、シェル実行、ネットワークアクセス、外部データアクセス |
| シークレット | 環境変数参照のみ。認証情報のリテラルは含めない |
| ポリシー | 許可された取得元、許可されたプリミティブの種類、許可された通信経路、レビュー所有者 |
| 検証 | インストールのドライラン、内容スキャン、経路とクライアントの検出、ロールバックテスト |
| 退出計画 | 正確なアンインストール、整理、または revert コマンド |
このパケットは、最悪の失敗を防ぎます。チームが「スキルを入れた」と言いながら、実際にはプラグイン、MCPサーバー、2つのフック、誰もレビューしていないコマンドを入れてしまう失敗です。
審美眼の層はまだ重要です
エージェントパッケージは、数を増やしたくなる仕組みです。インストールが安く感じられるため、チームは40個のスキルを入れられます。しかし安いコンテキストにもコストがあります。
スキルを1つ追加するたび、注意の奪い合いが起きます。コマンドを1つ追加するたび、選択肢が増えます。フックを1つ追加するたび、作業を止める可能性が増えます。MCPサーバーを1つ追加するたび、操作面が広がります。パッケージマネージャーが解くのは配布であり、判断ではありません。
基準は、小さく鋭いままでよいのです。仕事をよくするものを入れ、エージェントを膨らませるものを取り除き、レビューに耐えたものを固定し、実際に使われているものを観察する。
それが、エージェントパッケージに対する Steve Test です。最大のバンドルを公開してはいけません。一貫したバンドルを公開してください。
短いまとめ
エージェントスキルにパッケージマネージャーが必要なのは、エージェントコンテキストが依存コードのように振る舞うようになったからです。スキルはプロセスを運べます。プラグインはコマンド、フック、MCPサーバー、エージェントを運べます。パッケージは、すべての開発者のエージェント設定の振る舞いを変えられます。
パッケージマネージャーの仕事は、それらの資産をよいものにすることではありません。宣言し、固定し、配布し、監査し、ロールバック可能にすることです。チームの仕事は、なお難しいままです。どの資産が存在に値するかを決めなければなりません。
FAQ
エージェントスキルは本当に依存関係なのですか?
はい。共有スキルは、エージェントがタスクを実行する方法を変えます。プラグインはさらに、コマンド、フック、MCPサーバー、エージェント定義を追加できます。こうしたファイルは複数のマシンにまたがって振る舞いに影響するため、チームはコード依存関係と同じ真剣さで追跡すべきです。
パッケージマネージャーはプラグインレビューの代わりになりますか?
なりません。パッケージマネージャーは、取得元、バージョン、ハッシュ、範囲、インストール済みファイルを記録します。レビューでは引き続き、パッケージが何を指示しているか、何を実行できるか、どのMCPサーバーを宣言しているか、その能力がプロジェクトにふさわしいかを確認する必要があります。
チームは私的なワークフローをパッケージ化すべきですか?
パッケージ化すべきなのは、繰り返し発生する「達成すべき仕事」であり、私的な運用の詳細ではありません。公開パッケージには、一般的なレビュー基準、移行チェックリスト、ドキュメント作成ワークフローを含められます。一方で、私的なプロンプト、機密性の高いファイルパス、認証情報、内部のソースマップ、独自の採点ロジックの中身を含めるべきではありません。
チームは何を最初にパッケージ化すべきですか?
すでに手動でうまく機能している、低リスクのスキルから始めます。マニフェスト、ロックファイル、取得元ポリシー、インストールレビュー、ロールバック経路が整うまでは、MCPサーバーとフックを避けましょう。
エージェント作業で最も重要なパッケージマネージャー機能は何ですか?
ロックファイルです。探索機能は役に立ち、インストールコマンドは気持ちよく使えます。しかし、再現可能なエージェントコンテキストには、正確な取得元参照、内容ハッシュ、配布済みファイルの記録が必要です。
参考文献
-
Microsoft, “APM とは何か”, Agent Package Manager documentation, last updated May 11, 2026. AI エージェントコンテキストの依存関係マネージャーとしての APM、
apm.yml/apm.lock.yamlの考え方、管理対象のプリミティブ、.codex/とAGENTS.mdを含む出力先、マニフェストの可搬性、セキュリティチェック、ポリシー管理という3つの約束に関する一次情報。 ↩↩ -
Sleuth, “sleuth-io/sx”, GitHub repository, accessed May 17, 2026. Sx が自らを AI コーディングアシスタント向けパッケージマネージャーと説明していること、管理対象資産カテゴリ、対応クライアント、インストール範囲、監査・統計コマンド、最新リリースメタデータに関する一次情報。 ↩↩
-
OpenAI Academy, “Plugins and skills”, April 23, 2026. Codex における、ツール・データコネクタとしてのプラグインと、チームプロセスのプレイブックとしてのスキルの区別に関する一次情報。 ↩
-
Anthropic, “Plugins overview”, Claude documentation, accessed May 17, 2026. Claudeプラグインが、MCPコネクタ、スキル、スラッシュコマンド、サブエージェントを束ねる再利用可能なパッケージであることに関する一次情報。 ↩
-
Anthropic, “Plugins reference”, Claude Code documentation, accessed May 17, 2026. スキル、コマンド、エージェント、フック、MCPサーバー、モニター、バイナリ、設定、マニフェストを含む Claude Code プラグイン構成要素に関する一次情報。 ↩
-
Anthropic, “Plugins reference”, Claude Code documentation, accessed May 17, 2026. プラグインのインストール範囲、プラグイン依存関係の整理、構成要素の一覧、推定トークンコスト、バージョン解決の挙動に関する情報源。 ↩
-
Microsoft, “Quickstart”, Agent Package Manager documentation, last updated May 11, 2026. インストールフロー、生成される
apm.yml、apm.lock.yaml、apm_modules/、対象別出力ファイル、推移的依存関係の解決、不可視 Unicode スキャン、ポリシー事前チェックに関する情報源。 ↩ -
Microsoft, “Manage dependencies”, Agent Package Manager documentation, last updated May 11, 2026. 依存関係参照の形式、固定、ブランチとタグ/SHA の挙動、ロックファイルの内容、ロックファイル運用ルールに関する情報源。 ↩
-
Sleuth, “sx README”, GitHub repository, accessed May 17, 2026. Sx のインストール範囲、クラウドリレー、統計、監査、対応クライアント、資産種別に関する情報源。 ↩↩
-
Microsoft, “Security and Supply Chain”, Agent Package Manager documentation, last updated May 11, 2026. 再現性、完全性、出自、デプロイ前の内容安全性という APM のビルド時脅威モデルに関する情報源。 ↩
-
Microsoft, “Security and Supply Chain”, Agent Package Manager documentation, last updated May 11, 2026. 明記された非目標、つまりMCPサーバーの実行時サンドボックス化なし、マルウェア解析なし、パッケージ署名なし、可視のプロンプトインジェクション防御なし、コンテキスト読了後のエージェント挙動検査なしに関する情報源。 ↩