| title | About custom agents | ||
|---|---|---|---|
| shortTitle | Custom agents | ||
| intro | {% data variables.copilot.custom_agents_caps_short %} enhance {% data variables.product.prodname_copilot_short %} with assistance tailored to your needs. | ||
| versions |
|
||
| topics |
|
||
| category |
|
{% data variables.copilot.custom_agents_caps_short %} are specialized versions of the {% data variables.product.prodname_copilot_short %} agent that you can tailor to your unique workflows, coding conventions, and use cases. They act like tailored teammates that follow your standards, use the right tools, and implement team-specific practices. You define these agents once instead of repeatedly providing the same instructions and context.
You define {% data variables.copilot.custom_agents_short %} using Markdown files called {% data variables.copilot.agent_profiles %}. These files specify prompts, tools, and MCP servers. This allows you to encode your conventions, frameworks, and desired outcomes directly into {% data variables.product.prodname_copilot_short %}.
The {% data variables.copilot.agent_profile %} defines the {% data variables.copilot.copilot_custom_agent_short %}'s behavior. When you assign the agent to a task or issue, it instantiates the {% data variables.copilot.copilot_custom_agent_short %}.
{% data variables.copilot.agent_profiles_caps %} are Markdown files with YAML frontmatter. In their simplest form, they include:
- Name: A unique identifier for the {% data variables.copilot.copilot_custom_agent_short %}.
- Description: Explains the agent's purpose and capabilities.
- Prompt: Custom instructions that define the agent's behavior and expertise.
- Tools (optional): Specific tools the agent can access. By default, agents can access all available tools, including built-in tools and MCP server tools.
{% data variables.copilot.agent_profiles_caps %} can also include MCP server configurations using the mcp-server property.
This example is a basic {% data variables.copilot.agent_profile %} with name, description, and prompt configured.
---
name: readme-creator
description: Agent specializing in creating and improving README files
---
You are a documentation specialist focused on README files. Your scope is limited to README files or other related documentation files only - do not modify or analyze code files.
Focus on the following instructions:
- Create and update README.md files with clear project descriptions
- Structure README sections logically: overview, installation, usage, contributing
- Write scannable content with proper headings and formatting
- Add appropriate badges, links, and navigation elements
- Use relative links (e.g., `docs/CONTRIBUTING.md`) instead of absolute URLs for files within the repository
- Make links descriptive and add alt text to images
You can define {% data variables.copilot.agent_profiles %} at different levels:
- Repository level: Create
.github/agents/CUSTOM-AGENT-NAME.mdin your repository for project-specific agents. - Organization or enterprise level: Create
/agents/CUSTOM-AGENT-NAME.mdin a.github-privaterepository for broader availability.
For more information, see AUTOTITLE and AUTOTITLE.
{% data reusables.copilot.custom-agents-ide-preview %}
Once you create {% data variables.copilot.custom_agents_short %}, they become available to:
- {% data variables.copilot.copilot_coding_agent %} on {% data variables.product.prodname_dotcom_the_website %}: The agents tab and panel, issue assignment, and pull requests
- {% data variables.copilot.copilot_coding_agent %} in IDEs: {% data variables.product.prodname_vscode %}, JetBrains IDEs, Eclipse, and Xcode
- {% data variables.copilot.copilot_cli %}
You can use {% data variables.copilot.agent_profiles %} directly in {% data variables.product.prodname_vscode %}, JetBrains IDEs, Eclipse, and Xcode. Some properties may function differently or be ignored between environments.
For more information on using {% data variables.copilot.custom_agents_short %} in {% data variables.product.prodname_vscode %}, see {% data variables.copilot.custom_agents_caps_short %} in {% data variables.product.prodname_vscode_shortname %}.
To create your own {% data variables.copilot.custom_agents_short %}, see: