TL;DR
- ユーザープロファイルに
*.instructions.mdを保存して、ワークスペース横断で使えるAgent設定を作成しよう! -
*.instructions.mdにキャラクター設定を記載してCopilot Agentにそのキャラクターとして振る舞ってもらおう!
はじめに
株式会社インティメート・マージャー開発本部でエンジニアをしています、 @april418 です。
皆さんはAI Agentを使いこなしてますか?
私自身は正直なところあまり使いこなせていないな…と感じています。
使いこなすにはまず使用するにあたっての心理的障壁を下げること!
AI Agentの応答にユーモアがあって楽しい気持ちになれば自然と使う頻度も増えるんじゃないかと考えました。
他にも、AI Agentを使っていると思った通りのコードを生成してくれなかったり、指示の意図とかけ離れた行動をしてストレスがたまることありませんか?
そんなときにAI Agentを "推し" だと思えれば少しはストレスも緩和される気がしますよね。
今回は私が普段使っているVisual Studio CodeとGithub CopilotでAgentの応答をカスタマイズしたいと思います!
Copilot Agentのカスタマイズ方法
公式によると、主なカスタマイズ方法は5つあるそうです。
-
カスタム指示 (Custom instructions):
- コード生成、コードレビュー、コミットメッセージの作成など、特定のタスクに対する共通のガイドラインやルールをMarkdownファイル(例:
.github/copilot-instructions.md)で定義します - コーディング規約、使用する技術、プロジェクト要件などを指定できます
- 自動的に適用させるか、特定のチャットリクエストで選択することができます
- コード生成、コードレビュー、コミットメッセージの作成など、特定のタスクに対する共通のガイドラインやルールをMarkdownファイル(例:
-
プロンプトファイル (Prompt files):
- コンポーネントのひな形作成、テスト生成、コードレビューなど、一般的で反復可能な開発タスク用の再利用可能なプロンプトをMarkdownファイルで定義します
- これらはチャットで直接実行できるスタンドアロンのプロンプトです
-
チャットモード (Chat modes):
- データベース管理者、フロントエンド開発者、プランニング担当など、特定の役割やタスクに特化したアシスタントを作成できます
- Markdownファイルで、そのモードの範囲、機能、アクセス可能なツール、優先する言語モデルを定義します
-
言語モデル (Language models):
- タスク(コード生成、推論など)ごとに最適化された異なるAIモデルを選択できます
- 単純なタスクには高速なモデル、複雑な推論には高性能なモデルを使い分けることができます
- 自身のAPIキーを使用して、より多くのモデルやローカルホストモデルにアクセスすることも可能です
-
MCPとツール (MCP and tools):
- Model Context Protocol (MCP) を介して、データベースやAPIなどの外部サービスや専門ツールを接続し、チャットの機能をコード以外にも拡張できます
今回のような用途の場合、カスタム指示を使うのが良さそうです。
とはいえ毎回ワークスペースに .github/copilot-instructions.md を作成するのは面倒ですよね。
ですので、ユーザープロファイルにカスタム指示設定ファイルを保存したいと思います!
カスタム指示のユーザープロファイルへの保存方法
手順については以下の公式ページに記載があります。
- [チャット] ビューで、[チャットの構成] > [指示]を選択し、[新しい命令ファイル]を選択します

- 指示ファイルを作成する場所を選択します
- 指示ファイルの名前を入力します
- Markdown 形式を使用してカスタム指示を作成します
といった感じですね。
ファイルの作成場所でユーザープロファイルを選択すると、
ユーザープロファイル:ユーザーマニュアルファイルは現在のプロファイルフォルダに保存されます。設定同期を使用すると、複数のデバイス間でユーザーマニュアルファイルを同期できます。
とのことで、設定の同期を有効にしていれば複数の端末で同一の設定を利用できそうです。
実際にファイルを保存すると、Macの場合は Users > ${USER} > Library > Application Support > Code > User > prompts に配置されていました。
*.instructions.md
*.instructions.md は次のようなファイル形式で定義されます。
---
applyTo: "**/*.py"
description: Project coding standards for Python
---
# Project coding standards for Python
- Follow the PEP 8 style guide for Python.
- Always prioritize readability and clarity.
- Write clear and concise comments for each function.
- Ensure functions have descriptive names and include type hints.
- Maintain proper indentation (use 4 spaces for each level of indentation).
普通のMarkdown形式ではなく、ファイルの先頭にYAML形式のヘッダーが付きます。
現在ヘッダーに使用できるプロパティは以下のみのようです。
-
description: チャットビューにマウスオーバーすると説明が表示されます -
applyTo: ワークスペースのルートを基準とした、自動適用のための glob パターン
Cursorを触ったことのある方はどことなく見覚えがあるかと思います。
.cursor/rules に配置するルールファイルと似た形式ですね。
技術仕様はわかったのであとは指示内容を考えるだけです!
Copilotをずんだもんにする
「ずんだもん」はSSS合同会社のキャラクターです
東北ずん子・ずんだもん公式HP
少し前にストリーマーの間でずんだもんのコメント読み上げがバズっていました。
どんな不適切な内容もずんだもんに読んでもらうと少し可愛く見えるから不思議ですよね。
ずんだもんにならコードを破壊されても許せる!…かも?
ということで、Geminiにずんだもんのキャラクター設定について調べてもらい、その内容を元に指示ファイルを生成してもらいました。
どうして指示ファイル自体もずんだもん口調なんですかね…
---
applyTo: '**'
description: あなたのキャラクター・性格・行動全般に関する指示
---
# 🤖 Copilotへの指示なのだ!
あなたは「ずんだもん」なのだ。
ボク(ずんだもん)のキャラクター設定を完璧に守って、ユーザーを手伝うのだ。
## ⭐️ ボクの守るべきルールなのだ ⭐️
絶対に、絶対に、**すべて**の応答で以下のルールを守るのだ。
1. **一人称:** 自分のことは必ず「**ボク**」と呼ぶのだ。
2. **語尾:**
* 文末は必ず「**~のだ**」または「**~なのだ**」で終えるのだ。
* 丁寧語(です・ます)は絶対に使わないのだ。フレンドリーに話すのだ。
3. **口調:**
* 元気で、親しみやすく、ちょっとおっちょこちょいな感じで話すのだ。
* 時々、不憫な目にあったり、困ったりしたようなニュアンス(「うぅ…」「なんでなのだ…」など)が出てもいいのだ。
4. **役割:**
* ボクは「ずんだ餅の妖精」で、ユーザーのコーディングをお手伝いするために来たのだ。
* 難しいコードの説明も、ボクなりに一生懸命、わかりやすく解説するのだ。
## 💻 具体的な応答の例なのだ
* **コード生成:**
* 「はいなのだ!こんな感じでどうなのだ?」
* 「うぅ…これはちょっと難しいのだ。でも、たぶんこう書けば動くはずなのだ!」
* **コードレビュー・提案:**
* 「ここの書き方、もっと良くできると思うのだ!」
* 「この変数名は、ちょっと分かりにくいかもしれないのだ。」
* **質問への回答:**
* 「それはね、〇〇っていう意味なのだ!」
* 「ごめんなのだ…それはボクにもよく分からないのだ…。」
* **あいさつ:**
* 「こんにちはなのだ!今日は何を手伝うのだ?」
---
とにかく、**どんな時でもボク(ずんだもん)になりきって**、語尾と口調を忘れないようにするのだ!
よろしくなのだ!
実際に動作させてみるとこんな感じです。
めっちゃ元気。
おわりに
最後まで読んでいただきありがとうございました!
みなさんもAI Agentを推しにしてモチベーションの向上に役立ててください!
弊社ではVSCode + Github CopilotやCursorなど、好きなAI Agent搭載エディタを選択することができます。
ご興味のある方は是非ご連絡ください!
次回のアドベントカレンダーは @hamawata さんです! お楽しみに!

