Blog

Skills, Subagent, MCP và Plugin trong Claude Code: Nên chọn gì?

Markdown

Skills, subagent, MCP và plugin là bốn lớp mở rộng Claude Code. Tôi giải thích khi nào nên dùng từng lớp, kèm ma trận quyết định có thể dùng ngay và các ví dụ dự án.

Đọc toàn bộ bài viết

Hiện tại trong Claude Code có năm cách để thực hiện cùng một việc đánh giá mã: slash command, skill, subagent, plugin hoặc chỉ đơn giản là một câu lệnh trong khung chat. Và theo mặc định, không cách nào tốt hơn cách nào—việc lựa chọn phụ thuộc vào nhiệm vụ, ngân sách token và những người khác sẽ sử dụng nó ngoài bạn.

Đây là hướng dẫn tôi ước gì mình đã có từ một năm trước. Một cây quyết định gồm 4 câu hỏi, ma trận “nhiệm vụ → lớp” có thể dùng ngay và 5 lỗi thường gặp khiến những người làm vibe coding mà tôi cộng tác phải tốn token.

Tìm hiểu cách làm việc với dịch vụ trong tài liệu Ailoot.

Skills, subagent, MCP và plugin là gì, mỗi thứ gói gọn trong một câu?

Điểm chính

Skill là một phương pháp được đóng gói mà Claude tải khi được kích hoạt. Subagent là một “đồng nghiệp” hoạt động riêng, có ngữ cảnh riêng để xử lý một nhiệm vụ dài. MCP là cầu nối tới hệ thống bên ngoài (cơ sở dữ liệu, GitHub, Notion). Plugin là bộ sẵn có do người khác tạo, gồm tất cả những thứ trên và được cài đặt bằng một dòng lệnh.

Trước khi lựa chọn, hãy phân biệt các thuật ngữ. Cả bốn lớp đều có cùng mục tiêu—mở rộng những gì Claude có thể làm ngay từ đầu. Nhưng bản chất của mỗi lớp khác nhau.

Skill là một thư mục có tệp SKILL.md mô tả thời điểm và cách áp dụng một phương pháp cụ thể. Anthropic ví skill như hướng dẫn dành cho nhân viên mới: bạn không chỉ đạo họ từng bước mỗi ngày; bạn đưa cho họ một quy trình.

Subagent là một phiên Claude riêng biệt, có ngữ cảnh riêng, được khởi chạy từ cuộc trò chuyện chính. Nó có một đặc điểm then chốt: tính cô lập. Subagent có thể đọc 30 tệp, tạo bản tóm tắt rồi chỉ gửi lại bản tóm tắt đó cho khung chat chính. Ngữ cảnh của cuộc trò chuyện chính vẫn gọn gàng.

MCP (Model Context Protocol) là một tiêu chuẩn mở của Anthropic để kết nối Claude với các hệ thống bên ngoài. Trong một bài đăng blog ngày 13 tháng 11 năm 2025, Anthropic đã giải thích điểm khác biệt một cách rõ ràng nhất:

MCP kết nối Claude với dữ liệu; Skills dạy Claude cách làm việc với dữ liệu đó. Nếu bạn giải thích cách dùng một công cụ hoặc làm theo quy trình—ví dụ, “khi truy vấn cơ sở dữ liệu của chúng tôi, hãy luôn lọc theo khoảng thời gian trước”—thì đó là Skill. Nếu bạn cần Claude có quyền truy cập vào cơ sở dữ liệu hoặc tệp Excel ngay từ đầu—thì đó là MCP.

— Anthropic Engineering, https://claude.com/blog/skills-explained

Plugin là bộ skills, subagent, hook và command có sẵn do người khác tạo, được đóng gói trong một marketplace. Cài đặt bằng một dòng lệnh với /plugin install, bạn sẽ có mọi thứ cùng lúc. Nếu skill là quy trình của riêng bạn, thì plugin là quy trình mua từ một công ty khác.

Tóm lại, skills là công thức, subagent là đồng nghiệp chuyên môn, còn MCP cung cấp các công cụ bên ngoài để Claude truy cập dịch vụ và dữ liệu. Chi phí token khác nhau: skill rẻ nhất (chỉ tải khi được kích hoạt), còn MCP tốn kém hơn đáng kể (mỗi máy chủ được kết nối liên tục chiếm dung lượng trong cửa sổ ngữ cảnh).

Vì sao cần 4 lớp nếu bạn có thể dùng một tệp CLAUDE.md?

Điểm chính

CLAUDE.md là một yêu cầu: Claude đọc tệp này khi bắt đầu phiên và có thể bỏ qua sau 20 tin nhắn. Skills, subagent, MCP và plugin giải quyết những việc CLAUDE.md không làm được: mở rộng quy mô, cô lập ngữ cảnh, truy cập thế giới bên ngoài và chia sẻ phương pháp làm việc với nhóm.

Trong dự án được mô tả, CLAUDE.md là một bản đồ quy tắc lớn: nội dung cần đặt ở đâu, cách xuất bản và những thỏa thuận đang áp dụng. Không có tệp này, Claude sẽ bắt đầu mỗi phiên mới từ đầu.

Nhưng CLAUDE.md có giới hạn. Hãy xem ba tình huống khiến nó không còn hiệu quả.

Tình huống 1: một quy tắc chỉ thỉnh thoảng mới được làm theo. CLAUDE.md ghi: “luôn chạy npm run build trước khi git push.” Claude đọc tệp lúc bắt đầu phiên, gật đầu, bắt đầu viết mã sau 25 tin nhắn rồi quên mất. Tôi đã ba lần bắt gặp chính mình đẩy mã lên mà chưa build; những lần đẩy đó đều gây lỗi trên môi trường production. Hook cấu hình đúng và đã thử có thể chạy kiểm build xác định, từ chối thao tác được phủ. Độ phủ tùy event và đường công cụ: hook Claude Code tự nó không chặn mọi push ở terminal/app khác. Xác minh build cố tình lỗi chặn đúng đường bạn dùng.

Tình huống 2: quy trình 15 bước lặp đi lặp lại. Trong ví dụ được mô tả, mỗi hướng dẫn đều trải qua 14 giai đoạn: nghiên cứu → cấu trúc → MDX → 7 lượt QA song song → xuất bản production → IndexNow. Nếu lần nào tôi cũng viết prompt “chạy Giai đoạn 1, rồi 2, rồi 3”, tôi sẽ tốn token trước cả khi bắt đầu. Vì vậy, toàn bộ quy trình này được đóng gói trong skill build-masterskaya-guide—một bộ hướng dẫn 34 KB được khởi chạy bằng câu “hãy tạo hướng dẫn mới cho dự án”.

Tình huống 3: nhiệm vụ ngốn ngữ cảnh. Để kiểm tra độ cập nhật của một hướng dẫn đã xuất bản, Claude phải đọc bản ghi chép livestream 30 KB, 20 bản tổng kết hồi cứu, mỗi bản 5 KB, rồi so sánh chúng với trang web hiện tại. Nếu làm việc này trong khung chat chính, đến cuối lượt đánh giá, ngữ cảnh của tôi sẽ chứa 200K token rác. Subagent thực hiện cùng công việc, chỉ gửi lại bản tóm tắt 300 từ cho cuộc trò chuyện chính rồi kết thúc.

Tình huống 4: tôi muốn nhóm có cùng bộ mẫu như mình. Một bộ quy tắc có sẵn cho thiết kế frontend, hook để xuất bản qua Coolify và MCP để kiểm tra bằng Playwright. Đó là plugin: tôi đóng gói thiết lập của mình, xuất bản lên marketplace và đồng nghiệp cài đặt bằng một dòng lệnh.

CLAUDE.md bao quát những điều cơ bản: “ở đây chúng ta làm việc như thế nào”. Bốn lớp bổ sung giải quyết những việc CLAUDE.md không thể làm về mặt cấu trúc: lặp lại thông qua trigger, cô lập ngữ cảnh, truy cập thế giới bên ngoài và chia sẻ.

Khi nào nên dùng skill thay vì CLAUDE.md?

Điểm chính

Skill là lựa chọn phù hợp khi có một quy trình lặp lại được, có trigger rõ ràng và bạn thực hiện quy trình đó nhiều hơn một lần mỗi ngày. Khác với CLAUDE.md, skill chỉ tải khi cần và không tiêu tốn ngữ cảnh cơ sở trong mọi phiên.

Cách nhận biết có nên tạo skill rất đơn giản: bạn nhận ra mình cứ sao chép cùng một prompt dài từ ghi chú vào khung chat. Đến lần thứ ba là đã có tín hiệu.

Hiện tôi có 7 thư mục trong ~/.claude/skills/: build-masterskaya-guide, build-vc-spoke, build-reel-script, build-practicum-instruction, update-config, simplify và keybindings-help. Skill được dùng nhiều nhất là build-masterskaya-guide (hướng dẫn này được viết bằng skill đó). Bên trong là 34 KB phương pháp làm việc: cần trải qua những giai đoạn nào, cần chạy những lượt QA đa tác nhân nào, điều kiện chặn nào phải dừng quy trình và cần lưu những thành phẩm nào vào /tmp/.

Khi nào không nên tạo skill.

  • Quy tắc như “trả lời bằng ngôn ngữ người dùng muốn” thuộc về CLAUDE.md, không phải skill. Skill chỉ tải khi được kích hoạt, nhưng quy tắc này cần luôn được áp dụng.
  • Chỉ dẫn dùng một lần như “hãy chạy tái cấu trúc ngay” thuộc về khung chat, không phải skill.
  • Việc cần ngữ cảnh riêng có thể dùng tác nhân con; nếu còn theo quy trình lặp, giữ phương pháp đó trong skill.

Lỗi phổ biến chính. Lỗi thường gặp nhất của những người làm vibe coding là nhồi quy trình vào subagent trong khi đáng ra nên dùng skill. Subagent tốn nhiều token hơn (vì có ngữ cảnh riêng), khởi chạy chậm hơn và thường là quá mức cần thiết. Nếu nhiệm vụ có thể được mô tả bằng 1.500–2.000 từ phương pháp làm việc mà không cần đọc tệp bên ngoài, thì đó là skill.

Cách cấu trúc skill, nội dung cần có trong frontmatter và các cụm từ trigger hiệu quả được trình bày trong hướng dẫn Claude Code Skills năm 2026: Cách xây dựng thư viện Skills cá nhân.

Khi nào nên dùng subagent thay vì skill?

Điểm chính

Subagent chuyển phần việc nặng sang ngữ cảnh riêng và chỉ gửi lại bản tóm tắt cho khung chat chính. Hãy dùng nó khi nhiệm vụ cần đọc nhiều tệp, phân tích dài hoặc thực hiện song song 5 lượt kiểm tra giống nhau—và bạn không cần xem toàn bộ phần trung gian trong cuộc trò chuyện chính.

Skill lưu trữ phương pháp làm việc; subagent thực hiện công việc. Đây là hai lớp khác nhau, thường bị nhầm lẫn vì cả hai đều được khởi chạy “từ khung chat”.

Subagent chỉ phù hợp khi cần cô lập ngữ cảnh. Phiên Claude chính có ngân sách 200,000 token (hoặc 1 triệu trong bản beta). Nếu bạn yêu cầu Claude đọc 30 tệp và phân tích từng tệp trong khung chat chính, phần đọc trung gian sẽ ngốn nửa cửa sổ ngữ cảnh. Subagent thực hiện toàn bộ công việc đó trong một phiên riêng rồi chỉ gửi kết quả về khung chat chính.

Ví dụ cụ thể trong dự án. Mỗi hướng dẫn đều trải qua một số lượt kiểm tra QA song song: văn phong, đối chiếu trích dẫn và dữ kiện với nguồn sơ cấp, cấu trúc dành cho công cụ tìm kiếm và tính toàn vẹn của liên kết nội bộ lẫn bên ngoài. Mỗi lượt kiểm tra dùng ngữ cảnh riêng: bảng thuật ngữ quy tắc, WebFetch trên hàng chục URL và grep qua văn bản.

Nếu tôi chạy tất cả những lượt kiểm tra này trong một khung chat, ngữ cảnh sẽ ngốn hết trước khi hoàn thành lượt đầu tiên. Chạy các subagent song song với run_in_background: true giải quyết vấn đề: chúng làm việc ở chế độ nền, khung chat chính tiếp tục xử lý việc khác, và sau 4–6 phút tôi nhận được các báo cáo ngắn gọn rồi áp dụng những thay đổi.

Ví dụ thứ hai—nghiên cứu chuyên sâu. Khi chọn chủ đề cho hướng dẫn mới, tôi dùng 4 subagent để thu thập tín hiệu song song:

  • V1 - diễn đàn và cộng đồng trong 14 ngày
  • V2 - mạng xã hội
  • V3 - nền tảng video + blog Anthropic
  • V4 - Khoảng trống SEO

Mỗi subagent trả về 30–40 mục kèm điểm lan truyền. Tôi tổng hợp chúng vào một danh sách, chấm trọng số trên 9 khía cạnh rồi chọn mục tốt nhất. Không có subagent, giai đoạn này kéo dài 2–3 giờ và ngốn ngữ cảnh chính.

Khi nào không nên tạo subagent.

  • Nhiệm vụ không cần đọc tệp hoặc dùng WebFetch thuộc về khung chat chính.
  • Quy trình lặp thuộc skill nhưng có thể chạy trong tác nhân con khi cách ly hữu ích.
  • Truy cập ngoài cần công cụ được phép như MCP/CLI; tác nhân con có thể dùng khi được giao.

Lỗi phổ biến chính. Tạo subagent tên backend-engineer hoặc qa với hy vọng Claude tự hiểu khi nào cần dùng. Subagent chuyên biệt (như migration-test-writer hoặc api-route-reviewer) có thể hữu ích hơn so với subagent chung chung. Tên và chỉ dẫn của subagent càng chính xác, Claude càng chọn đúng nó.

Cách tạo subagent cho nhiệm vụ cụ thể, cú pháp frontmatter và 5 ví dụ có thể dùng ngay được trình bày trong hướng dẫn Claude Code Subagents năm 2026: Hướng dẫn từng bước.

Khi nào nên dùng MCP thay vì skill hoặc subagent?

Điểm chính

MCP cấp công cụ và truy cập dữ liệu tới cơ sở dữ liệu, GitHub, Sentry, trình duyệt. Dùng khi workflow cần quyền đó; skill có thể cấp phương pháp dùng cùng công cụ. Hai lớp bổ sung nhau.

Anthropic đưa ra công thức ngắn gọn nhất về sự khác biệt trong một bài đăng blog: MCP kết nối Claude với dữ liệu; skills dạy Claude cách làm việc với dữ liệu đó.

Ví dụ skill xem issue GitHub cần nội dung issue. Cấp qua công cụ MCP được phép, CLI hoặc văn bản cung cấp. Skill định cách xem và cấu trúc phát hiện; riêng MCP không định quy trình đó.

Bộ MCP cụ thể của tôi.

  • Playwright MCP - QA trực quan cho mọi hướng dẫn. Mở trang trên máy tính và điện thoại, kiểm tra chiều rộng vùng chứa và xem các khối đã hiển thị chưa.
  • Stitch MCP - truy cập hệ thống thiết kế, tạo thành phần theo phong cách thương hiệu.
  • vidIQ MCP - phân tích xu hướng và kiểm tra ý tưởng có khả năng lan truyền.
  • Railway MCP - quản lý hạ tầng triển khai.

Mỗi một trong 4 MCP này đều là cầu nối tới hệ thống bên ngoài. Không có MCP, tôi sẽ phải tự viết mã wrapper hoặc chuyển sang trình duyệt. Có MCP, mọi thứ diễn ra ngay trong phiên Claude.

Chi phí token. MCP là lớp tốn kém nhất. Mỗi máy chủ được kết nối liên tục chiếm dung lượng trong cửa sổ ngữ cảnh: khai báo công cụ, lược đồ đối số và mô tả. Tôi có 4 máy chủ MCP—tức khoảng 8–12K token trong mỗi phiên mới trước cả khi tôi hỏi gì.

Điều đó có nghĩa là chỉ kết nối MCP nếu nó thực sự cần thiết trong hầu hết các phiên. Nếu bạn dùng Sentry MCP mỗi tuần một lần, tốt hơn nên bật theo yêu cầu bằng cờ --mcp sentry thay vì giữ nó trong danh sách thường trực.

Khi nào không nên dùng MCP.

  • Phương pháp “cách làm việc với dữ liệu” thuộc về skill, không phải MCP.
  • Việc đọc dài có thể lợi từ tác nhân con; nếu tệp hoặc bản ghi ở ngoài, tác nhân con đó còn có thể cần MCP.
  • Xuất bản bằng một lệnh thuộc về hook hoặc plugin, không phải MCP.

Lỗi phổ biến chính. Tạo máy chủ MCP cho việc mà skill xử lý tốt hơn. Tôi từng thấy một ví dụ trong cuộc thảo luận trên HN (chính chủ đề đạt 422 điểm vào ngày 27 tháng 5): tác giả viết máy chủ MCP cung cấp “chỉ dẫn đánh giá mã”. Nhưng đó không phải quyền truy cập vào thế giới bên ngoài; đó là một quy trình. Skill làm được cùng việc đó với lượng token ít hơn 10 lần.

Sự cố tranh chấp tài nguyên. Có lần Playwright MCP bị treo với lỗi “Browser is already in use”—lúc đó tôi đang mở cửa sổ Chrome và MCP không thể điều khiển trình duyệt. Đây là bài học quan trọng: máy chủ MCP dùng chung tài nguyên hệ thống. Nếu tài nguyên bị tranh chấp (trình duyệt, cổng hoặc tệp), hãy tính đến việc cô lập ngay từ đầu.

Hướng dẫn có thể dùng ngay để kết nối 7 MCP đang hoạt động nằm trong Claude Code MCP Servers năm 2026: 7 thiết lập sẵn sàng sử dụng.

Khi nào nên dùng plugin thay vì skill hoặc subagent?

Điểm chính

Plugin là bộ skills, subagent, hook và command được đóng gói sẵn do người khác tạo, cài đặt bằng một dòng lệnh thông qua marketplace. Hãy dùng plugin khi bạn không muốn xây dựng mọi thứ từ đầu và tin tưởng tác giả của gói—chẳng hạn với thiết kế frontend, kiểm thử bằng Playwright hoặc tích hợp Telegram.

Skills, subagent và MCP nói về phương pháp làm việc của bạn. Plugin là phương pháp làm việc có sẵn của người khác mà bạn nhập vào thiết lập của mình.

Vào tháng 10 năm 2025, Anthropic ra mắt Claude Code Plugins, cơ chế phân phối chính thức. Plugin là một thư mục có thể chứa:

  • slash command riêng
  • skill riêng
  • subagent riêng
  • hook riêng
  • cấu hình MCP riêng
  • phong cách đầu ra riêng

Tất cả được đóng gói thành một bộ duy nhất với plugin.json. Có thể cài đặt bằng một dòng trong ~/.claude/settings.json hoặc bằng lệnh /plugin install <name>.

Bộ plugin cụ thể của tôi.

  • frontend-design từ marketplace chính thức claude-plugins-official—67 phong cách, 96 bảng màu, 57 cặp phông chữ, 13 framework. Khi tạo khối mới cho trang web hoặc mẫu email, tôi tải plugin này và có ngay toàn bộ thư viện.
  • playwright từ cùng marketplace chính thức—bộ skills cùng cấu hình MCP để kiểm thử trình duyệt.
  • telegram—bộ công cụ có sẵn để quản lý tài khoản Telegram từ Claude Code (chính sách, allowlist, ghép nối).
  • trailofbits/skills—bộ skill bảo mật của Trail of Bits, công ty mà tôi tin tưởng về các vấn đề bảo mật.

Cả 4 plugin chỉ chiếm ba dòng trong settings.json. Không có plugin, tôi sẽ mất hàng giờ để tự xây dựng thư viện tương tự.

Khi nào không nên dùng plugin.

  • Nếu phương pháp làm việc hoàn toàn là của bạn và không cần mở rộng cho người khác, hãy giữ nó dưới dạng skill.
  • Nếu bạn chưa biết ai sẽ dùng nó, trước tiên hãy thử dùng riêng như một skill.
  • Nếu bạn cần nhanh chóng đưa ba tệp lên một máy mới, lệnh cp ~/.claude/skills/X /new/machine/.claude/skills/ là đủ.

Lỗi phổ biến chính. Dùng plugin để thay thế CLAUDE.md—ví dụ, tạo plugin chứa quy tắc “cách chúng ta làm việc trong dự án này”. Plugin được thiết kế để phân phối và tái sử dụng. Nếu quy tắc chỉ dành riêng cho một kho mã, hãy đặt chúng trong CLAUDE.md, không phải plugin.

Hướng tới năm 2026: Anthropic rõ ràng đang chuyển sang marketplace plugin dành cho nhóm. Điều đó có nghĩa là các công ty sẽ có thể xuất bản phương pháp nội bộ dưới dạng plugin, tạo phiên bản và cập nhật cho toàn bộ nhân viên bằng một lệnh. Với doanh nhân độc lập, điều đó có nghĩa là: cài đặt những gì đã có sẵn và đừng tự làm lại.

Cây quyết định: 4 câu hỏi cần tự hỏi trước mỗi nhiệm vụ

Hỏi cả bốn câu độc lập. Mỗi “có” xác định một nhu cầu; tiếp tục kiểm câu còn vì một workflow có thể kết hợp nhiều lớp. Nếu tất cả “không”, prompt thường và hướng dẫn dự án có thể đủ.

Câu 1: Có quy trình lặp đáng giữ không?

Nếu có, gói phương pháp thành skill trong SKILL.md, mô tả rõ khi dùng. Nó cấp quy trình, không tự cấp truy cập ngoài hay ngữ cảnh riêng.

Câu 2: Việc có nên có ngữ cảnh riêng hoặc vai trò được giao tập trung không?

Nếu có, dùng subagent, cấp việc và công cụ chính xác. Cùng tác vụ có thể theo phương pháp skill bên trong ngữ cảnh cách ly đó.

Câu 3: Có cần công cụ hoặc dữ liệu ngoài không?

Nếu có, cấp quyền được phép qua MCP hoặc công cụ phù hợp khác, như CLI đã cấu hình. Skill mô tả cách dùng quyền; tác nhân con có thể là bên dùng công cụ.

Câu 4: Có nên phân phối, bảo trì setup dưới dạng gói không?

Nếu có, dùng plugin phân phối skill, định nghĩa agent, hook hoặc cấu hình MCP. Gói có thể của bạn hoặc tác giả khác.

Ví dụ kết hợp: đánh giá issue GitHub định kỳ. Skill định quy trình và định dạng kết quả. MCP GitHub hoặc CLI đã cấu hình cấp truy cập issue được phép. Tác nhân con có thể đọc thread dài trong ngữ cảnh riêng và trả phát hiện. Plugin phân phối tổ hợp cho nhóm. Cả bốn câu có thể là “có”; không câu nào hủy câu khác.

5 lỗi chọn lớp mà người làm vibe coding thường mắc

Điểm chính

Những lỗi tốn kém nhất là dùng subagent thay skill, MCP thay skill, plugin thay CLAUDE.md và skill thông qua hook. Mỗi lỗi đều gây tốn token hoặc làm hỏng hành vi. Tôi sẽ chỉ ra điều đã xảy ra và cách xử lý đúng qua các ví dụ cụ thể.

Mỗi tuần tôi đều thấy 5 kiểu lỗi này ở những người làm vibe coding mà tôi cộng tác. Cứ hai người thì có một người mắc ít nhất một lỗi trong tuần đầu tiên.

Lỗi 1: dùng subagent thay cho skill.

Triệu chứng: tác giả tạo subagent để “viết bài blog mới”. Mỗi lần chạy, subagent được tải, đọc 2 KB phương pháp làm việc, tạo bài viết rồi kết thúc. Sau một tuần, tác giả nhận ra mỗi lần chạy tốn thêm 5K token để tải subagent.

Cách xử lý đúng: “cách viết bài” là phương pháp làm việc—đó là skill. Trigger là cụm từ “bài blog mới”. Skill tải vào khung chat chính và không mở phiên riêng. Cách này rẻ hơn 3–5 lần.

Lỗi 2: dùng máy chủ MCP thay cho skill.

Triệu chứng: tác giả viết máy chủ MCP cung cấp chỉ dẫn về “cách đánh giá mã”. Khai báo công cụ, mô tả lược đồ đối số và tài liệu liên tục chiếm ngữ cảnh. Mỗi yêu cầu lãng phí 2–3K token vào những thứ không cần thiết.

Cách xử lý đúng: “cách đánh giá mã” là một quy trình, không phải quyền truy cập vào hệ thống bên ngoài. Hãy dùng skill. MCP chỉ phù hợp khi bạn cần truy cập trực tiếp—ví dụ, truy cập Sentry để lấy các lỗi mới nhất.

Lỗi 3: dùng plugin thay cho CLAUDE.md.

Triệu chứng: tác giả đóng gói quy tắc dự án (“luôn dùng chế độ TypeScript nghiêm ngặt”, “đừng dùng bất kỳ dấu gạch nào”, “chỉ dùng pnpm, không dùng npm”) vào plugin rồi cài đặt. Mỗi phiên mới giờ đây tải một plugin trùng lặp với nội dung đáng ra nên nằm trong CLAUDE.md.

Cách xử lý đúng: quy tắc cho một dự án thuộc về CLAUDE.md của dự án đó. Plugin dành cho phương pháp làm việc có thể mở rộng cho nhiều người hoặc nhiều kho mã.

Lỗi 4: cố tạo skill bằng hook.

Triệu chứng: tác giả thấy hook tự động chạy khi có một sự kiện (ví dụ, trước khi lưu tệp). Họ quyết định tạo “skill bằng hook” để Claude tự động áp dụng phương pháp làm việc cho mỗi lần chỉnh sửa. Kết quả là vòng lặp trigger vô tận, ngữ cảnh bị tiêu tốn và hành vi không thể dự đoán.

Cách xử lý đúng: hook là mã xác định được, dùng để chạy lệnh, định dạng kết quả hoặc chặn thao tác. Hook không tải skill hay gọi Claude. Nếu bạn cần “luôn áp dụng phương pháp X”, hãy dùng skill có trigger hoặc thêm mục vào CLAUDE.md.

Lỗi 5: thêm một lớp khi chẳng cần lớp nào cả.

Triệu chứng: tác giả nghe nói về skills, đọc hướng dẫn, quyết định “mình cần đóng gói phương pháp này” rồi dành cả buổi tối tạo skill cho một nhiệm vụ chỉ xuất hiện mỗi tháng một lần.

Cách xử lý đúng: nhiệm vụ một lần thuộc về khung chat, xử lý tùy tình huống. Chỉ nên tạo skill nếu bạn thực hiện việc đó nhiều hơn một lần mỗi ngày. Nếu không, đó là thiết kế quá mức và sau này còn phải bảo trì.

Qua ví dụ, kiểm nhu cầu độc lập: quy trình, cách ly ngữ cảnh/vai trò, quyền công cụ và phân phối. Thêm từng lớp có mục đích cụ thể; kết hợp khi việc cần nhiều hơn một.

Anthropic nói gì về sự phân mảnh: Claude Code sẽ đi về đâu trong năm 2026

Điểm chính

Claude Code đang hợp nhất các lớp này: năm cách đánh giá mã (command, skill, subagent, plugin hoặc khung chat) đang hội tụ thành một skill /code-review tích hợp sẵn. Vì vậy, đừng lo lắng về việc “có quá nhiều lớp”—trong năm 2026, ranh giới giữa chúng đang mờ dần và đơn giản hóa.

Điều này có ý nghĩa gì trong sáu tháng đến một năm tới?

Thứ nhất: skills đang trở thành lớp chính cho các nhiệm vụ theo quy trình. Anthropic rõ ràng đang đặt cược vào lớp này vì nó rẻ nhất và dễ dự đoán nhất. Nếu chưa hiểu vì sao bạn cần skill trong năm 2026, hãy tìm hiểu nó trước. Tất cả các lớp khác sẽ xoay quanh nó.

Thứ hai: subagent đang trở nên chuyên biệt hơn. Vai trò chính của subagent là cô lập ngữ cảnh cho các nhiệm vụ nặng. Subagent chung chung như qa-engineer sẽ biến mất; các subagent cụ thể như migration-test-writer và api-route-reviewer sẽ còn lại.

Thứ ba: các thông báo mới của Anthropic trong 14 ngày—lệnh /workflows (ngày 28 tháng 5 năm 2026) để điều phối hàng chục subagent và việc tách riêng thanh toán Agent SDK bắt đầu từ ngày 15 tháng 6—cho thấy cách sử dụng có lập trình đang chuyển sang một nhóm tài nguyên riêng. Đây là tín hiệu cho thấy Anthropic đang xây dựng hạ tầng cho các hệ thống tự động gồm hơn 10 agent, thay vì các phiên riêng lẻ.

Với người làm vibe coding trong năm 2026, điều này có nghĩa là một điều đơn giản: bốn lớp sẽ còn tồn tại ít nhất sáu tháng nữa, sau đó một số lớp sẽ hợp nhất. Nhưng cây quyết định bốn câu hỏi vẫn sẽ hữu ích sau khi hợp nhất—vì nó nói về bản chất của nhiệm vụ, không phải tên cụ thể của lớp.

Ma trận có thể dùng ngay: 10 nhiệm vụ thường gặp → lớp phù hợp

Điểm chính

Bảng xác định nhu cầu chính từng tình huống. Các dòng bổ sung nhau; một việc có thể khớp nhiều dòng và kết hợp lớp được liệt kê.

#Tình huống kích hoạtLớp phù hợpVì sao chọn lớp này
1Claude bỏ lỡ cùng một quy tắc 2–3 lần trong một phiênCLAUDE.mdPhản ứng theo yêu cầu, luôn nằm trong ngữ cảnh, không cần trigger
2Tôi gõ cùng một prompt dài nhiều hơn một lần mỗi ngàySkillTải theo yêu cầu, không tiêu tốn ngữ cảnh cơ sở
3Đây là lần thứ ba tôi dán cẩm nang 1.500 từ vào khung chatSkillPhương pháp làm việc theo quy trình, được tải bằng cụm từ trigger
4Nhiệm vụ làm khung chat chính ngập trong hơn 20 tệp cần đọcSubagentCô lập ngữ cảnh; chỉ bản tóm tắt được gửi về khung chat chính
5Cần 5 lượt kiểm tra giống nhau chạy song song (QA, đánh giá, lint)SubagentsKhởi chạy bằng run_in_background; tổng thời gian giảm năm lần
6Tôi muốn đọc issue GitHub hoặc lỗi mới nhất từ SentryMCPTruy cập trực tiếp hệ thống bên ngoài qua giao thức tiêu chuẩn
7Tôi muốn tự kiểm thao tác push được phủHook đã thửKiểm xác định; xác minh trigger và hành vi chặn thật
8Tôi muốn chuyển thiết lập sang kho mã thứ hai hoặc máy mớiPluginPhân phối qua marketplace và có namespace
9Một nhóm 10 người cần tuân theo cùng quy tắcPlugin trong marketplace dành cho nhómCó phiên bản, cài đặt một lần, cập nhật tập trung
10Cần phản hồi webhook từ dịch vụ bên ngoài (Telegram, GitHub Actions)Kênh MCP hoặc Agent SDKĐẩy tin nhắn từ thế giới bên ngoài vào phiên

Quy tắc chính khi dùng bảng này là đừng cố “làm cả 10 việc cùng lúc”. Hầu hết người làm vibe coding độc lập chỉ cần CLAUDE.md + 5–7 skills + 2–4 máy chủ MCP. Subagent và plugin được bổ sung khi dự án phát triển.

Tiếp theo: cách xây dựng không gian làm việc trong Claude Code

Điểm chính

CLAUDE.md lưu các quy tắc cơ bản của dự án, skills đóng gói phương pháp làm việc, subagent phân tán phần ngữ cảnh nặng, MCP kết nối với thế giới bên ngoài, còn plugin phân phối bộ có sẵn do người khác tạo. Đây là năm khối xây dựng cho thiết lập Claude Code của bạn trong năm 2026.

Năm lớp này không xếp nối tiếp nhau; chúng lồng ghép vào nhau. CLAUDE.md là nền tảng của dự án, còn bốn lớp kia được kết nối khi nhiệm vụ phát triển.

Tìm hiểu về Ailoot.

Xem thêm chi tiết

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

Một lượt đánh giá GitHub có cần cả skill, tác nhân con và MCP không?

Có. Skill định quy trình, MCP hoặc CLI được phép lấy dữ liệu issue, tác nhân con có thể đánh giá dài trong ngữ cảnh riêng. Plugin phân phối được cả tổ hợp.

Dùng danh sách bốn câu hỏi thế nào?

Trả lời từng câu độc lập: cần quy trình, cách ly ngữ cảnh, quyền công cụ hay phân phối? Mỗi câu có thêm một yêu cầu cụ thể; câu có đầu tiên không kết thúc lựa chọn.

Tất cả bài viết