IzziAI
TutorialJul 7, 20268 min read

Agent Skills — Lớp chuyên môn: đóng gói năng lực theo yêu cầu

Agent Skills là gì, cấu trúc SKILL.md, nguyên lý progressive disclosure 3 tầng, skill kèm code, và phân biệt Skills với Slash Commands, Subagents, MCP.

Izzi API Team
Engineering & DevRel
agent-dev-kitclaudeai-agent
Agent Skills — Lớp chuyên môn: đóng gói năng lực theo yêu cầu

Agent Skills — Lớp chuyên môn: đóng gói năng lực theo yêu cầu

Bài 1, CLAUDE.md giải quyết bối cảnh chung — thứ Claude cần biết mọi lúc. Nhưng có những thứ bạn không muốn nhét vào bối cảnh mọi lúc: một quy trình xuất báo cáo tài chính 40 bước, cách viết bài theo giọng thương hiệu, thủ tục điền một loại form PDF phức tạp. Nạp tất cả vào mỗi phiên vừa tốn token vừa gây nhiễu.

Agent Skills là lời giải: đóng gói một chuyên môn thành module, và Claude chỉ "mở" nó ra khi task thực sự cần. Đây là bước chuyển tư duy quan trọng — từ "nhồi thật nhiều prompt" sang "đóng gói năng lực thành module".

Skill là gì

Ở dạng đơn giản nhất, một skillmột thư mục chứa file SKILL.md (Anthropic Engineering). Thư mục đó có thể kèm thêm script, tài liệu tham chiếu và tài nguyên. Anthropic ví skill như tài liệu onboarding cho một nhân viên mới: nó biến một agent tổng quát thành một chuyên gia cho việc cụ thể.

Cấu trúc chuẩn theo đặc tả mở (agentskills.io):

Text
ten-skill/
├── SKILL.md          # Bắt buộc: metadata + hướng dẫn
├── scripts/          # Tùy chọn: code chạy được
├── references/       # Tùy chọn: tài liệu đọc khi cần
└── assets/           # Tùy chọn: template, ảnh, dữ liệu

SKILL.md và frontmatter bắt buộc

SKILL.md phải mở đầu bằng khối YAML frontmatter với hai trường bắt buộc (agentskills.io — specification):

TrườngBắt buộcRàng buộc chính
nameNgắn (≤ 64 ký tự), chữ thường + số + dấu -; trùng tên thư mục
description≤ 1024 ký tự; mô tả skill làm gì + KHI NÀO nên dùng
licenseTên hoặc file license
allowed-toolsDanh sách tool được duyệt trước (thử nghiệm)

Trường description cực kỳ quan trọng: đó là căn cứ để Claude tự quyết định khi nào kích hoạt skill. Viết mô tả mơ hồ, skill sẽ không bao giờ được gọi đúng lúc.

Ví dụ tối giản:

Markdown
---
name: pdf-form-filler
description: Điền và trích xuất trường trong file PDF. Dùng khi người
  dùng cần fill form PDF hoặc đọc field từ một file PDF.
---
# Điền form PDF
1. Chạy `scripts/extract_fields.py` để lấy danh sách field.
2. Map dữ liệu người dùng vào field tương ứng.
3. Xem `references/FORMS.md` khi gặp form phức tạp.

Nguyên lý cốt lõi: Progressive Disclosure (tiết lộ dần)

Đây là ý tưởng làm nên sức mạnh của Skills. Thông tin được nạp theo ba tầng, chỉ khi cần (Anthropic Engineering):

  1. Metadata (rất nhẹ). Lúc khởi động, Claude chỉ nạp name + description của mọi skill vào ngữ cảnh — đủ để biết khi nào cần skill nào. Chi phí token cho mỗi skill rất nhỏ.
  2. Instructions (khi liên quan). Khi thấy một task khớp với một skill, Claude mới đọc toàn bộ thân SKILL.md vào ngữ cảnh.
  3. Resources (khi thực sự dùng). Các file trong references/, scripts/, assets/ chỉ được đọc hoặc chạy lúc thật sự cần.

Hệ quả tuyệt vời: bạn có thể cài rất nhiều skill mà vẫn rẻ token khi chưa dùng tới. Đây là điểm khác biệt then chốt so với việc nhồi mọi hướng dẫn vào một CLAUDE.md khổng lồ. Khuyến nghị: giữ SKILL.md gọn (thường dưới ~500 dòng), tách phần dài ra file tham chiếu.

Skill có thể chứa code — điểm mạnh riêng

Một skill có thể kèm script (Python, Bash, JS...) để Claude chạy như một công cụ. Lý do: nhiều thao tác (sắp xếp danh sách, phân tích PDF, gọi API) chạy bằng code thì rẻ và tất định hơn là để mô hình "sinh token". Ví dụ chính thức là skill xử lý PDF kèm script Python đọc và trích field — mà không cần nạp cả script lẫn PDF vào ngữ cảnh (Anthropic Engineering).

Đây là khác biệt tinh tế nhưng lớn: skill không chỉ là "văn bản hướng dẫn", nó có thể là năng lực thực thi đóng gói sẵn.

Pre-built vs custom, và tính portable

  • Pre-built (Anthropic tạo sẵn): đọc/tạo Excel, PowerPoint, Word, và PDF điền được — đã tích hợp trong tính năng tạo file của Claude apps (Anthropic — Skills).
  • Custom (bạn tự viết): có cả một skill tên skill-creator hướng dẫn tương tác để dựng skill mới.
  • Portable — "viết một lần, dùng mọi nơi": cùng một định dạng chạy trên Claude apps, Claude Code, API và Claude Agent SDK. Agent Skills còn được công bố thành chuẩn mở để dùng chéo nền tảng (agentskills.io).

Cách cài trong Claude Code: thả vào ~/.claude/skills/ (cá nhân) hoặc cài qua plugin từ marketplace, rồi chia sẻ với team qua version control. Trong API, skill được quản lý qua endpoint /v1/skills và cần Code Execution Tool (beta) làm môi trường chạy (Claude Docs — Agent SDK Skills).

Skills vs Slash Commands vs Subagents vs MCP

Bốn khái niệm này hay bị gộp lẫn. Mỗi cái giải một bài khác nhau (Anthropic — Skills explained):

Khái niệmGiải bài gìAi kích hoạt
SkillKiến thức/quy trình chuyên môn, nạp độngClaude tự nhận diện khi liên quan
Slash CommandLệnh gõ tay điều khiển phiên / gọi prompt mẫuNgười dùng chủ động gõ /...
SubagentCách ly ngữ cảnh + giới hạn quyền (xem Bài 4)Agent chính ủy thác
MCPKết nối tới dữ liệu/hệ thống ngoài (xem Bài 6)Khai báo server

Có một "câu thần chú" giúp nhớ: **Skill đổi hành vi, Subagent bảo vệ ngữ cảnh, MCP thêm năng lực, Hook đảm bảo một hành động chạy tất định.** Và một cách nói khác từ Anthropic: Projects/CLAUDE.md nói "đây là thứ cần biết", Skills nói "đây là cách làm"; MCP kết nối dữ liệu, Skills dạy làm gì với dữ liệu (Skills explained).

Lưu ý giao thoa: một skill có thể được kích hoạt qua slash command hoặc tự động khớp — hai cơ chế không loại trừ nhau.

Best practices khi tạo skill

Từ hướng dẫn kỹ thuật của Anthropic (Engineering — Agent Skills):

  • Bắt đầu từ đánh giá (eval-first). Tìm chỗ agent làm chưa tốt, rồi viết skill để vá đúng chỗ đó — thay vì viết skill theo cảm tính.
  • Cấu trúc để mở rộng. Khi SKILL.md phình, tách phần chi tiết ra references/.
  • Nghĩ từ góc nhìn của Claude. Chăm chút namedescription, vì đó là căn cứ để skill được kích hoạt đúng lúc.
  • Lặp cùng Claude. Nhờ chính Claude đúc kết pattern hay dùng vào skill.

Bảo mật: chỉ cài skill từ nguồn tin cậy

Vì skill mang theo cả code lẫn chỉ dẫn, một skill độc hại có thể khiến Claude rò rỉ dữ liệu hoặc hành động ngoài ý muốn. Nguyên tắc: chỉ cài skill từ nguồn tin cậy, và audit kỹ file/script/dependency cùng mọi chỉ dẫn kết nối mạng ngoài trước khi dùng. Đây là cùng một tinh thần "supply chain" mà ta sẽ gặp lại ở Plugins (Bài 5).

Ba hiểu lầm phổ biến

  • "Bật nhiều skill sẽ ngốn ngữ cảnh." — Sai. Nhờ progressive disclosure, lúc đầu chỉ metadata (~vài chục đến trăm token/skill) được nạp.
  • "Skill = slash command / = subagent / = MCP." — Sai. Xem bảng phía trên.
  • "Skill chỉ dùng trong Claude Code." — Sai. Skill portable trên apps, Code, API và Agent SDK.

Tóm tắt & bước tiếp theo

Agent Skills đóng gói chuyên môn thành module thư mục (SKILL.md + tài nguyên), nạp theo nguyên lý progressive disclosure để vừa mạnh vừa rẻ token, có thể kèm code để thực thi tất định, và portable khắp hệ sinh thái Claude.

Nhưng cả CLAUDE.md lẫn Skills đều là chỉ dẫn — Claude cố tuân theo, không đảm bảo tuyệt đối. Khi bạn cần một hành động chắc chắn xảy ra hoặc chắc chắn bị chặn (format code, quét bảo mật, cấm lệnh nguy hiểm), bạn cần một cơ chế tất định. Đó là HooksBài 3.

Nguồn tham khảo

  • Anthropic Engineering — Equipping agents for the real world with Agent Skills: https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
  • Anthropic — Introducing Agent Skills: https://www.anthropic.com/news/skills
  • Anthropic — Skills explained (so sánh Skills/Commands/MCP): https://claude.com/blog/skills-explained
  • Agent Skills — Open specification: https://agentskills.io/specification
  • Claude Docs — Agent Skills trong SDK: https://docs.claude.com/en/api/agent-sdk/skills
  • AZDIGI — Hướng dẫn Agent Skills (tiếng Việt): https://azdigi.com/blog

Bài 2/7 trong chuỗi "Bộ công cụ phát triển Agent với Claude". Nội dung diễn giải lại từ tài liệu gốc của Anthropic. Trước ← Bài 1: CLAUDE.md · Tiếp theo → Bài 3: Hooks.

Sẵn sàng bắt đầu?

Truy cập 38+ model AI qua một API duy nhất. Gói miễn phí — không cần thẻ tín dụng.

MORE

Bài viết liên quan