Thực tế thì, việc sử dụng các mô hình ngôn ngữ lớn (LLM) để hỗ trợ lập trình đã không còn là điều gì quá xa lạ. Tuy nhiên, ranh giới giữa một lập trình viên biết dùng AI và một chuyên gia làm chủ hoàn toàn công cụ nằm ở khả năng kiểm soát ngữ cảnh và định hình hành vi của AI Agent đó. Đối với công cụ lập trình dòng lệnh mới nhất của Anthropic, việc tùy biến Claude Code chính là chìa khóa vàng giúp bạn biến trợ lý ảo này thành một cộng sự đắc lực, hiểu rõ từng ngóc ngách của dự án và các tiêu chuẩn coding của riêng bạn.
Có một chi tiết thú vị là, thay vì chỉ dựa vào một file cấu hình duy nhất, Anthropic đã thiết kế một hệ sinh thái tùy biến vô cùng tinh tế và phân tầng. Để sử dụng hiệu quả và tối ưu hóa chi phí token, chúng ta cần nắm vững các phương pháp này. Bài viết dưới đây sẽ đi sâu hướng dẫn chi tiết cách thiết lập và tùy biến Claude Code thông qua 7 phương pháp cốt lõi: CLAUDE.md, rules, skills, subagents, hooks, output styles, và việc mở rộng system prompt.
CLAUDE.md: Trái tim điều khiển hành vi của Claude Code
Nếu bạn thắc mắc file CLAUDE.md là gì, thì đây chính là “tập tài liệu định hướng” mà Claude sẽ đọc ngay khi bắt đầu một phiên làm việc (session). File này nằm ở thư mục gốc của dự án và chứa các thông tin tổng quan nhất về cấu trúc thư mục, lệnh build, quy chuẩn kiểm thử và coding conventions của đội ngũ phát triển. Thú thật là, việc thiết lập file này giúp Claude Code hiểu ngay ngữ cảnh dự án mà không cần bạn phải giải thích lặp đi lặp lại trong mỗi câu lệnh.
Điểm đáng chú ý ở đây là Anthropic chia CLAUDE.md làm hai loại chính với cơ chế tải ngữ cảnh (loading) hoàn toàn khác nhau để tối ưu hiệu suất:
- Always-loaded (Tải vĩnh viễn): Đây là file CLAUDE.md nằm tại thư mục gốc (root) của dự án. File này được tải vào ngữ cảnh ngay khi session bắt đầu và được lưu trong bộ nhớ cache. Đặc biệt, khi Claude Code thực hiện nén đoạn hội thoại (compaction) do cuộc trò chuyện quá dài, file này sẽ tự động được đọc lại để đảm bảo Claude không bị “quên” các chỉ dẫn cốt lõi.
- On-demand (Tải theo nhu cầu): Đây là các file CLAUDE.md nằm ở các thư mục con (subdirectory), ví dụ như
src/api/CLAUDE.mdhoặcfrontend/CLAUDE.md. Các file này chỉ được tải vào ngữ cảnh khi Claude Code thực sự truy cập hoặc chỉnh sửa một file nằm trong thư mục con tương ứng đó. Khi xảy ra quá trình nén hội thoại (compaction), các chỉ dẫn này sẽ bị loại bỏ khỏi ngữ cảnh cho đến khi thư mục con đó được chạm tới một lần nữa.

Làm thế nào để viết một file CLAUDE.md chuẩn chỉnh? Lời khuyên từ các kỹ sư Anthropic là hãy giữ file này dưới 200 dòng. Đừng biến nó thành một bãi rác chứa mọi quy tắc vụn vặt. Thay vào đó, hãy coi nó như một bản đồ chỉ đường. Bạn có thể tham khảo một cấu trúc CLAUDE.md tối giản nhưng hiệu quả sau đây:
# CLAUDE.md - Developer Guide
## Build & Run Commands
- Build project: `npm run build`
- Dev server: `npm run dev`
- Run linting: `npm run lint`
## Testing Commands
- Run all tests: `npm test`
- Run specific test: `npm test -- path/to/file.test.js`
## Coding Conventions
- Use TypeScript for all new files.
- Prefer functional components and hooks in React.
- Always handle API errors explicitly with try-catch blocks.
- Document public APIs using JSDoc formatting.
Vấn đề là, khi dự án phình to, việc nhồi nhét quá nhiều quy tắc cụ thể vào file root CLAUDE.md sẽ làm tiêu tốn rất nhiều token của mỗi truy vấn và làm loãng khả năng tuân thủ của AI. Lúc này, giải pháp tốt nhất là di chuyển các quy tắc chi tiết của từng module vào các subdirectory CLAUDE.md hoặc chuyển hướng sang các phương pháp tùy biến khác như Rules hay Skills.
Rules: Thiết lập lăng kính nguyên tắc cho AI Agent
Phương pháp thứ hai để tùy biến Claude Code là sử dụng Rules. Nếu CLAUDE.md đóng vai trò như một bản hướng dẫn dự án chung, thì Rules là các quy tắc hoặc ràng buộc kỹ thuật cực kỳ nghiêm ngặt mà Claude bắt buộc phải tuân theo khi thực hiện các tác vụ chỉnh sửa code.
Có hai cấp độ cấu hình rules chính mà bạn cần biết khi thực hiện thiết lập Claude Code:
- User-level Rules (Quy tắc cấp người dùng): Áp dụng cho mọi dự án mà bạn làm việc trên máy tính cá nhân. Các quy tắc này thường liên quan đến sở thích cá nhân, chẳng hạn như giọng văn phản hồi, cách trình bày code hoặc style viết comment.
- Project-scoped & Path-scoped Rules (Quy tắc cấp dự án/đường dẫn): Chỉ áp dụng cho một dự án cụ thể hoặc thậm chí là một thư mục cụ thể trong dự án. Ví dụ, bạn có thể tạo một quy tắc yêu cầu mọi file trong thư mục
/controllersphải thực hiện validate đầu vào bằng thư viện Zod.
Thực tế thì, cấu trúc lưu trữ rules cũng rất linh hoạt. Chúng được định nghĩa dưới dạng các file markdown (thường là .md) nằm trong thư mục cấu hình của dự án (ví dụ như thư mục .agents/). Claude Code sẽ tự động quét các file này và nạp chúng vào ngữ cảnh dựa trên phạm vi hoạt động của tác vụ.
Sử dụng rules một cách khôn ngoan sẽ giúp bạn giải quyết được bài toán tối ưu hóa token. Thay vì lúc nào cũng bắt Claude phải ghi nhớ hàng trăm tiêu chuẩn code, rules cho phép bạn kích hoạt đúng chỉ dẫn khi cần thiết. Ví dụ, quy tắc viết test chỉ được nạp khi Claude đang làm việc với các file có đuôi .test.ts hay .spec.ts. Điều này giúp ngăn chặn hiện tượng quá tải ngữ cảnh và tăng độ chính xác đáng kể cho các đề xuất sửa đổi code.
Skills: Quy trình hóa các tác vụ phức tạp
Khi bạn cần Claude Code thực hiện một chuỗi các hành động phức tạp, lặp đi lặp lại và có tính quy trình cao, CLAUDE.md hay Rules thuần túy sẽ không còn đủ sức. Đây là lúc bạn cần đến Skills. Một cách đơn giản, Skills là các công cụ hoặc kịch bản tự động hóa cho phép Claude Code tương tác trực tiếp với hệ điều hành, gọi API ngoài hoặc chạy các script tùy biến.
Mỗi Skill thường được đóng gói trong một thư mục chuyên biệt bao gồm:
- SKILL.md: File hướng dẫn chính, sử dụng YAML frontmatter để định nghĩa tên và mô tả của Skill. Claude Code sẽ đọc phần mô tả này ở đầu session để biết khi nào cần kích hoạt Skill.
- Thư mục scripts/: Chứa các script Python, Node.js hoặc Bash thực hiện logic tự động hóa cốt lõi.
- Thư mục examples/ và resources/: Cung cấp các ví dụ thực tế và tài nguyên hỗ trợ để Claude hiểu rõ cách vận hành của Skill.

Một ví dụ điển hình về việc ứng dụng Skills là quy trình kiểm tra bảo mật tự động. Bạn có thể xây dựng một Security Scan Skill giúp quét các lỗ hổng bảo mật của thư viện trước khi commit. Khi bạn yêu cầu: “Kiểm tra bảo mật các package mới thêm”, Claude Code sẽ nhận diện mô tả của Skill này, tải toàn bộ hướng dẫn chi tiết và chạy script quét trong thư mục scripts/ để trả về kết quả cụ thể cho bạn.
Subagents: Khi một Claude Code là chưa đủ
Khi đối mặt với các dự án siêu lớn (monorepo) hoặc các tác vụ đòi hỏi sự phân tích chuyên sâu như tái cấu trúc hệ thống, kiểm thử toàn diện hay kiểm tra hiệu năng, việc thực hiện mọi thứ trong một luồng hội thoại duy nhất sẽ khiến bộ nhớ của Claude Code nhanh chóng bị đầy. Để giải quyết vấn đề này, cơ chế Subagents (Tác nhân phụ) đã ra đời.
Cơ chế này cho phép main session của Claude Code sinh ra (spawn) các Subagents độc lập để xử lý các công việc chuyên biệt song song. Điểm ưu việt của phương pháp này nằm ở sự cô lập ngữ cảnh:
- Ngữ cảnh độc lập: Mỗi Subagent hoạt động trong một cửa sổ ngữ cảnh (context window) hoàn toàn tách biệt với main session. Điều này giúp ngăn ngừa việc tiêu tốn token vô ích của phiên làm việc chính.
- Chia sẻ công việc hiệu quả: Bạn có thể ra lệnh cho main agent gọi một Subagent chuyên nghiên cứu cấu trúc DB, một Subagent khác chuyên viết unit test, và một Subagent thứ ba chuyên tối ưu hóa API.
- Báo cáo tóm tắt gọn gàng: Sau khi hoàn thành nhiệm vụ, các Subagents chỉ gửi lại một bản tóm tắt kết quả kèm metadata quan trọng về phiên chính. Điều này giúp ngữ cảnh của bạn luôn sạch sẽ và tập trung cao độ vào mục tiêu lớn.
Có một điểm tương đồng khá thú vị giữa Subagents của Claude Code và các dự án độc lập trong phiên bản web của Claude. Nếu bạn muốn hiểu rõ hơn sự khác biệt về cách quản lý không gian làm việc giữa hai nền tảng này, hãy tham khảo bài viết So sánh Claude Projects vs ChatGPT GPTs chi tiết từ A-Z để có góc nhìn toàn diện nhất.
Hooks và Output Styles: Tự động hóa ở tầm cao mới
Để hoàn thiện hệ thống tùy biến Claude Code, chúng ta không thể bỏ qua Hooks và Output Styles. Đây là hai công cụ giúp bạn can thiệp sâu vào vòng đời hoạt động của trợ lý AI và cá nhân hóa trải nghiệm hiển thị.
Hooks (Móc nối sự kiện): Hoạt động tương tự như Git Hooks trong lập trình truyền thống. Hooks cho phép bạn đăng ký các script tự động chạy khi xảy ra các sự kiện quan trọng trong phiên làm việc. Ví dụ, bạn có thể thiết lập một hook PreCompact để tự động sao lưu lịch sử chat hoặc chạy công cụ định dạng code (prettier) ngay trước khi Claude tiến hành nén ngữ cảnh hội thoại. Cơ chế này hoàn toàn bỏ qua quá trình compaction, hoạt động cực kỳ ổn định và deterministic.

Output Styles (Định dạng đầu ra): Phương pháp này cho phép bạn định hình cách thức hiển thị thông tin của Claude Code ngay từ đầu session. Bạn có thể yêu cầu Claude phản hồi cực kỳ ngắn gọn dưới dạng markdown tối giản, hoặc trình bày chi tiết từng bước kèm giải thích kỹ thuật. Thậm chí, bạn có thể chuyển đổi hoàn toàn vai trò của Claude từ một lập trình viên sang một chuyên gia đánh giá bảo mật (security auditor) thông qua việc cấu hình Output Styles trong file cài đặt hệ thống.
Việc kết hợp linh hoạt giữa Hooks và Output Styles giúp bạn tạo ra một môi trường làm việc nhất quán, giảm thiểu tối đa các câu lệnh thủ công và tối ưu hóa thời gian phản hồi của hệ thống dòng lệnh.
Bảng so sánh 7 phương pháp tùy biến Claude Code
Để giúp bạn dễ dàng lựa chọn giải pháp phù hợp nhất cho từng tình huống cụ thể trong dự án của mình, dưới đây là bảng tổng hợp so sánh chi tiết giữa 7 phương pháp tùy biến Claude Code dựa trên các tiêu chí về thời điểm tải, mức độ tiêu thụ token và ứng dụng thực tế:
| Phương pháp | Cơ chế tải ngữ cảnh (Loading) | Mức tiêu thụ Token | Trường hợp áp dụng tốt nhất |
|---|---|---|---|
| CLAUDE.md (Root) | Tải ở đầu session, lưu cache vĩnh viễn | Trung bình – Cao | Quy chuẩn chung toàn dự án, cấu trúc thư mục, lệnh build/test. |
| CLAUDE.md (Subdir) | Tải theo yêu cầu (khi chạm file trong thư mục) | Thấp | Quy ước code riêng biệt của từng module/thư mục con. |
| Rules | Tải ở đầu session hoặc kích hoạt theo scope file | Trung bình | Ràng buộc kỹ thuật cụ thể (e.g., bắt buộc validate bằng Zod). |
| Skills | Tải mô tả ở đầu session, tải chi tiết khi được gọi | Rất thấp | Quy trình tự động hóa phức tạp, checklists, scripts chạy OS. |
| Subagents | Chỉ tải tên ở đầu session, khởi chạy trong luồng riêng | Rất thấp (trong main session) | Tác vụ song song, phân tích sâu, tránh tràn ngữ cảnh chính. |
| Hooks | Đăng ký sự kiện, chạy độc lập ngoài ngữ cảnh chat | Rất thấp | Tự động hóa theo vòng đời: chạy lint, format code, sao lưu chat. |
| Output Styles / System Prompt | Tải ở đầu session, ghi đè system prompt | Trung bình | Thay đổi vai trò của AI, định dạng kiểu hiển thị câu trả lời. |
Kinh nghiệm xương máu khi cấu hình Claude Code cho dự án thực tế
Khi bắt tay vào cách dùng Claude Code và thiết lập các tệp cấu hình cho đội ngũ phát triển, mình đã rút ra một số kinh nghiệm thực tế vô cùng quan trọng để tránh các bẫy token và hiện tượng trôi ngữ cảnh:
Thứ nhất, kiểm soát chặt chẽ kích thước file CLAUDE.md gốc. Lỗi phổ biến nhất của các team phát triển là ném tất cả mọi thứ từ quy chuẩn đặt tên biến, cách viết git commit, đến cấu trúc CSS vào file CLAUDE.md ở root. Hãy nhớ rằng, từng dòng trong file này đều tiêu tốn token của bạn trong mỗi câu hỏi. Hãy giữ nó dưới 200 dòng và chỉ để các thông tin cốt lõi nhất. Mọi quy chuẩn chi tiết hãy chuyển sang path-scoped rules.
Thứ hai, tận dụng triệt để sức mạnh của Skills và Subagents. Nếu bạn cần thực hiện một công việc mang tính thủ tục như tạo một component mới kèm file style và file test, đừng chỉ viết prompt hướng dẫn dài dòng. Hãy đóng gói quy trình đó thành một custom Skill. Claude Code sẽ tự động chạy script của Skill để tạo cấu trúc file chính xác 100% chỉ với một câu lệnh đơn giản, vừa tiết kiệm thời gian vừa tiết kiệm token tối đa.
Thứ ba, cẩn thận với sự xung đột giữa các Rules. Khi bạn cấu hình nhiều quy tắc cho các thư mục con khác nhau, rất dễ xảy ra tình trạng các quy tắc này đá nhau. Hãy thường xuyên kiểm tra tính nhất quán và cấu hình phạm vi (path scoping) thật rõ ràng để tránh làm AI bị bối rối khi đề xuất giải pháp lập trình.
Nếu bạn là người mới bắt đầu làm quen với hệ sinh thái thông minh này và muốn tìm hiểu các tính năng trực quan khác như cách tạo giao diện nhanh chóng, hãy đọc thêm bài viết Claude Artifacts là gì? Hướng dẫn thiết kế web cực nhanh. Sự kết hợp giữa Claude Code dòng lệnh và Claude Artifacts trực quan sẽ mang lại cho bạn một hiệu suất làm việc vượt trội.
Kết luận
Tóm lại, việc làm chủ các phương pháp tùy biến Claude Code không chỉ giúp bạn cá nhân hóa người bạn đồng hành AI theo đúng phong cách lập trình của mình, mà còn là giải pháp tối ưu hóa tài nguyên hệ thống và token một cách thông minh. Bằng cách kết hợp linh hoạt giữa CLAUDE.md cho chỉ dẫn chung, Rules cho ràng buộc thiết kế, Skills cho các tác vụ tự động và Subagents cho các dự án phức tạp, bạn sẽ xây dựng được một quy trình phát triển phần mềm AI-native vô cùng mạnh mẽ.







