make-custom-agent

Create custom GitHub Copilot agents as declarative prompt files or VS Code chat participants.

14.8k|3.4k|Updated Jan 23, 2014
One-click install
npx skills add https://github.com/dotnet/efcore --skill make-custom-agent
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: make-custom-agent
Source: https://github.com/dotnet/efcore/tree/main/.agents/skills/make-custom-agent
Command: npx skills add https://github.com/dotnet/efcore --skill make-custom-agent

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building a custom GitHub Copilot agent involves choosing between declarative prompt files, VS Code extension chat participants, and GitHub App Copilot Extensions, each with different configuration formats and pitfalls. This Skill guides you through selecting the right agent type and scaffolding it correctly.

Core Features & Use Cases

  • Declarative Agent Scaffolding: Generate .github/agents/<name>.md prompt files with valid frontmatter fields like name, description, tools, model, and handoffs.
  • Extension-Based Chat Participants: Implement VS Code chat participants in TypeScript with request handlers, tool calling, and package.json contribution points.
  • Validation Checklist: Verify naming rules, tool availability, handoff targets, and avoid conflicts with built-in agents like @workspace.
  • Use Case: You want an @-invokable Copilot agent that answers questions about your internal API. Use this Skill to scaffold a declarative agent with a scoped system prompt, restricted read-only tools, and a handoff to an implementation agent.

Quick Start

Create a custom GitHub Copilot agent named api-expert that answers questions about our REST API using only search and codebase tools.

Frequently Asked Questions about make-custom-agent

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a custom GitHub Copilot agent?

Create a Markdown file in .github/agents/ with YAML frontmatter containing a name and description, followed by the agent's system prompt. VS Code and GitHub Copilot discover these declarative agents automatically and make them @-invokable.

What is the difference between a Copilot agent and an Agent Skill?

Agents own the full conversational interaction and can orchestrate tools, call APIs, and maintain their own prompt strategies. Skills provide reusable instructions loaded on demand within an existing conversation.

When should I use a VS Code extension chat participant instead of a declarative agent?

Use an extension-based participant when you need full control over the request handler, VS Code API access, or programmatic tool calling. Declarative agents only support a scoped system prompt without custom code.

Can a custom Copilot agent work on github.com and Visual Studio?

Yes, but only through a GitHub App acting as a Copilot Extension, which receives chat requests via a webhook and streams responses with Server-Sent Events. Declarative agents and VS Code participants have narrower surface availability.

Why is my custom agent not appearing in the Copilot chat dropdown?

Check that the file is in .github/agents/, the frontmatter YAML is valid, and user-invocable is not set to false. Also verify the name is lowercase with hyphens and does not conflict with built-in participants.

How do I prevent my agent from being invoked as a subagent?

Set disable-model-invocation: true in the agent's frontmatter to block subagent invocation. Conversely, set user-invocable: false if the agent should only run as a subagent and stay hidden from the dropdown.