Claude Code advanced patterns: CLAUDE.md, hooks, MCP, subagents — recap từ webinar Anthropic
Recap chi tiết từ webinar Anthropic ngày 24/03/2026 — ba bề mặt điều khiển, ba tầng song song hóa, và cách team Anthropic dùng Claude Code trong thực tế.
Claude Code advanced patterns: CLAUDE.md, hooks, MCP, subagents — recap từ webinar Anthropic
Nếu bạn đang dùng Claude Code kiểu gõ prompt, nhận code, copy dán — thì team Anthropic dùng nó khác hẳn.
Ngày 24/03/2026, Anthropic tổ chức webinar Claude Code Advanced Patterns: Subagents, MCP, and Scaling to Real Codebases. Ba diễn giả — Lizzie (Applied AI, chuyên mảng state & local gov.), Alon Krifcher (Applied AI Architect), và Kacie (Marketing Lead cho Claude Code) — trình bày kiến trúc điều khiển mà kỹ sư Anthropic dùng hàng ngày.
Buổi này nặng về mental model và kiến trúc — không phải giới thiệu tính năng.
Dưới đây là recap chi tiết — bỏ phần marketing, giữ lại cái sườn thật nhất cho anh em builders.
TL;DR
Cho người bận: Sức mạnh thật sự của Claude Code không nằm ở việc viết thêm nhiều code — mà nằm ở lớp orchestration bạn xây dựng xung quanh nó. Ba bề mặt điều khiển (CLAUDE.md = bộ nhớ, Hooks = phản xạ, MCP = mắt/tai/tay) cộng ba tầng song song hóa (parallel terminals, subagents, agent teams). Kết quả? Code review agent-team-based đã giúp Anthropic tăng tỷ lệ PR được review có ý nghĩa từ 16% lên 54%.
Cho người muốn đọc sâu: Kéo xuống — từng phần đều có framework, ví dụ, và bảng quyết định.
Ba bề mặt điều khiển
Lizzie đưa ra một cách phân loại gọn:
“CLAUDE.md is memory. Hooks are reflexes. MCP is Claude’s eyes and ears and hands.”
Nghe thì đơn giản, nhưng phần lớn user đang nhồi mọi thứ vào CLAUDE.md — cả instructions, cả automation logic, cả external tool config — rồi thắc mắc sao Claude “quên” hoặc “phớt lờ.” Lý do? Sai bề mặt điều khiển.

Để mình giải thích rõ hơn từng cái.
CLAUDE.md — bộ nhớ tĩnh, và giới hạn 200 dòng
CLAUDE.md là nơi bạn lưu những sự thật tĩnh mà Claude không thể tự suy ra từ code: convention (quy ước) dự án dùng, framework nào cho frontend, cách đặt tên biến, rule khi viết test.
Nhưng team Anthropic phát hiện một vấn đề: file hướng dẫn quá dài khiến Claude giảm ưu tiên các rule của bạn. Phép thử litmus của Lizzie:
“Would removing this line actually cause Claude to make mistakes? If not, consider cutting it.”
Giữ mỗi file CLAUDE.md dưới 200 dòng. Nếu bạn có monorepo, dùng CLAUDE.md lồng nhau — một file cho mỗi package/module. Team UI giữ rule riêng, team API giữ rule riêng. Không ai cần đọc rule của nhau.
Hãy coi context như bất động sản — mỗi token phải xứng đáng với chỗ đứng của nó.
Tip thêm: chuyển topic-specific rules vào thư mục .claude/rules/ với frontmatter chỉ định path scope. Kiểu “rule này chỉ áp dụng khi Claude đang sửa file trong /api/.”
Hooks — hành động deterministic, không cần “cầu nguyện”
Phần này đáng chú ý vì nó thay đổi cách nghĩ về automation trong Claude Code.
Bạn có đang viết trong CLAUDE.md dòng kiểu “Luôn chạy test trước khi commit” không? Nếu có, bạn đang dùng prompt ở chỗ nên dùng hooks.
“Hooks dành cho những lúc Claude không cần phải nghĩ.”
Hooks kích hoạt deterministic (chắc chắn xảy ra) trên các sự kiện lifecycle: pre-tool-use, post-tool-use. Claude không hỏi. Claude không quên. Hook tự động kích hoạt.
Demo thực tế trong webinar: Lizzie tạo một hook pre-tool-use chặn git commit cho đến khi có test cho feature mới. Claude vừa hoàn thành feature @mentions, muốn commit → hook phát hiện không có test → chặn commit → tự động gọi subagent test-author viết test → test pass → commit thành công. Zero human intervention.
Ví dụ khác: hook chạy Prettier và lint trước mỗi commit. Hoàn toàn tự động, không cần prompt, không cần nhắc.
Rule of thumb: Nếu hành động đó cần xảy ra mỗi lần, không ngoại lệ → dùng Hook. Nếu hành động đó phụ thuộc vào ngữ cảnh → giữ trong CLAUDE.md.
MCP — mắt, tai, và tay của Claude
MCP (Model Context Protocol) kết nối Claude tới trạng thái bên ngoài: Figma, Jira, database, Google Drive. Lizzie dùng một phép so sánh hay:
“MCP is like a USB-C plug. One plug to connect to any service on the other end.”
Nhưng — và đây là cái mấu chốt — đừng wrap CLI trong MCP tools. Lizzie nói rõ: Claude đã có thể gọi trực tiếp gh, aws, docker qua Bash. MCP tỏa sáng khi Claude cần suy luận trên trạng thái bên ngoài — lấy design từ Figma, query database, tạo ticket Jira.
Bài test đơn giản:

Đừng over-engineer. Hãy để Bash là Bash.
Ba scope của MCP — hiểu sai scope là lỗi số 1
| Scope | File | Chia sẻ | Khi nào dùng |
|---|---|---|---|
| Local | .mcp.json | Chỉ bạn | Thử nghiệm, phát triển |
| Project | .mcp.json (committed) | Cả team | Tool ổn định, team cần dùng |
| User | ~/.claude.json | Mọi project | Tool cá nhân dùng mọi nơi (Figma, Drive) |
Lizzie khuyên: bắt đầu với Local để thử nghiệm, chuyển sang Project khi ổn định, dùng User cho những MCP bạn cần ở mọi nơi. Scope sai = Claude không thấy tool bạn vừa cấu hình. Luôn kiểm tra scope trước.
Ba tầng song song hóa — từ ủy thác đến hợp tác
Anthropic phân biệt ba tầng chạy song song, mỗi tầng phù hợp với một kiểu task khác nhau.
Tầng 1: Parallel Claude — bạn là nhạc trưởng
Mở nhiều terminal, mỗi terminal chạy một session Claude Code riêng. Bạn — con người — điều phối. Task độc lập, terminal riêng biệt.
Dùng claude --worktree để tránh merge conflict khi nhiều session cùng sửa một repo. Gần như mọi kỹ sư tại Anthropic đều dùng TMux để quản lý nhiều session.
Tầng 2: Subagents — chuyên gia đi làm việc vặt
“Subagents are specialists running out on an errand just to return the most relevant information to your generalist.”
Subagents sống bên trong một session duy nhất. Bạn giao cho chúng “bài tập” — nghiên cứu codebase, viết test, tìm kiếm context — và chúng trả về bản tóm tắt đã nén để bảo vệ context window chính.
Đây là trade-off ẩn mà ít ai nói đến: Skills được nạp vào toàn bộ context window; kết quả Subagent được nén lại. Khi Claude load một skill, toàn bộ file markdown đi vào context. Khi subagent làm research, chỉ bản tóm tắt trở về.
Lizzie demo rõ: “Output nghiên cứu sẽ rất lớn. Nếu nó đổ hết vào session chính, tôi sẽ đốt context vào grep results mà tôi sẽ không bao giờ nhìn lại.”
Hãy chọn kiến trúc context cẩn thận như chọn kiến trúc code.
Tầng 3: Agent Teams — đầu bếp phó cùng nấu bữa ăn
“Think of agent teams like a chef delegating to sous chefs — chopping onions, chopping carrots, then assembling the pot pie.”
Agent teams khác subagents ở bản chất: đây là các session Claude Code song song đầy đủ giao tiếp với nhau. Chúng chia công việc, đồng bộ tiến độ, và mỗi agent có context riêng. Lý tưởng cho refactor đa dịch vụ chạm vào 5 package cùng lúc.
Đừng nhầm lẫn giữa ủy thác và hợp tác. Subagents ủy thác; Agent Teams hợp tác.
Code Review — từ 16% lên 54% PR có review meaningful
Anthropic chia sẻ số liệu nội bộ về code review.
“Code output per Anthropic engineer has grown over 200% in the last year. Manual code review started to really slow people down.”
Khi output tăng 200%, code review trở thành nút thắt. Trước khi có code review agent, chỉ 16% PR nhận được comment có ý nghĩa. Sau khi triển khai: 54%.
| Chỉ số | Trước | Sau |
|---|---|---|
| PR có review meaningful | 16% | 54% |
| Số agent review cho PR lớn | 1 (reviewer người) | 6–7 (agent chuyên biệt) |
Hệ thống review quay nhiều reviewer chuyên biệt với context trên toàn bộ codebase — bắt được bug mà review chỉ-dựa-trên-diff sẽ bỏ sót. Review scale theo kích thước PR: thay đổi nhỏ được pass nhẹ, migration lớn nhận được “sáu, bảy cặp mắt” review.
”Claude review code Claude viết — có thiên vị không?”
Câu hỏi này xuất hiện trong Q&A. Alon trả lời:
“When you instantiate models with new context windows and in new surfaces, they really do act in the most unbiased way possible.”
Mỗi lần khởi tạo với context window mới, prompting khác, và mục tiêu khác → Claude hoạt động độc lập. Anthropic thấy Claude Code Review bắt được bug mà Claude đã bỏ sót trong lúc code. Lo ngại “Claude review Claude” là hiểu sai cách hoạt động của context windows. Context khác nhau = góc nhìn khác nhau.
Code Review vs. @claude trong GitHub Actions
| Code Review | @claude GitHub Actions | |
|---|---|---|
| Bản chất | Agent team chuyên dụng, always-on | Agent tổng quát |
| Token | Tốn nhiều hơn | Ít hơn |
| Khi nào dùng | Code quan trọng cho business, team thiếu người review, repo cần review mọi PR | Task linh hoạt: fix bug, implement feature, trả lời câu hỏi trên issue |
Một số chi tiết đáng lưu ý từ demo và Q&A
Lệnh /btw
Lizzie tình cờ nhắc đến lệnh này trong demo. Khi Claude đang chạy subagent khám phá codebase, cô ấy gõ /btw what are the available subagents — nhận được câu trả lời mà không phá vỡ workflow đang chạy.
Đáng thử nếu bạn chưa biết. /btw cho câu hỏi phụ, /init để auto-generate CLAUDE.md.
Auto Mode — thay thế an toàn cho dangerously skip permissions
Anthropic thông báo Auto Mode ngay trong buổi webinar. Đây là chế độ cho phép Claude chạy dài mà không cần duyệt từng hành động, nhưng với hệ thống an toàn tốt hơn so với việc tắt hết permission.
“It’s a safer, long running alternative to dangerously skip permissions.” — Alon
Nếu bạn đang dùng --dangerously-skip-permissions, hãy chuyển sang Auto Mode.
MCP Server cần reconnect sau khi tạo tool mới
Trong demo, Claude vừa tạo thêm tool mới trong TrackLine MCP server (assign ticket). Lizzie phải reconnect MCP server để Claude nhận diện tool mới. Chi tiết nhỏ nhưng nhiều người sẽ mắc: không reconnect = Claude không thấy tool.
Bảng quyết định: Chọn đúng công cụ cho đúng tình huống
| Nếu bạn cần… | Hãy dùng | Tránh dùng |
|---|---|---|
| Claude tuân theo convention dự án | CLAUDE.md | Prompt preamble dài |
| Hành động deterministic mỗi lần commit | Hook (pre-tool-use) | Prompt “luôn chạy test trước khi commit” |
| Truy cập Figma/Jira/database | MCP server | Wrap CLI vào MCP |
| Nghiên cứu codebase không đốt context | Subagent (explore) | Grep trực tiếp trong session chính |
| Refactor đa dịch vụ | Agent Teams | Tự mở nhiều terminal thủ công |
| Review PR quan trọng | Code Review | Chỉ dùng @claude GitHub Actions |
| Hỏi nhanh không ngắt workflow | /btw | Gõ câu hỏi vào prompt chính |
Hành động: lộ trình 4 tuần
Tuần này — bắt đầu ngay
- Chạy
/inittrong project để auto-generate CLAUDE.md nếu chưa có → chỉnh sửa xuống dưới 200 dòng - Tạo một hook đầu tiên:
pre-tool-usechogit commit→ tự động chạy test hoặc lint - Thử
/btwkhi Claude đang chạy task dài - Kiểm tra MCP scope nếu Claude không thấy tool bạn vừa cấu hình
Tuần 2–3 — song song hóa
- Học
claude --worktreeđể chạy nhiều session song song trên cùng repo - Tạo subagent tùy chỉnh đầu tiên (ví dụ:
agents/researcher.mdcho khám phá codebase) - Cấu hình notification hooks để có thể rời terminal khi task chạy lâu
Tuần 4+ — nâng cao
- Thử nghiệm Claude Code in GitHub Actions cho review PR
- Đánh giá Claude Code Review cho repo quan trọng nhất
- Tối ưu context: cắt instructions không dùng, nén verbose skills
Cờ đỏ — dấu hiệu bạn đang dùng sai
- 🚨 CLAUDE.md trên 200 dòng → instruction adherence giảm
- 🚨 Hai task phức tạp chạy song song mà bạn liên tục chuyển qua lại → chi phí context-switching của con người vượt quá lợi ích
- 🚨 Dùng Auto Mode mà không hiểu scope → rủi ro an toàn
- 🚨 Không reconnect MCP sau khi tạo tool mới → Claude không thấy tool
- 🚨 Dùng Code Review cho mọi PR nhỏ → tốn token không cần thiết
- 🚨 Dùng prompt ở chỗ nên dùng hooks → không đáng tin cậy
Kết
Buổi webinar này xác nhận một điều mà mình đã nói nhiều lần: người chiến thắng không phải người có model lớn nhất — mà là người có context được cấu trúc tốt nhất.
Claude Code không chỉ là “agentic coding assistant.” Nó là một hệ thống mà bạn cần thiết kế lớp orchestration xung quanh — CLAUDE.md cho bộ nhớ, Hooks cho phản xạ, MCP cho kết nối, Subagents cho ủy thác, Agent Teams cho hợp tác.
Nếu bạn vẫn đang prompt kiểu hỏi-đáp từng dòng, thì bạn đang dùng sức người để đẩy một cỗ máy tự động.
Chuyển tư duy từ “user” sang “orchestrator” đi. Logic đi trước, cú pháp đi sau.
Recap từ webinar chính thức Claude Code Advanced Patterns: Subagents, MCP, and Scaling to Real Codebases — Anthropic, 24/03/2026. Diễn giả: Lizzie, Alon Krifcher, Kacie.