Skill là một tập hợp các hướng dẫn — được đóng gói trong một thư mục đơn giản — giúp Claude biết cách xử lý các tác vụ hoặc quy trình công việc cụ thể. Thay vì phải giải thích lại sở thích, quy trình và kiến thức chuyên môn trong mỗi cuộc trò chuyện, skill cho phép bạn dạy Claude một lần và hưởng lợi mãi mãi.
- Tạo giao diện frontend từ đặc tả kỹ thuật
- Thực hiện nghiên cứu với phương pháp nhất quán
- Tạo tài liệu theo phong cách của nhóm
- Điều phối các quy trình nhiều bước lặp đi lặp lại
- Yêu cầu kỹ thuật và các thực hành tốt nhất về cấu trúc skill
- Các mẫu cho skill độc lập và quy trình được tăng cường bởi MCP
- Các mẫu hoạt động tốt trong nhiều trường hợp sử dụng
- Cách kiểm thử, cải tiến và phân phối skill của bạn
Skill là gì?
Skill là một thư mục chứa các thành phần sau:
| Tệp / Thư mục | Trạng thái | Mô tả |
|---|---|---|
SKILL.md | Bắt buộc | Hướng dẫn dạng Markdown với YAML frontmatter |
scripts/ | Tùy chọn | Mã thực thi (Python, Bash, v.v.) |
references/ | Tùy chọn | Tài liệu được tải khi cần |
assets/ | Tùy chọn | Template, font, biểu tượng dùng trong đầu ra |
Nguyên tắc thiết kế cốt lõi
- Cấp độ 1 — YAML frontmatter: Luôn được tải trong system prompt. Cung cấp vừa đủ để Claude biết khi nào dùng skill.
- Cấp độ 2 — Phần thân SKILL.md: Được tải khi Claude cho rằng skill phù hợp. Chứa toàn bộ hướng dẫn.
- Cấp độ 3 — Tệp liên kết: Các tệp bổ sung mà Claude điều hướng và khám phá khi cần thiết.
- Khả năng kết hợp: Claude có thể tải nhiều skill đồng thời — skill của bạn nên hoạt động tốt cùng những skill khác.
- Khả năng di chuyển: Skill hoạt động như nhau trên Claude.ai, Claude Code và API — một lần tạo, dùng mọi nơi.
Skill + MCP: Phép ẩn dụ nhà bếp
- Kết nối Claude với dịch vụ (Notion, Asana, Linear…)
- Cung cấp truy cập dữ liệu thời gian thực
- Claude có thể làm gì
- Dạy Claude cách dùng dịch vụ hiệu quả
- Nắm bắt quy trình và thực hành tốt nhất
- Claude nên làm như thế nào
Bắt đầu từ trường hợp sử dụng
Trước khi viết bất kỳ mã nào, hãy xác định 2–3 trường hợp sử dụng cụ thể mà skill cần hỗ trợ.
# Ví dụ định nghĩa trường hợp sử dụng tốt
Trường hợp sử dụng: Lập kế hoạch Sprint dự án
Điều kiện kích hoạt:
"giúp tôi lập kế hoạch sprint"
"tạo task cho sprint"
Các bước:
1. Lấy trạng thái dự án hiện tại từ Linear (qua MCP)
2. Phân tích tốc độ và năng lực nhóm
3. Đề xuất thứ tự ưu tiên tác vụ
4. Tạo task trong Linear với nhãn và ước tính
Kết quả: Sprint được lập kế hoạch đầy đủ với task đã tạo
Ba danh mục trường hợp sử dụng phổ biến
Yêu cầu kỹ thuật
# Cấu trúc thư mục skill
your-skill-name/
SKILL.md # Bắt buộc
scripts/ # Tùy chọn
process_data.py
validate.sh
references/ # Tùy chọn
api-guide.md
assets/ # Tùy chọn
report-template.md
- Tên tệp phải là chính xác
SKILL.md— phân biệt chữ hoa/thường - Thư mục dùng kebab-case:
notion-project-setup✓ - Không dùng khoảng trắng, dấu gạch dưới hay chữ hoa trong tên thư mục
- Không đặt
README.mdtrong thư mục skill
YAML Frontmatter
YAML frontmatter là cách Claude quyết định có tải skill của bạn hay không. Đây là phần quan trọng nhất.
--- Định dạng tối thiểu bắt buộc ---
---
name: your-skill-name
description: Nó làm gì. Dùng khi người dùng yêu cầu [cụm từ cụ thể].
---
--- Tất cả trường tùy chọn ---
---
name: skill-name
description: [description bắt buộc]
license: MIT
allowed-tools: "Bash(python:*) Bash(npm:*) WebFetch"
metadata:
author: Tên Công ty
version: 1.0.0
mcp-server: ten-server
category: nang-suat
---
Viết trường description hiệu quả
Cấu trúc: [Skill làm gì] + [Khi nào dùng] + [Khả năng chính]
- Quá mơ hồ: "Giúp đỡ với các dự án."
- Thiếu điều kiện kích hoạt: "Tạo hệ thống tài liệu phức tạp."
- Cụ thể: "Phân tích tệp Figma, tạo tài liệu bàn giao cho nhà phát triển. Dùng khi người dùng tải lên tệp .fig hoặc yêu cầu 'đặc tả thiết kế'."
- Có cụm từ kích hoạt: "…khi người dùng đề cập 'sprint', 'Linear tasks'…"
Ba lĩnh vực kiểm thử cốt lõi
- ✅ Kích hoạt với tác vụ rõ ràng: "Giúp tôi thiết lập workspace mới"
- ✅ Kích hoạt với yêu cầu được diễn đạt khác: "Tôi cần tạo một dự án"
- 🚫 Không kích hoạt với chủ đề không liên quan: "Thời tiết ở Hà Nội?"
- Đầu ra hợp lệ được tạo ra
- Gọi API thành công, không có lỗi
- Xử lý lỗi hoạt động đúng
- Các trường hợp biên được bao phủ
- 15 tin nhắn qua lại
- 3 lần gọi API thất bại
- 12,000 token tiêu thụ
- Chỉ 2 câu hỏi làm rõ
- 0 lỗi gọi API
- 6,000 token tiêu thụ
Tín hiệu để cải tiến
| Triệu chứng | Nguyên nhân | Giải pháp |
|---|---|---|
| Skill không tự động tải | Description quá mơ hồ | Thêm cụm từ kích hoạt cụ thể hơn |
| Skill tải cho query không liên quan | Description quá chung | Thêm điều kiện kích hoạt âm |
| Kết quả không nhất quán | Hướng dẫn không rõ ràng | Cải thiện hướng dẫn, thêm xử lý lỗi |
Mô hình phân phối
| Trường hợp sử dụng | Nền tảng phù hợp |
|---|---|
| Người dùng cuối tương tác trực tiếp | Claude.ai / Claude Code |
| Kiểm thử thủ công trong phát triển | Claude.ai / Claude Code |
| Ứng dụng dùng skill theo chương trình | API |
| Triển khai sản xuất quy mô lớn | API |
| Pipeline tự động & hệ thống agent | API |
Cách tiếp cận được khuyến nghị
- Repository công khai cho skill mã nguồn mở
- README rõ ràng với hướng dẫn cài đặt
- Ví dụ sử dụng và ảnh chụp màn hình
- Liên kết đến skill từ tài liệu MCP
- Giải thích giá trị của việc dùng cả hai cùng nhau
- Cung cấp hướng dẫn bắt đầu nhanh
# Hướng dẫn cài đặt mẫu trong README
## Cài đặt skill [Dịch vụ của bạn]
1. Tải xuống: git clone https://github.com/yourcompany/skills
2. Cài đặt: Claude.ai › Cài đặt › Skills › Tải lên skill
3. Bật: Toggle on [Dịch vụ] skill + đảm bảo MCP đã kết nối
4. Kiểm thử: "Thiết lập dự án mới trong [Dịch vụ]"
5 mẫu thiết kế skill phổ biến
Xử lý sự cố thường gặp
- Lỗi "Không tìm thấy SKILL.md": Đổi tên thành đúng
SKILL.md(phân biệt chữ hoa/thường) - Lỗi "Frontmatter không hợp lệ": Đảm bảo có
---ở đầu và cuối frontmatter - Lỗi "Tên skill không hợp lệ": Đổi sang kebab-case:
my-cool-skill
# SAI — thiếu dấu phân cách
name: my-skill
description: Does things
# ĐÚNG
---
name: my-skill
description: Does things
---
- Không kích hoạt: Description quá mơ hồ — thêm cụm từ kích hoạt người dùng thực sự nói
- Kích hoạt quá nhiều: Thêm điều kiện âm vào description: "KHÔNG dùng cho khám phá dữ liệu đơn giản"
- Gỡ lỗi nhanh: Hỏi Claude "Khi nào bạn sẽ dùng skill [tên]?" — Claude sẽ trích dẫn description để bạn điều chỉnh
- Hướng dẫn thực hành tốt nhất — docs.anthropic.com
- Tài liệu Skill API & Tham chiếu API
- Tài liệu MCP (Model Context Protocol)
- Blog kỹ thuật: Giới thiệu Agent Skills
- GitHub:
anthropics/skills— Skill do Anthropic tạo ra để tùy chỉnh - Thư mục Skill Đối tác: Asana, Canva, Figma, Sentry, Zapier…
- Claude Developers Discord — câu hỏi kỹ thuật
- GitHub Issues:
anthropics/skills/issues— báo cáo lỗi
Trước khi bắt đầu
Trong quá trình phát triển
---< >) ở bất kỳ đâuTrước khi tải lên
Sau khi tải lên
Tổng hợp các thuật ngữ kỹ thuật xuất hiện trong tài liệu này, giải thích theo ngôn ngữ đơn giản dành cho người mới.
Định dạng văn bản dùng để lưu trữ dữ liệu theo kiểu key: value (khóa: giá trị), dễ đọc hơn nhiều so với JSON hay XML. Dùng nhiều trong các file cấu hình.
# Ví dụ YAML đơn giản
name: my-skill
version: 1.0
tags:
- productivity
- automation
Khối thông tin mô tả nằm ở đầu một tệp, được đặt giữa hai dòng ---. Máy tính đọc phần này để hiểu tệp là gì trước khi đọc nội dung thực sự. Tương tự như trang bìa của một cuốn sách.
--- <-- bắt đầu frontmatter
name: my-skill
description: Làm điều gì đó hữu ích.
--- <-- kết thúc frontmatter
# Nội dung thực sự bắt đầu từ đây
Cách viết văn bản có định dạng (tiêu đề, in đậm, danh sách…) bằng các ký tự đơn giản, không cần phần mềm đặc biệt. File Markdown thường có đuôi .md.
# Tiêu đề lớn
## Tiêu đề nhỏ hơn
**In đậm** *In nghiêng*
- Mục danh sách 1
- Mục danh sách 2
Giao thức tiêu chuẩn cho phép Claude kết nối với các dịch vụ bên ngoài như Notion, Asana, GitHub, Slack… MCP giống như "ổ cắm điện tiêu chuẩn" — bất kỳ dịch vụ nào hỗ trợ MCP đều có thể kết nối với Claude theo cùng một cách.
Giao diện lập trình ứng dụng — tức là "cổng giao tiếp" giữa các phần mềm. Khi một ứng dụng gọi API của dịch vụ khác, nó đang gửi yêu cầu và nhận kết quả theo quy tắc đã định sẵn, giống như gọi món ở nhà hàng qua thực đơn chuẩn.
Cách viết tên file hoặc biến bằng chữ thường, các từ nối với nhau bằng dấu -. Gọi là "kebab" vì trông như các miếng thịt xiên que.
my-cool-skill notion-project-setup✗ Sai
My Cool Skill notion_project_setup
Đoạn hướng dẫn được nạp vào Claude trước khi cuộc trò chuyện bắt đầu, người dùng thường không thấy. Nó định hình cách Claude hành xử trong toàn bộ phiên làm việc. Phần YAML frontmatter của skill được đưa vào đây.
"Bộ nhớ làm việc" của Claude trong một cuộc trò chuyện — tất cả những gì Claude có thể "nhìn thấy" cùng lúc: lịch sử chat, hướng dẫn, tài liệu đã tải… Context window có giới hạn, vì vậy skill được thiết kế để dùng token hiệu quả nhất có thể.
Đơn vị nhỏ nhất mà mô hình AI đọc và tạo ra — thường là một từ hoặc một phần của từ. Ví dụ, "xin chào" ≈ 2 token. Token quan trọng vì nó ảnh hưởng đến tốc độ, chi phí và giới hạn độ dài của câu trả lời.
Kỹ thuật thiết kế: chỉ tải thông tin khi thực sự cần, thay vì tải tất cả cùng lúc. Trong skill, điều này có nghĩa là Claude chỉ đọc frontmatter lúc đầu, rồi mới đọc toàn bộ SKILL.md khi xác định skill phù hợp — tiết kiệm bộ nhớ và tốc độ xử lý.
Hành động hoàn tác các thay đổi đã thực hiện khi có lỗi xảy ra trong một quy trình, đưa hệ thống về trạng thái ban đầu ổn định. Ví dụ: nếu bước 3 trong quy trình 4 bước thất bại, rollback sẽ xóa những gì bước 1 và 2 đã tạo ra.
Bash là ngôn ngữ dòng lệnh trên Linux/Mac, dùng để tự động hóa tác vụ hệ thống. Python là ngôn ngữ lập trình phổ biến, dễ đọc. Script là tên gọi chung cho các tệp mã chạy tự động một loạt lệnh mà không cần can thiệp thủ công.