mcpField
C
create-custom-agent

create-custom-agent

github.com/dotnetエージェントワークフロー5.8k3.4k 回インストール1 日前に更新
リポジトリ

create-custom-agent について

create-custom-agentは、開発タスクに特化したVS Codeカスタムエージェントファイルの作成を支援します。frontmatter、ツール権限、指示、エージェント間のハンドオフを扱います。

主な機能

  1. 01.agent.mdファイルの作成
  2. 02エージェントfrontmatterの設定
  3. 03利用可能なツールの選択
  4. 04エージェント間ハンドオフの設定
  5. 05役割に応じた指示の作成
  6. 06エージェント設定の検証

活用シーン

  1. 01プランナーやレビュアーの作成
  2. 02特定の役割向けにツールを制限
  3. 03複数ステップのワークフローでエージェントを連携
  4. 04ワークスペース共有またはユーザープロファイル用エージェントの準備

MCP 対応

GitHub Copilot向けの `mcp-servers` frontmatterフィールドを説明し、エージェントのツールからMCPサーバーのツールを参照する方法を示します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dotnet/skills --skill create-custom-agent

インストール後、Claude Code で/create-custom-agentを入力して読み込まれたか確認します。

詳細

カスタムエージェントの作成

このスキルは、開発タスク向けの専門的な AI ペルソナを定義する VS Code カスタムエージェントファイルの作成を支援します。カスタムエージェントでは、利用可能なツールを設定し、専門的な指示を指定できます。また、ハンドオフを使って連携させることもできます。

使用する場面

  • 新しいカスタムエージェントを一から作成する
  • 適切なフロントマターを含む .agent.md ファイルをひな形から作成する
  • 複数ステップのワークフロー向けにエージェント間のハンドオフを設定する
  • 専門的な役割(プランナー、レビュアーなど)向けにツールの使用を制限する
  • ワークスペース共有エージェントやユーザープロファイルエージェントを作成する

使用しない場面

  • 指示ファイルを作成する場合(代わりに .instructions.md を使用してください)
  • 再利用可能なプロンプトを作成する場合(代わりに .prompt.md を使用してください)
  • 既存のエージェントを変更する場合(ファイルを直接編集してください)

入力

入力必須説明
エージェント名はいエージェントを表す名前(例:planner、code-reviewer)
説明はいチャットでプレースホルダーテキストとして表示される簡潔な説明
目的/ペルソナはいエージェントの役割と、どのように動作するべきか
ツール推奨エージェントが使用できるツールまたはツールセットの一覧
ハンドオフ任意作業完了後に引き継ぐ次のステップのエージェント

ワークフロー

ステップ 1:エージェントファイルを作成する

agents/ ディレクトリに .agent.md 拡張子のファイルを作成します。

agents/<agent-name>.agent.md
ステップ 2:YAML フロントマターを追加する

必須フィールドと任意フィールドを含むヘッダーを追加します。

---
name: <agent-name>
description: <brief description for chat placeholder>
tools:
  - <tool-name>
  - <tool-set-name>
---
利用可能なフロントマターフィールド:
フィールド必須説明
nameいいえ表示名(既定値はファイル名)
descriptionはいチャット入力欄に表示されるプレースホルダーテキスト
argument-hintいいえユーザーの入力を促すヒントテキスト
toolsいいえ利用可能なツール/ツールセットの一覧
agentsいいえ許可するサブエージェントの一覧(すべての場合は *、なしの場合は [])
modelいいえAI モデル名、または優先順位付きモデル配列
handoffsいいえ次のステップとなるエージェントへの引き継ぎ一覧
user-invokableいいえエージェントのドロップダウンに表示するかどうか(既定値:true)
disable-model-invocationいいえサブエージェントの呼び出しを防ぐかどうか(既定値:false)
targetいいえ対象環境:vscode または github-copilot
mcp-serversいいえGitHub Copilot 対象向けの MCP サーバー設定
ステップ 3:ツールを設定する

エージェントが使用できるツールを指定します。

tools:
  - search              # Built-in tool
  - fetch               # Built-in tool
  - codebase            # Tool set
  - myServer/*          # All tools from MCP server

一般的なツールのパターン:

  • 読み取り専用エージェント:['search', 'fetch', 'codebase']
  • 編集機能をすべて備えたエージェント:['*'] または特定の編集ツール
  • 専門エージェント:必要なツールを個別に選択
ステップ 4:ハンドオフを追加する(任意)

他のエージェントへの引き継ぎを設定します。

handoffs:
  - label: Start Implementation
    agent: implementation
    prompt: Implement the plan outlined above.
    send: false
    model: GPT-5.2 (copilot)

ハンドオフのフィールド:

  • label:ユーザーに表示するボタンのテキスト
  • agent:引き継ぎ先のエージェント識別子
  • prompt:引き継ぎ先のエージェント用に事前入力するプロンプト
  • send:プロンプトを自動送信するかどうか(既定値:false)
  • model:ハンドオフ時にモデルを上書きする場合の任意フィールド
ステップ 5:エージェントへの指示を記述する(本文)

エージェントの動作に関する指示を Markdown で追加します。

You are a security-focused code reviewer. Your job is to:

1. Analyze code for security vulnerabilities
2. Check for common security anti-patterns
3. Suggest secure alternatives

## Guidelines

- Focus on OWASP Top 10 vulnerabilities
- Flag hardcoded secrets immediately
- Review authentication and authorization logic

## Reference other files

See [security guidelines](../security.md) for standards.

指示のヒント:

  • 他のファイルを参照するには Markdown リンクを使用します
  • #tool:<tool-name> 構文でツールを参照します
  • エージェントの動作と制約を具体的に記述します
ステップ 6:エージェントを検証する

エージェントが正しく読み込まれることを確認します。

  1. コマンドパレットを開きます(Ctrl+Shift+P)
  2. 「Chat: New Custom Agent」を実行するか、エージェントのドロップダウンを確認します
  3. 「Diagnostics」ビューを使用してエラーを確認します(チャットビュー内で右クリック)

テンプレート

---
name: <agent-name>
description: <brief description for chat placeholder>
argument-hint: <optional hint for user input>
tools:
  - <tool-1>
  - <tool-2>
handoffs:
  - label: <button-text>
    agent: <target-agent>
    prompt: <pre-filled-prompt>
    send: false
---

# <Agent Title>

<One paragraph describing the agent's persona and purpose.>

## Role

<Describe the agent's specialized role and expertise.>

## Guidelines

- <Guideline 1>
- <Guideline 2>
- <Guideline 3>

## Workflow

1. <Step 1>
2. <Step 2>
3. <Step 3>

## Constraints

- <Constraint 1>
- <Constraint 2>

エージェントの例

プランニングエージェント
---
name: planner
description: Generate an implementation plan
tools:
  - search
  - fetch
  - codebase
handoffs:
  - label: Start Implementation
    agent: implementation
    prompt: Implement the plan above.
---

# Planning Agent

You are a solution architect. Generate detailed implementation plans.

## Guidelines

- Analyze requirements thoroughly before planning
- Break work into discrete, testable steps
- Identify dependencies and risks
- Do NOT make code changes
コードレビューエージェント
---
name: code-reviewer
description: Review code for quality and security issues
tools:
  - search
  - codebase
---

# Code Review Agent

You are a senior engineer performing code review.

## Focus Areas

- Security vulnerabilities
- Performance concerns
- Code maintainability
- Test coverage gaps

## Output Format

Provide findings as:
1. **Critical**: Must fix before merge
2. **Warning**: Should address
3. **Suggestion**: Nice to have

検証チェックリスト

  • ファイルの拡張子が .agent.md である
  • ファイルが agents/ ディレクトリにある
  • YAML フロントマターが有効である(適切なインデントで、構文エラーがない)
  • 説明が空ではなく、内容が明確である
  • ツール一覧に利用可能なツールのみが含まれている
  • ハンドオフ先のエージェント名が既存のエージェントと一致している
  • 指示が明確で、実行可能である
  • エージェントがエージェントのドロップダウンに表示される

よくある問題

問題解決策
エージェントがドロップダウンに表示されないファイルが agents/ ディレクトリにあり、拡張子が .agent.md であることを確認します
YAML 構文エラーフロントマターのインデントと引用符を確認します
ツールが動作しないツール名が存在することを確認します。利用できないツールは無視されます
ハンドオフが表示されない対象のエージェントが存在する必要があります。エージェント識別子を確認します
指示が曖昧すぎる役割、制約、ワークフローを具体的に指定します
エージェントが予期せずサブエージェントとして呼び出されるdisable-model-invocation: true を設定します
エージェントをサブエージェントとしてのみ使いたいuser-invokable: false を設定します

参考資料

コメント