So sánh các cách mở rộng
Claude Code kết hợp một model biết suy luận với các tool có sẵn cho thao tác file, tìm kiếm, thực thi lệnh và truy cập web. Các tool có sẵn đã đủ cho phần lớn việc lập trình hằng ngày. Trang này nói về lớp mở rộng: những tính năng bạn thêm vào để tuỳ biến điều Claude biết, kết nối dịch vụ ngoài, và tự động hoá quy trình.
Mới bắt đầu? Cứ dùng CLAUDE.md trước để thiết lập quy ước dự án, rồi thêm các phần mở rộng khác khi thực sự cần — xem Xây dựng dần theo thời gian bên dưới.
Tổng quan
Phần tiêu đề “Tổng quan”Mỗi phần mở rộng cắm vào một chỗ khác nhau trong vòng lặp agentic:
- CLAUDE.md — thêm ngữ cảnh cố định, Claude thấy ở mọi phiên
- Skill — thêm kiến thức tái sử dụng và quy trình có thể gọi bằng
/tên-skill - MCP — kết nối Claude với dịch vụ và dữ liệu bên ngoài
- Subagent — chạy vòng lặp riêng trong ngữ cảnh tách biệt, chỉ trả về tóm tắt
- Hooks — chạy khi có sự kiện xảy ra trong vòng đời phiên
Chọn tính năng theo mục đích
Phần tiêu đề “Chọn tính năng theo mục đích”| Tính năng | Làm gì | Dùng khi nào | Ví dụ |
|---|---|---|---|
| CLAUDE.md | Ngữ cảnh cố định, nạp mỗi hội thoại | Quy ước dự án, quy tắc “luôn luôn làm X” | “Dùng pnpm, không dùng npm. Chạy test trước khi commit.” |
| Skill | Chỉ dẫn, kiến thức, quy trình Claude có thể dùng | Nội dung tái sử dụng, tài liệu tham khảo, việc lặp lại | /deploy chạy checklist triển khai; skill tài liệu API |
| Subagent | Ngữ cảnh thực thi tách biệt, chỉ trả kết quả tóm tắt | Cách ly ngữ cảnh, việc song song, worker chuyên biệt | Việc nghiên cứu đọc nhiều file nhưng chỉ cần trả về kết luận |
| MCP | Kết nối dịch vụ bên ngoài | Cần dữ liệu hoặc hành động ngoài | Truy vấn database, đăng lên Slack, điều khiển trình duyệt |
| Hook | Script/lệnh chạy theo sự kiện | Việc bắt buộc phải chạy đúng mỗi lần khớp sự kiện | Chạy ESLint sau mỗi lần sửa file |
Plugin là lớp đóng gói — gộp skill, hook, subagent, MCP server thành một gói cài đặt duy nhất, dùng khi muốn tái sử dụng cùng một thiết lập ở nhiều repo hoặc chia sẻ cho người khác.
Xây dựng dần theo thời gian
Phần tiêu đề “Xây dựng dần theo thời gian”Không cần cấu hình mọi thứ ngay từ đầu. Mỗi tính năng có một “tín hiệu” nhận biết rõ ràng khi nào nên thêm vào:
| Tín hiệu | Nên thêm |
|---|---|
| Claude làm sai một quy ước hoặc lệnh lần thứ hai | Thêm vào CLAUDE.md |
| Bạn cứ gõ đi gõ lại cùng một prompt để bắt đầu một việc | Lưu thành skill gọi được bằng /tên |
| Bạn dán đi dán lại cùng một quy trình nhiều bước vào chat lần thứ ba | Đóng gói thành skill |
| Bạn cứ phải copy dữ liệu từ một tab trình duyệt mà Claude không thấy được | Kết nối hệ thống đó qua MCP server |
| Một việc phụ làm “ngập” hội thoại bằng output bạn sẽ không dùng lại | Giao việc đó cho subagent |
| Bạn muốn một việc luôn xảy ra mà không cần hỏi | Viết một hook |
| Một repo thứ hai cần đúng thiết lập này | Đóng gói thành plugin |
Đúng những tín hiệu đó cũng cho biết khi nào nên cập nhật thứ đã có — một lỗi lặp lại hay một góp ý review lặp đi lặp lại là dấu hiệu cần sửa CLAUDE.md, không phải chỉ sửa miệng trong chat.
Phân biệt các tính năng dễ nhầm lẫn
Phần tiêu đề “Phân biệt các tính năng dễ nhầm lẫn”Skill và Subagent
Phần tiêu đề “Skill và Subagent”- Skill: nội dung tái sử dụng, nạp vào bất kỳ ngữ cảnh nào.
- Subagent: worker chạy tách biệt hoàn toàn khỏi hội thoại chính.
Dùng skill cho tài liệu tham khảo hay quy trình gọi được. Dùng subagent khi cần cách ly ngữ cảnh — subagent có thể đọc hàng chục file, nhưng hội thoại chính của bạn chỉ nhận về phần tóm tắt. Hai thứ này có thể kết hợp: một subagent có thể nạp sẵn một skill cụ thể.
CLAUDE.md và Skill
Phần tiêu đề “CLAUDE.md và Skill”| CLAUDE.md | Skill | |
|---|---|---|
| Nạp khi nào | Mỗi phiên, tự động | Theo yêu cầu |
| Có thể trigger quy trình? | Không | Có, bằng /tên |
| Phù hợp cho | Quy tắc “luôn luôn làm X” | Tài liệu tham khảo, quy trình gọi được |
Nguyên tắc chung: giữ CLAUDE.md dưới 200 dòng. Nếu đang phình to, chuyển nội dung tham khảo sang skill hoặc tách thành .claude/rules/.
Subagent và MCP
Phần tiêu đề “Subagent và MCP”MCP kết nối Claude với dịch vụ ngoài — server MCP cung cấp tool để thao tác trên hệ thống đó. Subagent thì cách ly ngữ cảnh cho một việc trong cùng phiên làm việc. Hai thứ này giải quyết vấn đề khác nhau và thường phối hợp tốt: một MCP server kết nối Claude tới database của bạn; một skill dạy Claude cách dùng kết nối đó hiệu quả (schema, pattern truy vấn quen thuộc).
Hook và Skill
Phần tiêu đề “Hook và Skill”| Hook | Skill | |
|---|---|---|
| Chạy gì | Lệnh shell, HTTP request, prompt, hoặc subagent | Chỉ dẫn Claude đọc và làm theo |
| Được kích hoạt bởi | Sự kiện vòng đời (PostToolUse, SessionStart…) |
Bạn gõ /tên, hoặc Claude tự thấy phù hợp |
| Độ chắc chắn | Luôn chạy đúng sự kiện, không phụ thuộc Claude | Claude diễn giải chỉ dẫn, kết quả có thể khác nhau |
| Phù hợp cho | Lint sau khi sửa, chặn lệnh nguy hiểm, ghi log, thông báo | Quy trình cần suy luận, tài liệu tham khảo, việc nhiều bước |
Đặt rào chắn (guardrail) vào hook. Một chỉ dẫn kiểu “không bao giờ sửa .env” trong CLAUDE.md hay skill chỉ là một đề nghị, không phải một đảm bảo. Một PreToolUse hook chặn thao tác đó mới là thực thi bắt buộc. Nếu một quy tắc bắt buộc phải đúng mọi lúc, hãy biến nó thành hook thay vì chỉ dặn trong prompt.
Kết hợp các tính năng
Phần tiêu đề “Kết hợp các tính năng”Mỗi phần mở rộng giải quyết một vấn đề khác nhau: CLAUDE.md lo phần ngữ cảnh cố định, skill lo kiến thức/quy trình theo yêu cầu, MCP lo kết nối bên ngoài, subagent lo cách ly ngữ cảnh, hook lo tự động hoá. Một thiết lập thực tế thường kết hợp cả — ví dụ: CLAUDE.md cho quy ước dự án, một skill cho quy trình deploy, MCP để kết nối database, và một hook để lint sau mỗi lần sửa file.
| Kết hợp | Cách hoạt động | Ví dụ |
|---|---|---|
| Skill + MCP | MCP lo kết nối; skill dạy Claude dùng kết nối đó cho tốt | MCP kết nối database, skill mô tả schema và pattern truy vấn |
| Skill + Subagent | Skill khởi động nhiều subagent làm song song | Skill /audit khởi động các subagent kiểm tra bảo mật, hiệu năng, style riêng biệt |
| CLAUDE.md + Skill | CLAUDE.md giữ quy tắc luôn-đúng; skill giữ tài liệu tham khảo nạp khi cần | CLAUDE.md nói “theo quy ước API của chúng ta”, skill chứa toàn bộ style guide |
| Hook + MCP | Hook kích hoạt hành động ra ngoài qua MCP | Hook sau khi sửa gửi thông báo Slack khi Claude sửa file quan trọng |
Chi phí ngữ cảnh của từng tính năng
Phần tiêu đề “Chi phí ngữ cảnh của từng tính năng”Mỗi tính năng bạn thêm vào đều tốn một phần ngữ cảnh của Claude. Quá nhiều có thể làm đầy cửa sổ ngữ cảnh, hoặc gây nhiễu khiến Claude kém hiệu quả hơn (skill không được gọi đúng lúc, Claude quên mất quy ước…).
| Tính năng | Nạp khi nào | Chi phí ngữ cảnh |
|---|---|---|
| CLAUDE.md | Đầu phiên | Toàn bộ nội dung, mỗi request |
| Skill | Đầu phiên + khi dùng | Thấp (chỉ mô tả) cho tới khi thực sự gọi |
| MCP server | Đầu phiên | Chỉ tên tool; schema đầy đủ nạp khi cần |
| Subagent | Khi được gọi | Ngữ cảnh riêng, tách biệt khỏi phiên chính |
| Hook | Khi trigger | Gần như bằng 0, trừ khi hook trả thêm ngữ cảnh |
Xem mô phỏng trực quan hơn tại Cửa sổ ngữ cảnh.