VPS

Claude Code Skills là gì và cách viết skill đầu tiên

Thanh Nguyễn Đăng 13 phút đọc 2 khối lệnh

Claude Code Skills là gì và cách viết skill đầu tiên
Mục lục bài viết
  1. Skill khác gì file luật chung
  2. Cấu trúc một skill
  3. Đặt skill ở đâu
  4. Viết skill đầu tiên trong mười phút
  5. Ba lỗi hay gặp khi mới làm skill
  6. Skill và MCP server, hai thứ khác nhau
  7. Chuẩn hóa để mang theo được
  8. Ba lỗi hay gặp khi mới làm
  9. Skill và các khái niệm gần giống, phân biệt cho rõ
  10. Cách viết skill đầu tiên cho ra hồn
  11. Viết dạng thuần chữ để dùng được ở mọi công cụ
  12. Câu hỏi thường gặp
  13. Bài viết liên quan

Trả lời nhanh: Skills là cách đóng gói một quy trình lặp đi lặp lại thành thư mục có sẵn, để agent tự lấy ra dùng khi gặp đúng việc. Mỗi skill là một thư mục chứa file SKILL.md mô tả cách làm, kèm script hoặc tài liệu tham chiếu nếu cần. Khác biệt lớn nhất so với việc nhét mọi thứ vào file luật chung: skill chỉ được nạp khi cần tới, nên bạn có thể viết dài và kỹ mà không tốn token ở những phiên không liên quan.

Sau vài tuần dùng Claude Code, ai cũng có một danh sách việc lặp lại theo đúng một quy trình: dựng trang mới theo mẫu công ty, viết migration đúng quy ước, xuất báo cáo theo định dạng khách yêu cầu. Nhắc lại quy trình đó mỗi lần vừa mất công vừa dễ sót bước. Skills sinh ra cho đúng chuyện này, và điểm hay là bạn viết một lần rồi cả đội dùng chung.

Skill khác gì file luật chung

Nếu bạn đã đọc bài về CLAUDE.md thì nhớ nguyên tắc ở đó: file luật được nạp vào mọi lượt gọi nên phải ngắn. Chính vì ngắn mà nó không chứa nổi những quy trình dài như cách dựng một màn hình theo mẫu công ty hay cách viết báo cáo theo chuẩn khách hàng.

Skill giải quyết đúng chỗ nghẽn đó. Mỗi skill nằm trong một thư mục riêng, và thứ duy nhất luôn nằm trong tầm mắt của agent là một dòng mô tả nói skill này dùng khi nào. Khi công việc trùng với mô tả, agent mới mở phần thân ra đọc. Nói cách khác: file luật là bảng nội quy dán trên tường, còn skill là cuốn cẩm nang để trong ngăn kéo, lấy ra khi đúng việc.

Hệ quả thực dụng: bạn viết skill dài bao nhiêu cũng được. Một quy trình mười bước kèm ví dụ đầy đủ hoàn toàn hợp lý, vì nó chỉ tốn token ở những phiên thật sự cần tới.

Cấu trúc một skill

Skill là thư mục, tối thiểu chứa một file:

TerminalCấu trúc một skillbash
.claude/skills/  bao-cao-thang/    SKILL.md          # bắt buộc, mô tả và hướng dẫn    mau-bao-cao.md    # tùy chọn, tài liệu tham chiếu    xuat-so-lieu.py   # tùy chọn, script agent gọi khi cần

File SKILL.md mở đầu bằng phần khai báo ngắn, sau đó tới phần thân:

TerminalCấu trúc một skillbash
---name: bao-cao-thangdescription: Dùng khi cần xuất báo cáo doanh thu tháng theo mẫu công ty, gồm lấy số liệu từ database và dựng file trình bày.--- # Cách làm báo cáo tháng 1. Chạy `python xuat-so-lieu.py --thang <MM>` để lấy số thô.2. Đối chiếu tổng doanh thu với bảng trong hệ thống kế toán, lệch quá 1% thì dừng lại và hỏi.3. Dựng báo cáo theo `mau-bao-cao.md`, giữ đúng thứ tự mục.4. Xuất ra thư mục `bao-cao/` với tên `thang-MM-YYYY.md`. ## Tuyệt đối không- Không tự làm tròn số liệu- Không gửi báo cáo đi đâu, chỉ tạo file

Phần description quan trọng hơn bạn tưởng, vì đó là căn cứ duy nhất để agent quyết định có mở skill này ra hay không. Viết mô tả nêu rõ tình huống chứ đừng viết chung chung.

Đặt skill ở đâu

Hai chỗ, dùng cho hai mục đích khác nhau:

  • Trong dự án, thư mục .claude/skills/. Skill đi theo repo, ai clone về cũng có, nên hợp với quy trình chung của cả đội. Commit vào Git như mọi file mã nguồn.
  • Trong thư mục cá nhân, dưới ~/.claude/skills/. Skill theo bạn qua mọi dự án, hợp với thói quen riêng như cách bạn thích viết ghi chú hay quy ước đặt tên nhánh của cá nhân bạn.

Nguyên tắc phân chia giống hệt phần cấu hình cá nhân đã nói ở bài CLAUDE.md: thứ gì cả đội phải theo thì để trong repo, thứ gì là sở thích riêng thì để ngoài. Đừng ép quy ước cá nhân lên người khác qua đường skill.

Viết skill đầu tiên trong mười phút

Chọn đúng một việc bạn đã phải giải thích lại từ hai lần trở lên. Đó là ứng viên tốt, vì bạn đã biết chỗ nào người khác hay làm sai.

Cách nhanh nhất là để agent viết bản nháp: mở phiên, làm việc đó một lần cho tới khi ra kết quả đúng, rồi bảo nó tóm tắt các bước vừa làm thành một skill kèm mô tả tình huống áp dụng. Sau đó bạn đọc lại và cắt. Bản máy sinh luôn dài và chứa những điều hiển nhiên, còn phần cấm đoán thì gần như luôn thiếu, đó là phần bạn phải tự thêm.

Thử nghiệm cũng đơn giản: mở phiên mới, ra một yêu cầu bằng lời tự nhiên đúng tình huống trong mô tả, rồi xem agent có tự tìm tới skill không. Nếu nó không dùng, gần như chắc chắn lỗi nằm ở dòng mô tả quá mơ hồ chứ không phải ở phần thân.

Ba lỗi hay gặp khi mới làm skill

Mô tả viết như tên chương sách. Ghi hướng dẫn về báo cáo thì agent không biết khi nào cần. Ghi dùng khi cần xuất báo cáo doanh thu tháng theo mẫu công ty thì nó biết ngay.

Nhét cả tài liệu kỹ thuật vào một file. Skill dài quá thì tách: phần thân giữ các bước, chi tiết đẩy sang file phụ trong cùng thư mục rồi trỏ tới. Agent đọc thêm khi cần, chứ không nuốt hết một lượt.

Quên phần cấm. Skill mô tả cách làm thì tốt, nhưng thứ cứu bạn lúc nửa đêm là dòng ghi rõ điều không được làm, ví dụ không gửi báo cáo ra ngoài, không sửa dữ liệu gốc. Nguyên tắc này giống hệt phần vùng cấm trong file luật.

Khi bộ skill đã đủ dùng, bước tiếp theo là để agent chạy trọn quy trình mà không cần bạn ngồi canh từng lượt. Lúc đó vấn đề chuyển sang chỗ chạy: một máy chủ luôn bật giữ phiên làm việc, như cách dựng trong bài máy dev từ xa.

Skill và MCP server, hai thứ khác nhau

Đây là chỗ nhiều người nhầm, nên nói cho rõ:

  • Skill là kiến thức và quy trình. Nó trả lời câu hỏi làm việc này thế nào cho đúng, theo chuẩn nào, tránh gì.
  • MCP server là đường kết nối. Nó trả lời câu hỏi agent chạm được tới hệ thống nào, ví dụ đọc dữ liệu từ database, gọi API nội bộ, tra cứu hệ thống quản lý công việc.

Hai thứ này bổ sung chứ không thay thế nhau. Một quy trình thực tế thường cần cả hai: MCP mở đường tới hệ thống quản lý đơn hàng, còn skill dạy agent cách đọc và xử lý những đơn đó theo đúng quy định công ty. Chi tiết về phía kết nối nằm ở bài giới thiệu Claude Code và các bài chuyên về MCP trong cụm này.

Một quy tắc chọn đơn giản: nếu thứ bạn cần là dữ liệu hoặc hành động ở hệ thống khác thì đó là việc của MCP. Nếu thứ bạn cần là cách làm đúng thì đó là việc của skill.

Chuẩn hóa để mang theo được

Vì skill chỉ là thư mục chứa văn bản, nó có mấy tính chất mà một đoạn nhắc dán tay không bao giờ có:

  • Đưa vào Git được, nên có lịch sử thay đổi, xem lại được, quay lui được khi sửa hỏng.
  • Chia sẻ được bằng cách sao chép thư mục hoặc để trong repo chung của công ty.
  • Kiểm tra được, vì bạn đọc file và biết chính xác agent đang được dạy điều gì, khác hẳn với việc đoán xem nó nhớ gì.
  • Tách bạch, mỗi skill một việc, sửa cái này không đụng cái kia.

Với công ty, tính chất thứ tư quan trọng hơn người ta tưởng. Quy trình phát hành thay đổi thì chỉ sửa đúng một skill, không phải đi rà lại một file luật khổng lồ mà nhiều người cùng chèn thêm qua nhiều tháng.

Ba lỗi hay gặp khi mới làm

LỗiHậu quảCách sửa
Mô tả viết chung chungTrợ lý không biết khi nào nên dùngMô tả phải nói rõ dùng cho tình huống nào
Nhồi quá nhiều việc vào một skillTrợ lý gọi sai hoặc không gọiMỗi skill một việc rõ ràng
Viết dài như tài liệu hướng dẫnChiếm chỗ và loãngNgắn, cụ thể, có ví dụ
Ghi khóa hoặc thông tin nhạy cảm vào skillSkill nằm trong kho mã nguồnKhông bao giờ ghi bí mật vào đây

Điểm quan trọng nhất là phần mô tả: đó là thứ trợ lý đọc để quyết định có dùng skill này hay không. Mô tả cẩu thả nghĩa là skill viết công phu nhưng không bao giờ được gọi tới.

Skill và các khái niệm gần giống, phân biệt cho rõ

ThứNó là gìKhi nào dùng
Tệp luật chung của dự ánQuy ước áp dụng cho mọi việc trong dự ánLuôn được đọc
SkillHướng dẫn cho một loại việc cụ thểChỉ nạp khi trợ lý thấy phù hợp
Máy chủ công cụCho trợ lý gọi được hệ thống bên ngoàiKhi cần đọc hoặc ghi dữ liệu thật

Nói ngắn gọn: tệp luật là hiến pháp, skill là quy trình cho một loại việc, còn máy chủ công cụ là cánh tay để chạm vào hệ thống thật. Ba thứ khác nhau và không thay thế nhau.

Cách viết skill đầu tiên cho ra hồn

  1. Chọn một việc bạn làm lặp đi lặp lại và mỗi lần đều phải giải thích lại cho trợ lý.
  2. Viết mô tả nói rõ khi nào dùng, bằng đúng từ ngữ bạn hay dùng khi yêu cầu.
  3. Viết các bước cụ thể, kèm ví dụ đầu vào và đầu ra mong muốn.
  4. Nêu rõ những gì không được làm, phần này quan trọng ngang phần nên làm.
  5. Dùng thật vài lần rồi sửa lại theo những chỗ trợ lý làm sai.

Viết dạng thuần chữ để dùng được ở mọi công cụ

Nếu đội bạn dùng nhiều công cụ trợ lý khác nhau, viết skill dưới dạng tài liệu thuần chữ và giữ trong kho mã nguồn. Cách này giúp cùng một quy trình dùng lại được với công cụ khác, thay vì viết lại từ đầu mỗi lần đổi công cụ.

Câu hỏi thường gặp

Skill và CLAUDE.md khác nhau thế nào?

File luật được nạp ở mọi lượt nên phải ngắn và chỉ chứa quy ước chung. Skill chỉ được nạp khi công việc khớp với mô tả của nó, nên chứa được quy trình dài và ví dụ chi tiết. Dùng file luật cho nguyên tắc, dùng skill cho quy trình.

Skill có làm tăng chi phí token không?

Rất ít trong lúc bình thường, vì chỉ dòng mô tả nằm trong tầm nhìn của agent. Chi phí chỉ phát sinh khi skill được mở ra dùng, và lúc đó nó thay cho việc bạn phải gõ lại toàn bộ quy trình, nên thường còn tiết kiệm hơn.

Có thể để skill gọi script không?

Có, đặt script trong cùng thư mục skill rồi nêu rõ trong phần thân là chạy lệnh nào với tham số gì. Cách này hợp với việc lấy số liệu hoặc kiểm tra tự động. Nhớ giới hạn quyền của script, đừng để nó ghi vào dữ liệu thật.

Cả đội dùng chung skill thì quản lý ra sao?

Commit thư mục skill vào Git như mã nguồn, xem lại khi có thay đổi quy trình, và ghi chú ngắn ở đầu file khi sửa luật quan trọng. Nhờ nằm trong Git nên bạn thấy được ai đổi gì và quay lại bản cũ khi cần.

Agent Skills có phải chỉ dùng được với một trợ lý nhất định không?

Bản chất nó là thư mục chứa văn bản và script, tức là định dạng mở, nên nội dung mang sang công cụ khác được. Phần khác nhau giữa các công cụ chủ yếu nằm ở chỗ đặt thư mục và cách khai báo, còn chất xám bên trong thì giữ nguyên.

Nên viết bao nhiêu skill là vừa?

Bắt đầu từ những việc bạn đã phải giải thích lại nhiều lần, thường là ba tới năm cái đầu tiên. Viết thêm khi phát hiện mình lại đang dán lại hướng dẫn cũ. Đừng ngồi viết trước hai chục skill cho những việc chưa thật sự gặp.

Skill có thay được việc kiểm tra của con người không?

Không. Skill làm cho kết quả đều tay hơn và ít sai vặt hơn, nhưng phần xem lại trước khi phát hành vẫn là việc của người. Đặc biệt với thay đổi động tới dữ liệu thật hoặc cấu hình máy chủ.

Có nên để skill chứa thông tin nhạy cảm không?

Không bao giờ đặt mật khẩu, khóa API hay chuỗi kết nối trong skill, vì skill thường nằm trong Git và được chia sẻ. Ghi tên biến môi trường cần dùng, còn giá trị thật để ở nơi quản lý bí mật của hệ thống.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.