24
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハーネスエンジニアリング時代の「環境構築」を一撃で終わらせるAPM

24
Posted at

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の整理、リンク管理、ナレッジベース構築に特化しています。

従来の方法(手動)

  1. GitHubでリポジトリを探す
  2. 各ファイルをダウンロード
  3. .opencode/skills/.claude/skills/ に配置
  4. パス設定が正しいか確認

手順は単純ですが、プロジェクトが増えると同じ作業の繰り返しになります。

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行で、あなたのハーネスエンジニアリングが始まります。


参考リンク

24
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?