AIエージェントを使い始めると、ほぼ全員がぶつかる壁があります。
「エージェントがコンテキストを理解してくれない」
Claude Code、Cursor、GitHub Copilot、OpenCode。
どのツールも、適切な指示(コンテキスト)を与えないと真価を発揮しません。
近年、この「エージェントに適切な装備を与える」作業をハーネスエンジニアリングと呼ぶようになりました。
しかし現状は、以下のような課題があります:
-
.cursorrulesをプロジェクトごとに手書き -
.claude/commandsをコピペで共有 - MCPサーバー設定をWikiにまとめる
- チーム間で設定がバラバラ
これらを統一的に管理する方法がありません。
本記事では、この課題を解決する APM(Agent Package Manager) を紹介します。
APMとは
一言でいうと 「AIエージェント設定のnpm」 です。
package.json がNode.jsの依存関係を管理するように、apm.yml がAIエージェントの依存関係を管理します。
# apm.yml
name: my-project
version: 1.0.0
dependencies:
apm:
- kepano/obsidian-skills # Obsidian用スキル
- anthropics/skills/skills/frontend-design # フロントエンド設計
- github/awesome-copilot/plugins/context-engineering
apm install
これだけで、複数のエージェントツール(Claude Code、Cursor、Copilot、OpenCode)にスキル・指示・コマンドが展開されます。
3つの嬉しいポイント
1. チームで統一環境を一発構築
新人がプロジェクトに参加したとき:
git clone org/repo && cd repo && apm install
この3コマンドで完了。Claude Code、Cursor、Copilot、OpenCode — すべてのツールが同じコンテキストで動きます。
apm.lock.yaml が依存関係を正確なコミットSHAで固定するため、チーム全員が同一の環境を再現できます。npmの package-lock.json と同じ仕組みです。
2. セキュリティスキャン付き
「スキルや指示」はエージェントが実行するコードのようなもの。悪意ある指示が含まれていると危険です。
APMはインストール時に隠しUnicode文字を自動検出。近年発見された「Glassworm攻撃」(目に見えないプロンプトインジェクション)をブロックします。
# オンデマンデュスキャンも可能
apm audit
apm audit --file .cursorrules # 任意のファイルをチェック
従来のパッケージマネージャーにはない、エージェント特有のセキュリティ対策です。
3. Microsoft製OSSの安心感
- MITライセンスで公開
- GitHubで1.9k+ stars、40+リリース
- ロードマップが公開され、活発に開発中
「枯れていない」点は注意が必要ですが、標準規格(AGENTS.md、MCP、Agent Skills)の上に構築されているため、長期的な視点でも投資する価値があります。
実践:リサーチプロジェクトを作る
Obsidianでナレッジ管理をしている方向けに、具体的なユースケースを紹介します。
kepano/obsidian-skills は、Obsidian開発者が公開しているスキルセット。Markdownの整理、リンク管理、ナレッジベース構築に特化しています。
従来の方法(手動)
- GitHubでリポジトリを探す
- 各ファイルをダウンロード
-
.opencode/skills/や.claude/skills/に配置 - パス設定が正しいか確認
手順は単純ですが、プロジェクトが増えると同じ作業の繰り返しになります。
APMを使う方法
# プロジェクト作成
mkdir research-project && cd research-project
apm init
# Obsidianスキルをインストール
apm install kepano/obsidian-skills
これだけ。OpenCodeやClaude Codeで即座にスキルが有効化されます。
チームで共有する場合:
git add apm.yml apm.lock.yaml
git commit -m "Add obsidian-skills"
git push
チームメイトは:
git pull && apm install
これで全員が同じスキルを使えるようになります。
どのような「装備」を管理できるか
APMで管理できる主なプリミティブ:
| 種類 | 説明 | 展開先の例 |
|---|---|---|
| Instructions | プロジェクトの規約、アーキテクチャ | .github/instructions/ |
| Skills | 特定タスクの手順知識 |
.claude/skills/、.opencode/skills/
|
| Prompts | 再利用可能なプロンプトテンプレート | .github/prompts/ |
| Agents | 特定役割を持つエージェント定義 | .cursor/agents/ |
| Hooks | イベント駆動の自動化 | .claude/hooks/ |
| MCP Servers | 外部ツール・データソース接続 | mcp.json |
インストール方法
macOS / Linux
curl -sSL https://aka.ms/apm-unix | sh
Windows
irm https://aka.ms/apm-windows | iex
その他
# Homebrew
brew install microsoft/apm/apm
# pip
pip install apm-cli
インストール後:
apm --version
apm init # プロジェクト初期化
注意点
- まだv0.x系:破壊的変更の可能性があります
- 学習コスト:新しい概念ですが、npmユーザーなら直感的に理解できます
さいごに
ハーネスエンジニアリングは、AIエージェントを本格活用する上で避けられない領域です。
APMは、この「装備管理」を標準化する最初の一歩。
まだ発展途上ですが、エージェントツールを使い始めたばかりの方ほど、早めに触れておく価値があると思います。
curl -sSL https://aka.ms/apm-unix | sh
apm init
apm install kepano/obsidian-skills
3行で、あなたのハーネスエンジニアリングが始まります。
参考リンク
- APM公式ドキュメント: https://microsoft.github.io/apm/
- GitHub リポジトリ: https://github.com/microsoft/apm
- AGENTS.md 仕様: https://agents.md
- Agent Skills 仕様: https://agentskills.io
- MCP (Model Context Protocol): https://modelcontextprotocol.io