AIエージェントの依存関係を一元管理!Microsoft製「APM」でチーム全員のエージェント環境を再現可能にする
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) AIエージェントの依存関係を一元管理!Microsoft製「APM」でチーム全員のエージェント環境を再現可能にする
ひとことでいうと
APM(エージェント・パッケージ・マネージャー)は、AIコーディングエージェントが使う「設定一式」を apm.yml という1つのファイルで管理できる、オープンソースのツールです。apm install というコマンドを1回実行するだけで、チーム全員のエージェント環境を同じ状態に揃えられます。Microsoft が開発・公開しており、GitHub Copilot、Claude Code、Cursor、OpenCode、Codex、Gemini といった主要なAIコーディングエージェントのすべてに対応しています。「npm が Node.js のライブラリ管理をするように、APM はAIエージェントの設定を管理する」というコンセプトで作られた、これからのチーム開発に欠かせないツールです。AIを使う人が増えた今、「自分のパソコンでは動くのに、チームメンバーの環境では動かない」という問題を、このツールがすっきり解決してくれます。
こんな人におすすめ
1. AIエージェントを使うチームのリーダー・エンジニア
「メンバーごとにエージェントの設定がバラバラ」という状況に困っている方に最適です。apm.yml をリポジトリ(ソースコードの置き場)にコミット(保存・共有)しておけば、新しくチームに加わった人も apm install の1回で同じ環境が手に入ります。設定を口頭で伝えたり、手順書を書いたりする手間がまるごとなくなります。
2. セキュリティやルールを厳しく管理したい企業・組織
apm-policy.yml というポリシーファイルを使えば、「このチームが使ってよいスキルやプラグインはここまで」とセキュリティ担当者が宣言でき、すべての apm install でそのルールが自動的に適用されます。ロックファイル(バージョンを固定するファイル)にはコンテンツハッシュ(ファイルの指紋のようなもの)が記録されるため、悪意ある改ざんへの耐性も備えています。
3. AIエージェント向けのプラグインやスキルを作って配布したい開発者
apm pack コマンドで設定をZIPパッケージにまとめ、GitHubなど任意のgitホストから apm install org/repo の形式で配布できます。マーケットプレイス機能もあり、apm marketplace add でキュレート(厳選)されたレジストリを追加すれば、ワンコマンドでインストールが可能です。自分が作ったスキルを多くのユーザーに届けるのが、ぐっと簡単になります。
インストール・使い方
ここでは「ターミナル(文字で命令を送る画面)」を使って操作します。コマンドはコピー&ペーストするだけで大丈夫です。
Step 1: APM 本体をインストールする
Linux・macOS の場合は、以下のコマンドをターミナルに貼り付けて実行します。
curl -sSL https://aka.ms/apm-unix | sh
インターネットから APM の最新版を取得して、自動的にセットアップするコマンドです。
Windows の場合は PowerShell(Windows のターミナル)から実行します。
irm https://aka.ms/apm-windows | iex
同じく、Windows 向けのインストーラーを取得して実行しています。
Python(プログラミング言語のひとつ)の環境がある場合は、pip(Python のパッケージ管理ツール)でもインストールできます。
pip install apm-cli
Step 2: プロジェクトにマニフェストファイルを作る
リポジトリのルート(一番上のフォルダ)に apm.yml というファイルを作ります。「マニフェスト」とは「必要なものリスト」のことです。以下は基本的な書き方の例です。
# apm.yml — プロジェクトと一緒にコミット(保存・共有)する
name: your-project
version: 1.0.0
dependencies:
apm:
# GitHub のリポジトリからスキルを直接インストール
- anthropics/skills/skills/frontend-design
# プラグインの追加
- github/awesome-copilot/plugins/context-engineering
# バージョン固定付きの APM パッケージ
- microsoft/apm-sample-package#v1.0.0
mcp:
# MCP サーバー(エージェントにツールを提供する仕組み)
- name: io.github.github/github-mcp-server
transport: http
このファイルに「使いたいスキルやプラグインの名前」を書いていくだけで、依存関係の宣言が完了します。
Step 3: 依存関係をインストールする
apm install
apm.yml に書いた内容をもとに、すべての依存関係が自動で解決されます。検出されたエージェントクライアント(Copilot、Claude Code、Cursor など)すべてに設定が適用され、apm.lock.yaml(バージョンを固定するロックファイル)が生成・更新されます。
Step 4: MCP サーバーを追加する
MCP(Model Context Protocol)とは、エージェントが外部のツールやデータにアクセスするための仕組みです。以下のコマンドで追加できます。
apm install --mcp io.github.github/github-mcp-server --transport http
このコマンドだけで、対応するすべてのエージェントクライアントに MCP サーバーが自動登録されます。各クライアントの設定ファイルを個別に書き換える必要はありません。
ブラウザで試す(デモ)
ブラウザ上で apm.yml のテンプレートを対話的に生成できるデモが用意されています。プロジェクト名・バージョン・追加したいスキルや MCP サーバーを入力すると、そのままプロジェクトにコピーして使える apm.yml が出力されます。APM の基本的な書き方を学びながら、実際のマニフェストファイルのたたき台を作るのに最適です。コマンドを打つ前に、まずここから全体のイメージをつかんでみましょう。
動かしてみた
Python 3.12 の環境で pip install apm-cli を実行したところ、インストールが正常に完了しました。pip 経由での導入経路がしっかり動作することを確認しています。
リポジトリのルートには apm.yml と apm.lock.yaml が既に置かれており、APM 自身が APM で管理されているという「ドッグフーディング(自分たちのツールを自分たちで使うこと)」の構造になっています。これは APM がどう使われるべきかを、そのまま示してくれている良い手本です。
また scripts/ ディレクトリ(フォルダ)の配下には test-integration.sh・validate-1061-real-world.py・benchmark_manifest_ops.py などのスクリプトが揃っています。CI/CD(継続的インテグレーション・デリバリー:コードの検証や配布を自動化する仕組み)パイプラインへの組み込みを想定した設計になっており、本番環境での運用や自動化を意識した、実用的なつくりです。
はじめの一歩——既存プロジェクトへの導入コツ
既存のリポジトリに APM を取り入れる際の、すぐ試せるコツをまとめました。
- まずは
apm install microsoft/apm-sample-package#v1.0.0を実行してみましょう。apm.ymlとapm.lock.yamlが生成されることを確認するだけで、APM の基本的な流れが一通り体験できます。 - 全部を一度に移行しようとせず、チームで使っているスキルやプロンプトを少しずつ
apm.ymlに書き加えていくのが現実的なアプローチです。1つ確認できたら次へ、と進めましょう。 - セキュリティが気になる場合は、
apm auditコマンドを先に実行してください。隠し Unicode 文字など、エージェントの動作に悪影響を与えかねない仕掛けをスキャンしてくれます。 - CI/CD に組み込む場合は、
apm audit --ciをブランチ保護ルールと組み合わせるのが公式の推奨パターンです。不審なコンテキストを自動でブロックできます。 - スキルのバージョンを意図的にアップデートしたいときは
apm updateを使います。ロックファイルで固定されているので、意図せず変わることはありません。
活用アイデア
- オンボーディングの自動化: 新メンバーが
git clone && apm installだけでプロジェクト固有のAIエージェント設定を手に入れられます。インフラを「コードで管理する(IaC: Infrastructure as Code)」のと同じ発想で、エージェント設定もコードで管理できます。 - スキルのバージョン管理:
apm.lock.yamlでスキルのバージョンをロックしておくと、上流で破壊的変更があってもプロジェクトが影響を受けません。apm updateで、アップデートするタイミングをチームでコントロールできます。 - 社内プラグインの配布と管理:
apm packでパッケージ化した社内専用スキルやプロンプトをプライベート Git リポジトリで管理し、apm-policy.ymlで社外ソースを禁止することで、承認済みコンテキストだけをエージェントが参照できる閉じた環境を構築できます。 - マーケットプレイスからすぐに導入:
apm marketplace add github/awesome-copilotでコミュニティ製スキルのレジストリを追加し、プロジェクトに合ったスキルセットを素早く探してインストールできます。試行錯誤のコストをぐっと下げられます。 - CI/CD パイプラインへの組み込み:
apm audit --ciをブランチ保護ルールに設定することで、安全でないコンテキストがリポジトリに混入する前に自動でブロックできます。セキュリティチェックを開発フローに自然に組み込めます。 - 個人開発・学習での環境構築: 複数のAIエージェントを使い分けながら設定を統一管理できます。自分だけの「最強エージェント環境」を
apm.ymlに書いておけば、パソコンを変えても同じ環境をすぐに再現できます。
用語とポイント解説
プリミティブ(Primitive)
APM が管理する設定の最小単位のことです。かんたんに言うと、エージェントに与える「部品」のひとつひとつです。instructions(指示文)、skills(スキル)、prompts(プロンプト)、agents(サブエージェント)、hooks(フック)、plugins(プラグイン)、MCP サーバーなどが、この「プリミティブ」に含まれます。
MCP(Model Context Protocol)
AIエージェントが外部のツールやデータソースにアクセスするためのプロトコル(通信のルール)です。かんたんに言うと、「エージェントが外の世界とやり取りするための共通の窓口」です。たとえば GitHub の MCP サーバーを追加すれば、エージェントが GitHub の情報を直接参照できるようになります。
マニフェスト(Manifest)
プロジェクトが必要とする依存関係を宣言するファイルで、APM では apm.yml がこれにあたります。かんたんに言うと、「このプロジェクトに必要なものリスト」です。このファイルをリポジトリに含めておくことで、誰でも同じ環境を再現できます。
ロックファイル(Lock File)
apm.lock.yaml のことで、依存関係を解決した結果とコンテンツハッシュを記録したファイルです。かんたんに言うと、「バージョンを凍結する台帳」です。これがあることで、時間が経っても・誰がインストールしても、まったく同じバージョンのスキルが入ることが保証されます。
推移的依存関係(Transitive Dependency)
パッケージAがパッケージBに依存し、さらにBがCに依存しているとき、CもAのために自動的に取得・解決されることを指します。かんたんに言うと、「依存関係のつながりを自動で追いかけてくれる機能」です。npm や pip と同様の仕組みで、APM も推移的依存関係を自動解決します。
apm-policy.yml
組織レベルで許可するソースやスコープ(範囲)を強制するポリシーファイルです。かんたんに言うと、「チームが使っていいスキルのルールブック」です。このファイルを配置することで、すべての apm install がルールの範囲内に収まるよう自動チェックされます。
コンテンツハッシュ(Content Hash)
ファイルの内容から計算される、固有の「指紋」のような文字列です。かんたんに言うと、「ファイルが改ざんされていないかを確認するための印」です。ロックファイルにこの値が記録されるため、インストールされるスキルやプラグインが想定外に書き換えられていた場合に検知できます。
ドッグフーディング(Dogfooding)
自社・自チームが開発したツールを、自分たちの実際の作業でも使うことです。かんたんに言うと、「自分で作ったものを自分で使って試すこと」です。APM 自身のリポジトリが apm.yml で管理されているのはその典型例で、ツールの実用性を裏付ける証明にもなっています。
マーケットプレイス(Marketplace)
コミュニティや公式が公開しているスキル・プラグインのカタログ(一覧)です。かんたんに言うと、「使えるスキルが並んだ棚」です。apm marketplace add でレジストリ(棚の場所)を追加し、apm install でそこから好きなスキルを取り出せます。
まとめ
APM は、AIコーディングエージェントの設定管理に「パッケージマネージャー」という成熟したアプローチを持ち込んだ、実用的なオープンソースツールです。apm.yml の1ファイルで依存関係を宣言し、apm install の1コマンドで全員の環境を揃える仕組みは、チーム規模が大きくなるほど効果を発揮します。セキュリティポリシーの適用、コンテンツハッシュによる改ざん検知、マーケットプレイスからのワンコマンドインストールと、個人から企業規模まで対応できる機能が揃っています。ぜひ、新メンバーのオンボーディング自動化や、チーム全体のエージェント環境の統一管理などに活用してみてはいかがでしょうか。