Cài skill rồi code tiếp: cơ chế đằng sau và phần tri thức bị bỏ lại
Một skill không phải plugin, không phải thư viện, không phải đoạn code được thực thi. Nó là văn bản được nạp vào cửa sổ ngữ cảnh theo ba tầng: tên và mô tả luôn nằm sẵn (~100 token), thân bài chỉ nạp khi model thấy khớp, còn file đính kèm thì không tốn gì cho tới lúc thật sự mở ra. Model đọc skill rồi tự quyết định làm theo, chứ không "chạy" nó. Ba tầng đó giải thích gần hết những câu hỏi thực dụng — vì sao description quyết định việc kích hoạt chứ không phải nội dung, vì sao viết skill dài là phản tác dụng. Và vì skill là bản nén phán đoán của một người trong một bối cảnh cụ thể, cài nó vào mà không đọc nghĩa là nhận cả những giả định bạn chưa từng kiểm chứng.
Quy trình phổ biến hiện nay: vào một danh mục skill, chọn preset, chạy một lệnh cài, rồi code tiếp. Hỏi vì sao agent đột nhiên viết test theo kiểu đó, vì sao nó nhất quyết dùng pattern kia, thì câu trả lời thường là "tại skill nó thế".
Đó là chỗ tri thức rơi rụng. Không phải vì skill xấu — nhiều skill viết rất tốt — mà vì bản chất của skill là nén phán đoán lại thành hướng dẫn, và người nhận thường chỉ lấy phần hướng dẫn.
Bài này mổ hai lớp: cơ chế skill hoạt động thế nào, và chuyện gì bị bỏ lại khi ta chỉ cài mà không đọc.
Skill thực chất là cái gì
Bỏ qua mọi lớp đóng gói, một skill là một thư mục chứa file SKILL.md. File đó có hai phần: YAML frontmatter với hai trường bắt buộc là name và description, rồi phần thân viết bằng Markdown.
---
name: tdd-workflow
description: Quy trình phát triển hướng kiểm thử, dùng khi cần viết test trước khi viết code
---
# TDD Workflow
Khi được yêu cầu thêm một tính năng, hãy làm theo thứ tự sau...
Hết. Không có bước biên dịch, không có hàm đăng ký, không có API.
Điều này quan trọng hơn vẻ ngoài của nó. Một plugin thì chạy — nó nhận đầu vào, thực thi logic, trả đầu ra, và hành vi của nó xác định. Một skill thì được đọc. Model nạp đoạn văn bản đó vào ngữ cảnh rồi tự quyết định có làm theo hay không, làm theo tới đâu, và xử lý ra sao khi hướng dẫn trong skill mâu thuẫn với yêu cầu của bạn.
Nói cách khác: skill không phải cơ chế cưỡng chế, nó là cơ chế thuy ết phục. Đây là điều cần nhớ trước mọi chuyện khác.
Ba tầng nạp — thứ giải thích gần hết
Phần cơ chế mà hầu như không ai đọc, nhưng lại trả lời được phần lớn câu hỏi thực dụng, là cách skill được nạp vào ngữ cảnh. Nó đi theo ba tầng, gọi là progressive disclosure:
| Tầng | Nội dung | Chi phí | Khi nào nạp |
|---|---|---|---|
| 1 | name + description | ~100 token mỗi skill | Luôn luôn, ngay từ đầu phiên |
| 2 | Thân SKILL.md | dưới ~5.000 token | Khi model thấy ngữ cảnh khớp |
| 3 | File đính kèm bên cạnh | 0 token | Chỉ khi thật sự mở ra đọc |
Con số đáng suy nghĩ: một dự án cài 8 skill chỉ tốn khoảng 500 token lúc khởi động, thay vì 70.000 token nếu nạp hết. Đó là lý do kiến trúc này tồn tại — cửa sổ ngữ cảnh là tài nguyên khan hiếm, và mọi token tiêu cho thứ chưa cần là token không còn cho việc đang làm.
Từ ba tầng này rút ra bốn hệ quả rất thực dụng.
