こんにちは、エージェントを増やしすぎて収拾がつかなくなったアーキテクトのやまぱんです 🙋
補足コメントや質問、いいね、拡散、ぜひお願いします 🥺!
間違っていたら 優しく 教えてください!
TL;DR
エージェントの .agent.md ファイルの frontmatter に user-invokable: false を追加するだけで、ピッカー(エージェントドロップダウン)から非表示にできます。サブエージェントとしては引き続き呼び出せるので、Orchestrator パターンとの相性が抜群です 💡
😩 困ったこと:エージェントドロップダウンが大渋滞
VS Code の Custom Agents にハマって、Orchestrator、Planner、Researcher、Writer、Reviewer……と .github/agents/ にどんどんエージェントを追加していった結果、 ドロップダウンにずらっとエージェントが並ぶ ようになりました。
↓ こんな感じ 😇
普段使うのは Orchestrator ともう 1〜2 個 くらいなのに、ドロップダウンを開くたびに 10 個以上のエージェントが出てきて「どれだっけ……」となる始末。
✅ 解決策:frontmatter に 1 行足すだけ
サブエージェント専用のファイルに user-invokable: false を追加するだけです。
# 例:writer.agent.md(サブエージェント)
---
name: writer
description: "記事を執筆するテクニカルライター"
user-invokable: false # ← これだけ!ピッカーに出なくなる
tools: ["codebase", "fetch"]
---
これで ピッカーには表示されないけど、Orchestrator からサブエージェントとして呼び出せる 状態になります。ユーザーが直接選ぶ必要のないエージェントは全部これを付けておけば、ピッカーがスッキリしますよ〜!
Before / After のイメージ
| 状態 | ピッカーに表示されるエージェント |
|---|---|
| Before | Orchestrator, Planner, Researcher, Writer, Reviewer, General, WordPress ... |
| After | Orchestrator, General(必要なものだけ!) |
📝 補足:他のアクセス制御オプション
user-invokable 以外にも制御オプションがあります。詳しくは 公式ドキュメント を参照してください。ここではさらっと紹介だけ。
disable-model-invocation
---
disable-model-invocation: true # 他のエージェントからサブエージェントとして呼ばれなくなる
---
「ユーザーが直接使うけど、他のエージェントから勝手に呼ばれたくない」場合に使います。
agents リスト(親側で指定)
# orchestrator.agent.md
---
tools: ["agent"] # サブエージェント呼び出し用(agents リストを使うなら必須)
agents:
- writer
- reviewer
---
親エージェントの frontmatter に agents リストを書くと、 リストに指定したエージェントだけをサブエージェントとして呼び出せる ようになります。disable-model-invocation: true のエージェントでも、agents リストに明示すればオーバーライドできます。
旧プロパティに注意:
inferプロパティは deprecated です。user-invokableとdisable-model-invocationに分離されたので、まだ使っている方は置き換えましょう。
⚠️ 注意:サブディレクトリの罠
これは私がハマった実体験なんですが、エージェントが増えてきたので .github/agents/executors/ のようにサブディレクトリで整理しようとしたら、 VS Code に認識されなくなりました。
.github/agents/ は 直下のファイルだけをスキャン するので、サブフォルダに入れると runSubagent でも呼び出せません。フォルダを分けず、フラットに置く必要があります(2026 年 2 月時点)。
ピッカーがスッキリすると、エージェント切り替えのストレスが減って開発に集中できますよ〜!
皆さんも快適な GitHub Copilot ライフをお過ごしください 🚀
参考
- Custom agents in VS Code
- Subagents in VS Code
