Agent Skills – Dạy Copilot những kỹ năng chuyên biệt¶
Agent Skills là gì?¶
Agent Skills là các thư mục chứa hướng dẫn (instructions), scripts và tài nguyên (resources) mà Copilot có thể tự động tải vào khi chúng liên quan đến prompt của bạn. Nói cách khác, skills cho phép bạn "dạy" Copilot cách thực hiện các tác vụ chuyên biệt theo một cách lặp lại và nhất quán.
Agent Skills là một tiêu chuẩn mở (open standard) được Anthropic (công ty phát triển Claude) giới thiệu vào tháng 12/2025 và công bố dưới dạng đặc tả mở tại agentskills.io. Ý tưởng cốt lõi là tạo ra một format chung, tương tự như cách MCP chuẩn hóa giao tiếp giữa AI và công cụ bên ngoài – Agent Skills chuẩn hóa cách dạy AI các kỹ năng chuyên biệt.
Nhờ là tiêu chuẩn mở, cùng một bộ skills có thể hoạt động trên nhiều hệ thống AI agent khác nhau mà không cần chỉnh sửa. Tính đến tháng 4/2026, các công cụ đã hỗ trợ Agent Skills bao gồm: Claude Code, GitHub Copilot (VS Code, CLI, Coding Agent), OpenAI Codex, Cursor, Gemini CLI, và nhiều công cụ khác. Điều này có nghĩa là khi bạn tạo một skill cho dự án, tất cả thành viên trong team đều có thể sử dụng nó – bất kể họ đang dùng Copilot, Claude Code hay Codex.
Các thư mục lưu trữ skills cũng phản ánh tính cross-platform này: ngoài .github/skills/, các đường dẫn như .claude/skills/ hay .agents/skills/ đều được hỗ trợ, giúp skills hoạt động liền mạch trên nhiều nền tảng.
So sánh Agent Skills với Custom Instructions và Custom Agent¶
| Đặc điểm | Custom Instructions | Custom Agent | Agent Skills |
|---|---|---|---|
| Mục đích | Quy tắc coding chung cho team | Vai trò/persona chuyên biệt | Kỹ năng/workflow chuyên biệt |
| Phạm vi | Mọi tương tác chat | Khi chọn agent đó | Tự động khi relevant |
| Nội dung | Coding guidelines, conventions | Instructions + tools + handoffs | Instructions + scripts + resources |
| Kích hoạt | Luôn luôn | Chọn thủ công | Copilot tự phát hiện |
| File | .github/copilot-instructions.md |
.agent.md |
SKILL.md trong thư mục skill |
| Cross-platform | Chỉ Copilot Chat | Chỉ VS Code/IDE | VS Code, CLI, Coding Agent |
Điểm khác biệt quan trọng nhất: Custom Instructions chủ yếu định nghĩa các quy tắc coding (guidelines), trong khi Agent Skills cho phép định nghĩa các khả năng và workflow chuyên biệt, có thể bao gồm cả scripts, ví dụ mẫu và tài nguyên bổ sung.
Cấu trúc của một Agent Skill¶
Mỗi skill là một thư mục chứa file SKILL.md (bắt buộc) và các tài nguyên bổ sung (tùy chọn):
my-skill/
├── SKILL.md # File chính (bắt buộc)
├── examples/ # Ví dụ mẫu (tùy chọn)
│ └── example.ts
├── scripts/ # Scripts hỗ trợ (tùy chọn)
│ └── setup.sh
└── templates/ # Templates (tùy chọn)
└── component.hbs
File SKILL.md¶
File SKILL.md là trung tâm của mỗi skill, bao gồm hai phần:
1) Header (YAML Frontmatter)
---
name: my-skill-name
description: Mô tả ngắn về skill và khi nào Copilot nên sử dụng nó
license: MIT # (tùy chọn)
---
| Trường | Bắt buộc | Mô tả |
|---|---|---|
name |
Có | Tên duy nhất của skill, viết thường, dùng dấu gạch ngang thay khoảng trắng |
description |
Có | Mô tả skill làm gì và khi nào nên dùng – Copilot dựa vào đây để quyết định có tải skill hay không |
license |
Không | Giấy phép áp dụng cho skill |
2) Body (Markdown)
Phần body chứa hướng dẫn chi tiết cho Copilot khi sử dụng skill, bao gồm:
- Mục tiêu và phạm vi của skill
- Các bước thực hiện cụ thể
- Quy tắc và ràng buộc
- Ví dụ minh họa
- Tham chiếu đến các file trong thư mục skill
Vị trí lưu trữ Skills¶
Project Skills – Dành riêng cho một repository¶
Lưu trong thư mục dự án để chia sẻ với team:
your-repo/
└── .github/skills/
└── my-skill/
└── SKILL.md
Các đường dẫn thay thế cũng được hỗ trợ: .claude/skills/ hoặc .agents/skills/.
Project skills phù hợp cho các skill liên quan đến codebase cụ thể, ví dụ: cách deploy dự án, convention riêng của team, cách tạo component theo pattern của dự án.
Personal Skills – Sử dụng xuyên suốt các dự án¶
Lưu trong thư mục home để dùng ở mọi workspace:
~/.copilot/skills/
└── my-skill/
└── SKILL.md
Các đường dẫn thay thế: ~/.claude/skills/ hoặc ~/.agents/skills/.
Personal skills phù hợp cho các skill mang tính cá nhân hoặc chung, ví dụ: phong cách viết commit message, cách viết documentation, workflow review code cá nhân.
Cách tạo Agent Skill¶
Cách 1: Sử dụng lệnh /create-skill¶
Trong Copilot Chat, gõ /create-skill và mô tả skill bạn muốn tạo. Copilot sẽ hỏi thêm một số câu hỏi để hiểu rõ yêu cầu, sau đó tự động tạo file SKILL.md với cấu trúc thư mục, hướng dẫn và frontmatter phù hợp.
Cách 2: Tạo thủ công¶
- Tạo thư mục mới trong
.github/skills/(project) hoặc~/.copilot/skills/(personal) - Tạo file
SKILL.mdtrong thư mục đó - Viết YAML frontmatter với
namevàdescription - Viết phần body với hướng dẫn chi tiết
Cách hoạt động¶
Khi bạn gửi prompt trong Copilot Chat (hoặc khi Coding Agent xử lý tác vụ), Copilot sẽ:
- Quét tất cả skills có sẵn (cả project và personal)
- So khớp description của từng skill với nội dung prompt của bạn
- Tải skill phù hợp vào context của agent
- Áp dụng hướng dẫn trong skill để thực hiện tác vụ
Quá trình này hoàn toàn tự động – bạn không cần chỉ định skill nào sẽ được dùng. Copilot dựa vào trường description trong frontmatter để quyết định skill nào liên quan đến prompt hiện tại.
Lưu ý: Vì Copilot dựa vào
descriptionđể chọn skill, hãy viết description cụ thể và rõ ràng về những tình huống nào skill nên được kích hoạt. Một description mơ hồ có thể khiến skill không bao giờ được sử dụng, hoặc ngược lại, bị kích hoạt khi không cần thiết.
Ví dụ Agent Skill¶
Ví dụ 1: Skill tạo React Component¶
.github/skills/create-react-component/
├── SKILL.md
└── templates/
└── component-template.tsx
SKILL.md:
---
name: create-react-component
description: Tạo React component mới theo convention của dự án. Sử dụng khi được yêu cầu tạo component, page hoặc UI element mới.
---
# Tạo React Component
Khi tạo component mới, hãy tuân theo các quy tắc sau:
## Cấu trúc file
- Mỗi component nằm trong thư mục riêng: `src/components/<ComponentName>/`
- File chính: `index.tsx`
- File styles: `styles.module.css`
- File test: `__tests__/<ComponentName>.test.tsx`
## Conventions
- Sử dụng functional components với TypeScript
- Props interface đặt tên theo pattern: `<ComponentName>Props`
- Export default component
- Sử dụng CSS Modules cho styling
## Template
Tham khảo template tại [component-template.tsx](./templates/component-template.tsx)
Ví dụ 2: Skill cho Database Migration¶
---
name: create-migration
description: Tạo database migration mới. Sử dụng khi cần thay đổi schema database, thêm/sửa/xóa bảng hoặc cột.
---
# Database Migration
## Quy trình tạo migration
1. Tạo file migration mới bằng lệnh: `npx prisma migrate dev --name <tên_migration>`
2. Viết migration SQL trong file được tạo
3. Chạy migration: `npx prisma migrate dev`
4. Cập nhật Prisma schema nếu cần
## Quy tắc đặt tên
- Tên migration mô tả hành động: `add_email_to_users`, `remove_legacy_columns`
- Không dùng ngày tháng trong tên (Prisma tự thêm timestamp)
## Lưu ý quan trọng
- LUÔN tạo backup trước khi chạy migration trên production
- Migration phải có thể rollback được
- Không xóa cột đang được sử dụng – đánh dấu deprecated trước
Best Practices¶
1. Viết description chính xác¶
Description là yếu tố quyết định skill có được kích hoạt hay không. Hãy viết rõ ràng, bao gồm:
- Skill làm gì
- Khi nào nên sử dụng (trigger conditions)
- Từ khóa quan trọng mà người dùng có thể dùng trong prompt
2. Giữ skill tập trung vào một mục đích¶
Mỗi skill nên giải quyết một vấn đề cụ thể. Thay vì tạo một "super skill" làm mọi thứ, hãy chia thành nhiều skills nhỏ, chuyên biệt.
3. Cung cấp ví dụ cụ thể¶
Ví dụ code, template và mẫu output giúp Copilot hiểu chính xác bạn muốn kết quả như thế nào.
4. Tận dụng tài nguyên bổ sung¶
Đừng chỉ viết hướng dẫn – hãy kèm theo scripts, templates, và examples trong thư mục skill. Copilot có thể đọc và sử dụng chúng.
5. Chia sẻ skills trong team¶
Commit project skills vào repository để cả team cùng sử dụng. Điều này đảm bảo mọi người đều tuân theo cùng một quy trình và convention.
Tài nguyên tham khảo¶
- awesome-copilot: Repository github/awesome-copilot tổng hợp các skills, agents, instructions và hooks từ cộng đồng – là nguồn tham khảo và học hỏi rất tốt.
- Tài liệu chính thức: About agent skills - GitHub Docs