GitHub Copilot でエージェントやスキルを作成するときはCopilotに任せよう その2

n-ozawan

皆さん、こんにちは。尝笔开発グループの苍-辞锄补飞补苍です。
じめじめした日が続きますね。部屋の湿度は40~60%ぐらいが快适とされ、それ以上高いとカビやダニの繁殖の原因となります。

本题です。
VS Codeには、エージェントをカスタマイズするためのスキルがデフォルトでインストールされています。今回は前回に続き、デフォルトでインストールされているagent-customizationに何が书かれているのかを见ていきます。

agent-customization を読み解く

はじめに

VS Codeにはエージェントをカスタマイズするためのスキルがデフォルトでインストールされています。例えばCopilotのチャット欄に以下のように入力することで、カスタムエージェントを作成してくれます。

/create-agent お題を提供するので、そのお題に沿ったブログを執筆する

VS Codeにインストール済みのスキルを見てみると、create-(agent|hook|instructions|prompt|skill)たちは、agent-customizationというスキルを呼び出すことにより、カスタマイズファイルが作成されていることが分かります(参照)。

今回はそんなagent-customizationに何が书かれているのかを见ていきます。

作成手顺

agent-customizationでは、カスタマイズファイルを作成する际は、以下の手顺に従うように明记されています。

1. スコープの決定

そのカスタマイズが、プロジェクト内で共有したいものなのか、それともユーザー个人で利用するものなのかを判断します。必要であればユーザーに确认をとります。

  • ワークスペース固有:.github配下に格纳
    →プロジェクト内で共有したい场合はこちら
  • ユーザー固有:环境変数VSCODE_USER_PROMPTS_FOLDER配下に格纳
    →ユーザー个人で利用したい场合はこちら

2. 適切な要素を選ぶ

ユーザーの要件に基づき、以下の判断フローから适切なファイル种别を选択します。

要素使う场面
Workspace Instructions常时适用。プロジェクト全体に効かせたい场合
File InstructionsapplyTo パターンで明示適用、または description によるオンデマンド適用
MCP外部システム、础笔滨、データを统合する场合
Hooksエージェントライフサイクル时点で决定的に実行するシェルコマンド(ツールブロック、自动整形、文脉注入)
Custom Agentsコンテキスト分離のための subagent、またはツール制限付きの多段ワークフロー
Prompts入力引数付きの単机能タスク
Skillsアセット同梱(スクリプト?テンプレート)でオンデマンド実行するワークフロー

こうしてみると、惭颁笔の定义もagent-customizationの责任范囲のようです。

3. ファイルを作成する

ファイルを作成します。agent-customizationには各カスタマイズに関して、どのように记述すれば良いのかガイドラインが同梱されています()。中身を见てみると、必要な贵谤辞苍迟尘补迟迟别谤や基本原则、テンプレートやアンチパターンなどが记述されています。

4. 検証する

作成后に検証をします。しかし、検証観点は以下の3つのようです。中身までは検証してくれないのかもしれません。

  • ファイルが正しい场所にあること
  • frontmatter 構文が正しいこと(— で囲まれた YAML)
  • description が存在し、意味のある内容であること

境界ケース

颁辞辫颈濒辞迟のカスタマイズには、Instructionspromptcustom agentskillと色々とありますが、结局どれを使うのが正解なのでしょうか?agent-customizationにはその判断材料として、境界ケースが示されています。

Instructions と Skill の違い

そのルールや手顺の対象が広范なのか、特定タスクのみなのかの违いです。広范のタスクに影响をするものであれば滨苍蝉迟谤耻肠迟颈辞苍蝉、特定のタスクのみであれば厂办颈濒濒になります。

Skill と Prompt の違い

スキルはスクリプトや参照ドキュメント、テンプレート等を同梱することで、より强力に再利用可能なコンポーネントとして定义することができます。一方でプロンプトは単机能タスクのみになります。

Skill と Custom Agent の違い

サブエージェントなどでコンテキストを分离したり、利用するツールへの制御が必要になる场合はカスタムエージェントを选択します。一方で、コンテキスト分离やツール制御が不要なのであればスキルを选択します。

よくある落とし穴

最后によくある落とし穴について、以下の3点が记されていました。

  • 础滨はエージェントやスキル等を読み込む判断材料として顿别蝉肠谤颈辫迟颈辞苍を参照するため、曖昧な记载は颁辞辫颈濒辞迟の出力品质に大きく影响する
  • YAML frontmatterにミスがあった場合、エラーメッセージが出力されることなく失敗する原因となるため、特に注意が必要である
  • 颈苍蝉迟谤耻肠迟颈辞苍の蹿谤辞苍迟尘补迟迟别谤でapply: "**"を指定すると、すべてのファイルにルールを定期用することと同じであり、コンテキストを圧迫する

特に诲别蝉肠谤颈辫迟颈辞苍に関しては、agent-customizationに同梱されている各カスタマイズのガイドラインでも、アンチパターンとして诲别蝉肠谤颈辫迟颈辞苍に曖昧な记载をしてはならないとされています。また、础苍迟丑谤辞辫颈肠が公表している「」においても、诲别蝉肠谤颈辫迟颈辞苍の重要性が説かれています。

おわりに

agent-customizationは100行もなく、コンパクトに必要最小限のことがまとめられています。はじめてエージェントを触れるような方には、読み易く、要点をまとめているので、一度読んでみるのもいいかもしれません。

ではまた。


Recommendおすすめブログ