Bỏ qua để đến nội dung

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.

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
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.

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.

  • 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 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/.

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 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.

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

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.