2026-03-146 phút đọcVI
Skills — định nghĩa workflow cho agent
English title: Skills — Define Workflows for Your Agent
Bài 4 trong chuỗi 20 bài về Claude Code. Ở bài 3 bạn đã biết agent là role + instructions; command là trigger. Skill là thứ nằm giữa: mô tả procedure — các bước làm khi gặp một loại task — và khi nào áp dụng (trigger). Từ một quy trình lặp lại (vd. "mỗi lần fix bug mình làm A, B, C") bạn đúc thành một skill; command hoặc keyword sẽ load skill đó để agent chạy đúng bước. Bài này làm rõ khái niệm, cấu trúc và cách tích hợp với commands.
Mở đầu: Từ quy trình lặp lại đến SKILL
Bạn mỗi lần fix bug đều: (1) tìm repro step, (2) viết test fail, (3) sửa code, (4) chạy test, (5) refactor nếu cần. Nếu bạn nhắc Claude từng bước mỗi lần thì tốn prompt và dễ sót. Skill là cách bạn ghi lại quy trình đó thành một tài liệu (thường là file markdown với frontmatter): trigger = "fix bug" hoặc command /fix-bug, nội dung = các bước trên. Khi user nói "fix bug lỗi login" hoặc gõ /fix-bug, hệ thống load skill → agent đọc và làm theo. Workflow tái sử dụng, không cần nhắc lại.
1. Đi sâu: Skill là gì và tại sao cần
Tại sao quan trọng: Rules chỉ nói "luôn làm X" (vd. luôn dùng TypeScript strict). Chúng không nói "khi gặp task Y thì làm bước 1, 2, 3". Skill bù vào chỗ đó: procedure cho từng loại task (debug, refactor, add tests, plan feature…). Có skill, agent biết trình tự đúng; thiếu skill, mỗi lần bạn phải mô tả lại hoặc mong Claude "đoán" đúng.
Hiểu sai thường gặp: "Skill = rule dài." Rule luôn được áp dụng (inject vào mọi context); skill chỉ được load khi trigger khớp (keyword hoặc command). Skill = "khi nào" + "làm gì"; rule = "luôn làm gì".
Bản chất đúng: Skill = (1) trigger (khi nào áp dụng: từ khóa, tên command), (2) nội dung (mục tiêu, điều kiện tiên quyết, các bước, output mong đợi). Hệ thống match trigger → inject nội dung skill vào context (hoặc chuyển cho agent đọc) → agent thực hiện theo bước. Skill dùng cho workflow có trình tự rõ; rule dùng cho convention, style, security.
2. Khái niệm
- Skill: Tài liệu mô tả procedure + trigger. Thường là file markdown (vd. tên chuẩn SKILL.md) trong thư mục skills. Frontmatter: trigger keywords, description; body: steps, checklist.
- Trigger: Điều kiện để skill được load. Có thể là: user nói một từ khóa (vd. "fix bug", "refactor"), hoặc user gõ slash command (vd.
/tdd). Một command có thể map 1:1 với một skill. - Rule vs Skill: Rule = always-on guideline (coding style, no secrets). Skill = on-demand procedure (khi user/command kích hoạt). Cả hai đều là text được inject hoặc đọc; khác nhau ở khi nào được dùng.
- Command → Skill: Command thường không chứa hết procedure trong body mà tham chiếu skill. Command chỉ cần: tên, mô tả, argument (vd. task mô tả); khi chạy, load skill tương ứng rồi chạy.
3. Code / ví dụ cấu trúc skill (pseudo)
Bạn không cần path repo; chỉ cần hình dung cấu trúc. Ví dụ một skill "debug" (pseudo):
---
trigger: ["fix bug", "debug", "sửa lỗi"]
description: "Procedure to fix a bug with test-first steps"
---
# Debug workflow
**Goal:** Reproduce, add test, fix, verify.
**Steps:**
1. Identify reproduction steps and current vs expected behavior.
2. Write a failing test that captures the bug.
3. Implement minimal fix until test passes.
4. Run full test suite; refactor if needed.
5. Summarize root cause and fix for the user.Khi user nói "fix bug: login fails when email has spaces", trigger khớp → skill được load → agent làm theo 5 bước. Command /fix-bug có thể cũng trỏ tới skill này, kèm argument là mô tả bug.
4. Workflow: Viết và gắn skill
- Chọn workflow lặp lại: Liệt kê những việc bạn hay làm với Claude (fix bug, add tests, plan feature, code review). Mỗi việc có thể thành một skill.
- Viết steps rõ ràng: Trong file skill: goal, điều kiện tiên quyết (vd. "đã có test suite"), các bước đánh số hoặc checklist, output mong đợi (vd. "plan dạng bullet", "checklist pass/fail").
- Đặt trigger: Trong frontmatter (hoặc cơ chế tương đương) khai báo từ khóa hoặc tên command. Trigger không nên quá rộng (match mọi câu) hay quá hẹp (không bao giờ match).
- Gắn command (nếu có): Tạo slash command (vd.
/fix-bug) với body tham chiếu skill "debug". User gõ command = load skill + chạy. - Thử và chỉnh: Chạy vài lần với task thật; nếu agent bỏ bước hoặc hiểu sai, bổ sung hoặc sửa lại steps trong skill.
Quy ước: Một command = một workflow = một skill khi có thể; giữ skill ngắn gọn (1–2 trang) để không tốn token.
5. Ứng dụng trong AI-centric engineering
- Chuẩn hóa quy trình team: Mọi người dùng chung skill "code review" hoặc "TDD" → output nhất quán, dễ review và onboard.
- Giảm prompt dài: Thay vì mỗi lần paste "làm theo các bước 1, 2, 3…", bạn gõ
/tddhoặc "fix bug" — skill đã chứa procedure. - Cập nhật một chỗ: Sửa procedure chỉ cần sửa file skill; mọi command/keyword dùng skill đó đều nhận bản mới.
Bài 5 sẽ nói commands chi tiết hơn: cấu trúc, cách tạo, và quy trình từ lệnh đến kết quả.
Bài tiếp: Commands — slash commands và quy trình nhanh (bài 5).