docs: expand coding agent article with custom agents, skills, and repo resources

- Expand 'Specifying an Agent' into full 'Using Custom Agents' section
  with agent profile format, storage locations, and selection methods
- Add 'Agent Skills and the Coding Agent' section covering how skills
  are automatically loaded, directory structure, and SKILL.md format
- Add comparison table: Instructions vs Skills vs Custom Agents
- Add 'Leveraging Community Resources' section linking to this repo's
  agents, skills, and hooks directories
- Update best practices with skills and agent recommendations
- Update FAQ to cover both agents and skills
- Add skills article to related articles and Next Steps

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Aaron Powell
2026-02-26 14:13:06 +11:00
parent 31c41a6a1c
commit 9d4e024f24

View File

@@ -4,7 +4,7 @@ description: 'Learn how to use GitHub Copilot coding agent to autonomously work
authors: authors:
- GitHub Copilot Learning Hub Team - GitHub Copilot Learning Hub Team
lastUpdated: '2026-02-26' lastUpdated: '2026-02-26'
estimatedReadingTime: '9 minutes' estimatedReadingTime: '12 minutes'
tags: tags:
- coding-agent - coding-agent
- automation - automation
@@ -12,6 +12,7 @@ tags:
relatedArticles: relatedArticles:
- ./building-custom-agents.md - ./building-custom-agents.md
- ./automating-with-hooks.md - ./automating-with-hooks.md
- ./creating-effective-skills.md
prerequisites: prerequisites:
- Understanding of GitHub Copilot agents - Understanding of GitHub Copilot agents
- Repository with GitHub Copilot enabled - Repository with GitHub Copilot enabled
@@ -131,16 +132,46 @@ Or provide more specific direction:
Use the existing FileUpload component and S3 service. Use the existing FileUpload component and S3 service.
``` ```
### Specifying an Agent ### Using Custom Agents
You can direct the coding agent to use a specific custom agent: Custom agents let you give the coding agent a specialized persona, toolset, and instructions for specific types of work. Instead of relying on generic behavior, you can point the coding agent at an agent profile tailored for your task.
**Where custom agents live**: Agent profiles are stored as `.agent.md` files in `.github/agents/` in your repository. For organization-wide agents, place them in the root `agents/` directory.
``` ```
@copilot use the terraform-expert agent to implement this infrastructure change .github/
└── agents/
├── api-architect.agent.md
├── test-specialist.agent.md
└── security-reviewer.agent.md
```
**Selecting an agent on GitHub.com**: When prompting the coding agent or assigning it to an issue, use the dropdown menu in the agents panel to select your custom agent instead of the default.
**Selecting an agent via comment**: On any issue, mention the agent by name:
```
@copilot use the api-architect agent to implement this API endpoint
``` ```
The agent will adopt the persona, tools, and guardrails defined in that agent file. The agent will adopt the persona, tools, and guardrails defined in that agent file.
**What goes in an agent profile**: An `.agent.md` file is a Markdown file with YAML frontmatter defining the agent's name, description, available tools, and optionally MCP server configurations. The Markdown body contains the agent's behavioral instructions (up to 30,000 characters).
```markdown
---
name: test-specialist
description: Focuses on test coverage, quality, and testing best practices
tools: ["read", "edit", "search", "bash"]
---
You are a testing specialist. Analyze existing tests, identify coverage gaps,
and write comprehensive unit and integration tests. Follow best practices for
the language and framework. Never modify production code unless asked.
```
> **Tip**: Browse the [Agents Directory](/agents/) on this site for ready-to-use agent profiles you can add to your repository.
## Writing Effective Issues for the Coding Agent ## Writing Effective Issues for the Coding Agent
The coding agent is only as good as the issue it receives. Well-structured issues lead to better results. The coding agent is only as good as the issue it receives. Well-structured issues lead to better results.
@@ -204,6 +235,105 @@ Also, add a test for the Retry-After header value.
The agent will read your feedback, make changes, and push new commits to the same PR. The agent will read your feedback, make changes, and push new commits to the same PR.
## Agent Skills and the Coding Agent
Agent skills are folders of instructions, scripts, and resources that the coding agent can automatically load when relevant to a task. While custom agents define _who_ does the work, skills define _how_ to do specific types of work.
### How Skills Work with the Coding Agent
When the coding agent works on a task, it reads the `description` field in each skill's `SKILL.md` and decides whether that skill is relevant. If so, the skill's instructions are injected into the agent's context — giving it access to specialized guidance, scripts, and examples without you needing to specify anything.
This means you can add skills to your repository and the coding agent will **automatically** leverage them when appropriate.
### Where Skills Live
Skills are stored in a `skills/` subdirectory, with each skill in its own folder:
**Project skills** (specific to one repository):
```
.github/
└── skills/
├── github-actions-debugging/
│ └── SKILL.md
├── database-migrations/
│ ├── SKILL.md
│ └── scripts/
│ └── migrate.sh
└── api-testing/
├── SKILL.md
└── references/
└── test-template.ts
```
**Personal skills** (shared across all your projects):
```
~/.copilot/
└── skills/
└── code-review-checklist/
└── SKILL.md
```
### What Makes Skills Powerful
Unlike simple instructions, skills can bundle additional resources:
- **Scripts** that the agent can execute (e.g., a migration script, a code generator)
- **Templates** and examples the agent can reference
- **Data files** and reference material for specialized domains
- **Supplementary Markdown** files with detailed guidance
The `SKILL.md` file tells the agent when and how to use these resources:
```markdown
---
name: database-migrations
description: 'Guide for creating safe database migrations. Use when asked to modify database schema or create migrations.'
---
When creating database migrations, follow this process:
1. Run `./scripts/check-schema.sh` to validate current state
2. Create a new migration file following the naming convention: `YYYYMMDD_description.sql`
3. Always include a rollback section
4. Test the migration against a local database before committing
```
### Skills vs Instructions vs Agents
| Feature | Instructions | Skills | Custom Agents |
|---------|-------------|--------|---------------|
| When loaded | Always (matching file patterns) | Automatically when relevant | When explicitly selected |
| Best for | Coding standards, style guides | Specialized task guidance | Role-based personas |
| Can include scripts | No | Yes | No (but can reference skills) |
| Scope | File-pattern based | Task-based | Session-wide |
> **Tip**: Browse the [Skills Directory](/skills/) for ready-to-use skills you can add to your repository. Each skill includes a `SKILL.md` and any bundled assets needed.
## Leveraging Community Resources
This repository provides a curated collection of agents, skills, and hooks designed for the coding agent. Here's how to use them:
### Adding Agents from This Repo
1. Browse the [Agents Directory](/agents/) for agents matching your needs
2. Copy the `.agent.md` file into your repository's `.github/agents/` directory
3. The agent will be available in the dropdown when assigning work to the coding agent
### Adding Skills from This Repo
1. Browse the [Skills Directory](/skills/) for specialized skills
2. Copy the entire skill folder into your repository's `.github/skills/` directory
3. The coding agent will automatically use the skill when it's relevant to a task
### Adding Hooks from This Repo
1. Browse the [Hooks Directory](/hooks/) for automation hooks
2. Copy the `hooks.json` content into a file in `.github/hooks/` in your repository
3. Copy any referenced scripts alongside it
4. The hooks will run automatically during coding agent sessions
> **Example workflow**: Combine a `test-specialist` agent with a `database-migrations` skill and a linting hook. Assign an issue to the coding agent using the test-specialist agent — it will automatically pick up the migrations skill when relevant, and the hook ensures all code is formatted before completion.
## Hooks and the Coding Agent ## Hooks and the Coding Agent
Hooks are especially valuable with the coding agent because they provide deterministic guardrails for autonomous work: Hooks are especially valuable with the coding agent because they provide deterministic guardrails for autonomous work:
@@ -222,6 +352,8 @@ See [Automating with Hooks](../learning-hub/automating-with-hooks/) for configur
- **Invest in `copilot-setup-steps.yml`**: A reliable setup means the agent can build and test confidently. If tests are flaky, the agent will struggle. - **Invest in `copilot-setup-steps.yml`**: A reliable setup means the agent can build and test confidently. If tests are flaky, the agent will struggle.
- **Add comprehensive instructions**: The agent reads your `.github/instructions/` files. The more context you provide about patterns and conventions, the better the output. - **Add comprehensive instructions**: The agent reads your `.github/instructions/` files. The more context you provide about patterns and conventions, the better the output.
- **Create skills for repeatable tasks**: If your team frequently does a specific type of work (migrations, API endpoints, test suites), create a skill with step-by-step guidance the agent can follow automatically.
- **Use custom agents for specialized roles**: Create focused agent profiles for different types of work — a security reviewer, a test specialist, or an infrastructure expert.
- **Define hooks for formatting**: Hooks ensure the agent's code meets your style requirements automatically, reducing review friction. - **Define hooks for formatting**: Hooks ensure the agent's code meets your style requirements automatically, reducing review friction.
### Choosing the Right Tasks ### Choosing the Right Tasks
@@ -265,15 +397,17 @@ A: The agent has built-in timeouts. If it can't make progress, it will open a PR
A: Yes. The coding agent can work on multiple issues in parallel, each in its own branch. Use Mission Control on GitHub.com to track all active agent sessions. A: Yes. The coding agent can work on multiple issues in parallel, each in its own branch. Use Mission Control on GitHub.com to track all active agent sessions.
**Q: Does the coding agent use my custom agents?** **Q: Does the coding agent use my custom agents and skills?**
A: Yes. You can specify which agent to use when assigning work. The coding agent adopts that agent's persona, tools, and guardrails for the session. A: Yes. You can specify which agent to use when assigning work — the coding agent adopts that agent's persona, tools, and guardrails. Skills are loaded automatically when the agent determines they're relevant to the task, based on the skill's description.
## Next Steps ## Next Steps
- **Set Up Your Environment**: Create `.github/copilot-setup-steps.yml` for your project - **Set Up Your Environment**: Create `.github/copilot-setup-steps.yml` for your project
- **Create Skills**: [Creating Effective Skills](../learning-hub/creating-effective-skills/) — Build skills the coding agent can use automatically
- **Add Guardrails**: [Automating with Hooks](../learning-hub/automating-with-hooks/) — Ensure code quality in autonomous sessions - **Add Guardrails**: [Automating with Hooks](../learning-hub/automating-with-hooks/) — Ensure code quality in autonomous sessions
- **Build Custom Agents**: [Building Custom Agents](../learning-hub/building-custom-agents/) — Create specialized agents for the coding agent to use - **Build Custom Agents**: [Building Custom Agents](../learning-hub/building-custom-agents/) — Create specialized agents for the coding agent to use
- **Explore Configuration**: [Copilot Configuration Basics](../learning-hub/copilot-configuration-basics/) — Set up repository-level customizations - **Explore Configuration**: [Copilot Configuration Basics](../learning-hub/copilot-configuration-basics/) — Set up repository-level customizations
- **Browse Community Resources**: Explore the [Agents](/agents/), [Skills](/skills/), and [Hooks](/hooks/) directories for ready-to-use resources
--- ---