概要
GitHub Copilotなどで使うカスタムエージェントを、リポジトリごとに手でコピーするのは面倒ですね。なのでそれを解決してくれそうな、apmを試してみました。GitHub上のパスを指定するだけのコマンドで雑に使い始められるのに、最新版への更新や「GitHub Copilot向けをCodex向けに変換」のようなこともできるのでだいぶ便利でした。
最初に結論まとめ
3つのカスタムエージェントを取得して、GitHub Copilot向けとCodex向けに変換するコマンド例です。こんなシンプルなコマンドで使えてしまいます。` はPowerShellの改行文字なので、1行で書けば不要です。
apm install --target copilot,codex,agent-skills `
suusanex/coding_agent_plan_and_verify_process/.github/agents/plan-kernel.agent.md `
suusanex/coding_agent_plan_and_verify_process/.github/agents/change-risk-triage.agent.md `
suusanex/coding_agent_plan_and_verify_process/.github/agents/runtime-contract-kernel.agent.md `
suusanex/agent_skills_dotnet_utility/.agents/skills/dotnet-file-based-apps
説明
apmを試してみた
GitHub CopilotなどのコーディングAI向けにはカスタムエージェントを作れますが、リポジトリを作る度にコピーするのは面倒ですよね。
それを解決してくれそうな、apmを試しました。カスタムエージェント向けのパッケージマネージャです。
新しいリポジトリでの準備が楽になる
色々なリポジトリで開発をしていると、定番のカスタムエージェントやskillsを全てのリポジトリで使いたいところです。
しかし手でコピーするのは面倒ですし、リポジトリのテンプレートを作るのも手間で変更もしづらいです。
apmはとてもシンプルなので、gitリポジトリ上のパスをそのまま並べるだけでもインストールできます。
2つのagent.mdをGitHub Copilot向けに取ってくるコマンドだと、次のようになります。
apm install --target copilot`
suusanex/coding_agent_plan_and_verify_process/.github/agents/plan-kernel.agent.md `
suusanex/coding_agent_plan_and_verify_process/.github/agents/change-risk-triage.agent.md
そのまんまですね。取得したいGitHubのURLを指定するだけです(ここでは owner/repo/path 形式ですが、フルのURLでも良いです)。色々便利な機能は有るんですが、とりあえず使い始めるならこれだけなので、敷居はとても低いです。
更新もできる
一度入れたものを更新したい場合は、--update が使えます。
apm install --update --target copilot `
suusanex/coding_agent_plan_and_verify_process/.github/agents/plan-kernel.agent.md `
suusanex/coding_agent_plan_and_verify_process/.github/agents/change-risk-triage.agent.md
エージェント側を更新した時に、作業中のリポジトリでこのコマンドを打てば更新されます。
という使い方をしていましたが、ドキュメントを見るともっとシンプルに次のコマンドで、すでにinstallした対象をupdateしてくれるようです。
apm update --target copilot
Copilot用エージェントをCodex向けにも出せる
この辺から、apm便利だな?となってきます。
GitHub Copilot向けのカスタムエージェントを入力にして、Codex向けに変換することも出来ます。次のようにtargetオプションを付けると、それに向けたファイルパス・ファイル形式にしてくれるという手軽さです。
apm install --target copilot,codex `
suusanex/coding_agent_plan_and_verify_process/.github/agents/plan-kernel.agent.md
Skillsもtarget指定で扱える
ここまではカスタムエージェントの例だけ書いてきましたが、Skillsも扱えます。 --target agent-skills で、 .agents/skills に対応しているAI向けになります。
apm install --target agent-skills `
suusanex/agent_skills_dotnet_utility/.agents/skills/dotnet-file-based-apps
パッケージ定義があるとファイル詳細を隠せる
カスタムエージェントを公開しているgitリポジトリ側にapmパッケージの定義を作れば、ファイルパスを直接指定せずにパッケージとして取れます。
次のような感じで、カスタムエージェントのセットをyamlで定義しておきます。パッケージの定義もだいぶシンプルで、ヘッダとファイル一覧という感じなのですぐに書けます。
この場合、次のようにディレクトリまでのパスとタグ名を指定すれば、まとめて取得できます。(タグでなくても git ref なら参照できるらしい)
apm install `
suusanex/coding_agent_plan_and_verify_process/apm-packages/token-aware-guardrail-kernel-flow#v0.2.0
まとめ
apmは導入の敷居が低くて、まずはリポジトリ上のパスを並べるだけですぐに使えます。
それだけなのに、最新版への更新や、GitHub Copilot向けをCodex向けに変換するようなこともやってくれて、だいぶ便利です。とりあえず使い始めてみると、便利になって良いと思います。
