📖 Nội dung bài học
Video
Skills
Skills là các thư mục chứa hướng dẫn, script và tài nguyên được Claude tải động (dynamically load) để cải thiện hiệu suất cho các tác vụ chuyên biệt. Cốt lõi của mỗi Skill là một tệp SKILL.md — một tập hợp các hướng dẫn được đóng gói sẵn mà bạn tải lên một lần, sau đó đính kèm vào bất kỳ lệnh gọi messages.create nào. Bạn đang dạy Claude cách bạn thực hiện một công việc: định dạng báo cáo trạng thái, danh sách kiểm tra (checklist) đánh giá, hoặc tài liệu phát hành (release notes) của bạn. Claude sẽ đọc Skill, làm theo quy trình và tạo ra kết quả đúng theo khuôn mẫu của bạn.
Skills và tools
Bạn cần phân biệt rõ sự khác biệt giữa hai khái niệm này, vì chúng giải quyết các vấn đề khác nhau:
- Tools kết nối Claude với dữ liệu và hành động. "Tra cứu đoạn code này", "gửi email này" — Claude gọi tool, và một thành phần khác sẽ thực thi.
- Skills dạy Claude một quy trình. "Tạo báo cáo trạng thái hàng ngày theo template này" — đây là một cẩm nang (playbook) mà Claude đọc và làm theo, đôi khi bao gồm cả việc tự chạy các script đi kèm.
Một cách đơn giản để ghi nhớ: tools trả lời cho câu hỏi Claude có thể làm gì (what), còn Skills trả lời cho câu hỏi bạn muốn việc đó được thực hiện như thế nào (how).

Một điều nữa bạn cần lưu ý: Skills không tải hoàn toàn vào context khi khởi động. Ban đầu, chỉ có tên và mô tả được tải. Khi agent của bạn quyết định rằng một Skill là phù hợp, nó mới tải toàn bộ Skill đó vào context. Điều này giúp giữ cho context của bạn luôn gọn nhẹ ngay cả khi có nhiều Skill khả dụng.
Tải lên một Skill
Skills được tải lên một lần vào workspace của bạn, sau đó được tham chiếu bằng ID. Bạn có thể tải lên trực tiếp trên Claude Platform hoặc thực hiện bằng code:
skill = client.beta.skills.create(
display_title="Status Report Generator",
files=files_from_dir("status-report-skill"), # thư mục chứa SKILL.md
)
print(skill.id) # tham chiếu ID này trong các yêu cầu tiếp theo
Trong ví dụ này, tôi muốn có một trình tạo báo cáo trạng thái (status report generator). Tất cả các quy tắc để tạo nên một báo cáo trạng thái tốt — các phần, giọng văn, cách tóm tắt, cách xử lý các vấn đề gây nghẽn (blockers) — đều nằm trong một Skill được đóng gói từ trước. Bản thân nhật ký hoạt động (activity log) chỉ là một chuỗi ký tự được truyền vào tại thời điểm gửi yêu cầu.
Đính kèm một Skill vào yêu cầu
Các Skill được đính kèm vào một yêu cầu thông qua cấu hình container — một mảng skills bên trong container, trong đó mỗi phần tử chỉ định một skill_id và version. Dưới đây là toàn bộ lệnh gọi cho trình tạo báo cáo trạng thái:
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=4096,
betas=["skills-2025-10-02", "code-execution-2025-08-25"],
container={
"skills": [
{
"type": "custom",
"skill_id": skill.id,
"version": "latest",
}
]
},
tools=[
{
"type": "code_execution_20250825",
"name": "code_execution",
}
],
messages=[
{
"role": "user",
"content": f"Generate the daily status report from this activity log:\n\n{activity_log}",
}
],
)
Một vài điểm đáng lưu ý:
- Chúng ta đang gọi
client.beta.messages.createchứ không phải hàm tiêu chuẩn, và truyền tính năng skills qua beta header. Tại thời điểm quay video này, Skills vẫn là một tính năng beta. container.skillslà nơi đính kèm Skill. Đây là một danh sách (list), vì vậy bạn có thể xếp chồng nhiều Skill vào một lệnh gọi.- Code execution cũng được bật ở đây. Skills thường kết hợp rất tốt với code execution, vì các quy trình trong Skill có thể thực hiện các công việc thực tế — như chạy script trong terminal.
Chạy thử nghiệm
Kết quả đầu ra là một báo cáo trạng thái được định dạng chính xác theo cách mà Skill yêu cầu. Các phần, giọng văn, cách xử lý blocker — tất cả đều đến từ tệp SKILL.md mà bạn đã tải lên. User prompt chỉ có một dòng; quy trình thực hiện nằm trọn trong Skill.

Trong một ứng dụng thực tế (production app), đây là cách một đội ngũ chuẩn hóa kết quả đầu ra cho toàn bộ tính năng. Với endpoint báo cáo trạng thái hàng ngày này, mọi PM đều nhận được cùng một cấu trúc, cùng một giọng văn, cùng các phần và theo đúng thứ tự — mà không ai phải copy-paste template vào prompt.

Tóm tắt
- Skills đóng gói các quy trình của bạn. Tệp
SKILL.md(cùng với bất kỳ script và tài nguyên nào) sẽ dạy Claude cách bạn muốn thực hiện một công việc. - Tools vs. Skills: tools trả lời cho câu hỏi Claude có thể làm gì; Skills trả lời cho câu hỏi bạn muốn việc đó được thực hiện như thế nào.
- Skills được tải tăng dần (load lũy tiến). Chỉ có tên và mô tả được tải khi khởi động; toàn bộ Skill sẽ được tải vào context khi agent quyết định sử dụng nó.
- Tải lên một lần bằng
client.beta.skills.create, sau đó đính kèm bằngcontainer.skillstrên bất kỳ lệnh gọimessages.createnào — đây là một danh sách, vì vậy bạn có thể xếp chồng nhiều Skill. - Kết hợp với code execution khi quy trình của Skill cần thực hiện các công việc thực tế.
- Hãy sử dụng Skill khi cách thức thực hiện (how) cũng quan trọng như kết quả đạt được (what).
🎬 Bản ghi video
Source video:
3fGaS8mcD9Q
Không có transcript — xem phần nội dung bài học bên trên.
🔁 Bài học liên quan
- Bài tiếp: MCP
- Bài trước: Built-in tools
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-platform-101/486259
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-06-27 · Chuẩn hoá: 2026-06-27