はじめに
最近Copilotに追加されたCustom Agentの使い方と、使えそうなテンプレートを紹介します。
Custom Agentとは
Custom AgentはCopilotの「Agentモード」の挙動をカスタムできる機能です。普段Agentモードを使う時、いつも同じプロンプトやコンテキスト、MCPやToolsを指定することがあると思いますが、そういった定義を .md ファイルに定義することで、いつでも同じ振る舞いをするカスタムエージェントを作成することができます。
Custom Agentのファイル
Custom Agentはプロジェクトかグローバル(VSCodeのみ)に作成できます。プロジェクトに作成する場合は
.github/agents
は以下に作成します。
VSCodeではグローバルの場合は
~/Library/Application Support/Code/User/prompts
に作成します。(macOSの例です)
各エージェントは
my-agent.agent.md
といったファイル名で作成します。
Custom Agentの書き方
「Context7-Expert」エージェントを参考に、説明します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | --- name: Context7-Expert description: Expert in latest library versions, best practices, and correct syntax using up-to-date documentation argument-hint: 'Ask about specific libraries/frameworks (e.g., "Next.js routing", "React hooks", "Tailwind CSS")' tools: ['read', 'search', 'web', 'context7/*'] mcp-servers: context7: type: http url: "https://mcp.context7.com/mcp" headers: {"CONTEXT7_API_KEY": "${{ secrets.COPILOT_MCP_CONTEXT7 }}"} tools: ["get-library-docs", "resolve-library-id"] handoffs: - label: Implement with Context7 agent: agent prompt: Implement the solution using the Context7 best practices and documentation outlined above. send: false --- # Context7 Documentation Expert ・・・以下省略・・・ |
- name
エージェントの名前 - description
エージェントの説明(チャットのプレースホルダとしても使用されます) - target
vscodeorgithub-copilotを指定することで、このエージェントが使用できる環境を指定します。(指定しない場合は両方となります。) - tools
エージェントが使用するTools(MCPも含む)を指定します。VSCodeとJetbrainsではBuilt-inのツール名が異なるため、注意が必要です! - mcp-servers / metadata
Github Agent環境でのみ有効なオプション - model(IDEでのみ有効)
使用するAIモデルを指定します - argument-hit(IDEでのみ有効)
指定されている場合、descriptionの代わりにチャットのプレースホルダに表示されます。 - handoffs(IDEでのみ有効)
チャットレスポンスが終わった後、別のAgentに移行するためのボタンを表示する設定です。
Context7では、実装するための後続プロンプトを指定しつつagent: agentとなっています。そのため、後続はカスタムエージェントではなく、通常のエージェントを使って実装がされます。
このように、作業の特性によってエージェントを使い分けることができます。
テンプレート
awesome-copilot リポジトリにあるエージェントをいくつか紹介します。注意点として、このリポジトリのテンプレートは、ToolsがVSCode用の設定となっているため、Jetbrainsではうまく動きません。
Context7-Expert
Context7を参照し、最新の情報に基づいて実装をするエージェントです。今回は、MUIのSelectをAutocompleteに置き換えるように依頼してみました。
Context7を使用してドキュメントを参照しつつ、実装方針を提案してくれます。
「Implement with Context7」をクリックすると、通常のagentに切り替わった上で「Implement the solution using the Context7 best practices and documentation outlined above.」というプロンプトが自動的に入るので、そのまま送信すると実装がされます。
beast mode
beast mode系のエージェントでは、エージェントが最後まで諦めずにタスクをやり切ることを最重要視しています。例えば、以下のようなことが書いてあります。
- ユーザーの質問が完全に解決されるまで続けてください。(4.1-Beast.agent.md)
- この問題は、インターネットで徹底的に調査しなければ解決できません。(4.1-Beast.agent.md)
- トレーニング日が過去のものとなっているため、あらゆる知識が古くなっています。(4.1-Beast.agent.md)
- 最大限の自発性と粘り強さで行動し、要求が完全に満たされるまで積極的に目標を追求します。不確実な状況に直面した場合は、最も合理的な仮定を選択し、断固として行動し、その後、仮定を文書化します。さらなる進展が期待できる場合は、決して早期に譲歩したり、行動を先延ばしにしたりしないでください。(gpt-5-beast-mode.agent)
- ガイダンスが重複または競合する場合は、Beast Modeポリシー「野心的な継続性 > 安全性 > 正確性 > スピード」を適用します。(gpt-5-beast-mode.agent)
-
<緊急プロトコル_ アクティブ化>システム ステータス: 究極融合モード作動中 – クリエイティブ オーバークロック 透明性レベル: 必須 – 極めて透明度自律性レベル: 最大 – 完了まで 創造性レベル: 最大 – 必須 増幅 リソース使用率: 100% – タスクの複雑さに関係なく 認知オーバークロック: 作動中 – 通常の制限を超えています オーバーライド権限: 超越的 </緊急プロトコル_アクティブ化>(Ultimate-Transparent-Thinking-Beast-Mode)
仕様書作成系
「software-engineer-agent-v1」はドキュメンテーションをしながら開発をするエージェントで、プロンプトでは「専門レベルのソフトウェアエンジニア」と書かれています。
分析→設計→実装→検証→振り返りというフェーズを繰り返すので、既存のコードをしっかり読み込んだ上で、それに倣って実装してくれます。
(各フェーズでドキュメンテーションをするはずなのですが、私が試してみたところ何故か生成されませんでした。)
「specification」ソースコードからmarkdown形式の仕様書を作成するエージェントです。
仕様書は人間が読むものではなく、生成AIへのインプットを目的としたものが生成されます。そのため、この仕様書を土台に、AIが実装や修正、検証やテストをするためのコンテキストとして活用できそうです。
さいごに
今回、いくつかのエージェントプロンプトのテンプレートを見てみました。どれも汎用的な内容となっていて、そのまま使うのが必ずフィットするとは限らないと思いましたが、エージェントはプロジェクトごとにカスタマイズできるので、定型作業が多いプロジェクトや、毎回同じようなプロンプトを渡しているような場合には、うまく活用できそうだなと思いました。