8 CÁCH CẢI THIỆN CÁCH DÙNG CLAUDE
Lần đầu tôi cài Claude Code, tôi chạy thử vài lệnh, thấy nó viết code nhanh, rồi thay đổi không mấy trong cách làm việc của mình. Đó là sai lầm lớn nhất tôi đã mắc. Bởi vì Claude Code không phải là một công cụ hoàn chỉnh ngay từ đầu hộp. Nó là một nền tảng mà bạn phải liên tục xây dựng lên theo thời gian.
Sau nhiều tháng sử dụng hàng ngày, cách tôi làm việc với Claude Code bây giờ khác hoàn toàn so với tuần đầu tiên. Không phải vì Anthropic ra tính năng mới, mà vì tôi đã học cách dạy nó về thế giới của mình, cách tôi viết code, cách dự án của tôi được cấu trúc, và những gì tôi không bao giờ muốn nó chạm vào.
Bài viết này không phải hướng dẫn cài đặt. Đây là những gì thực sự giúp tôi cải thiện liên tục.
1. CLAUDE.md Là Bộ Não Thứ Hai, Không Phải Một File Config Thông Thường
Mọi dự án tôi làm đều có một file CLAUDE.md ở thư mục gốc. Claude Code đọc nó mỗi khi bắt đầu một phiên làm việc. Khi mới biết điều này, tôi viết vào đó những thứ như "hãy trả lời ngắn gọn" hoặc "đừng dùng TypeScript cũ". Những thứ đó không đủ.
Thứ thực sự thay đổi cách agent làm việc là khi tôi bắt đầu viết về cách thế giới của dự án hoạt động, không phải về cách tôi muốn agent trả lời. Ví dụ cụ thể: "Thư mục /services/legacy/ không được chạm vào trừ khi được yêu cầu tường minh. Mọi thay đổi schema database đều phải đi kèm migration file. Tên biến theo camelCase ngoại trừ các hằng số dùng SCREAMING_SNAKE_CASE." Những thứ này không phải hướng dẫn phong cách, đây là bản đồ của cả một hệ thống.
Điều tôi học được là CLAUDE.md nên tiến hóa mỗi tuần. Mỗi khi agent làm một điều gì đó sai mà tôi phải sửa, tôi tự hỏi: cái gì trong ngữ cảnh của tôi mà nó không biết? Rồi tôi bổ sung vào đó. Sau vài tháng, file này trở thành một tài liệu thực sự đại diện cho cách dự án của tôi vận hành.
Theo kinh nghiệm của nhiều người dùng tích cực, CLAUDE.md dưới 200 dòng sẽ hiệu quả hơn vì nó buộc bạn phải ưu tiên thứ quan trọng nhất. Mỗi dòng thêm vào phải chứng minh được giá trị của nó.
2. Plan Mode Trước, Code Sau. Luôn Luôn Như Vậy.
Đây là thứ tôi ước mình biết sớm hơn sáu tháng. Trước khi bắt đầu bất kỳ tác vụ phức tạp nào liên quan đến nhiều file, tôi nhấn Shift+Tab hai lần để kích hoạt Plan Mode. Trong chế độ này, agent phân tích, lên kế hoạch, nhưng không thực thi bất kỳ thứ gì cho đến khi tôi xác nhận.
Hầu hết các lỗi tôi gặp khi mới dùng Claude Code đến từ việc để nó bắt đầu viết code ngay khi tôi mô tả vấn đề. Kết quả thường là một đống code đúng về mặt kỹ thuật nhưng sai về mặt kiến trúc vì agent không có đủ thời gian để hiểu bức tranh toàn cảnh.
Nghiên cứu thực tế cho thấy Plan Mode làm giảm lỗi kiến trúc trên các tác vụ nhiều file xuống khoảng 45%. Với tôi, con số cảm nhận được còn cao hơn. Khi tôi cho agent thời gian để lên kế hoạch, tôi cũng được thấy trước những lựa chọn nó sẽ đưa ra và có thể chỉnh hướng trước khi mọi thứ bắt đầu.
Thói quen cụ thể: Tôi không bao giờ cho agent bắt đầu code ngay với bất kỳ tác vụ nào dài hơn 10 phút. Tôi luôn hỏi trước: "Hãy lên kế hoạch cho tôi xem, không cần code ngay." Rồi tôi đọc kế hoạch, đặt câu hỏi, điều chỉnh, rồi mới bật đèn xanh.
Vòng Lặp Tự Kiểm Tra: Bí Quyết Để Không Bị Rơi Vào "Có Vẻ Đúng"
Một trong những điều nguy hiểm nhất của việc dùng AI để viết code là kết quả trông rất hợp lý kể cả khi nó sai. Tôi đã bị lừa bởi code "có vẻ đúng" nhiều lần hơn mức tôi muốn thừa nhận.
Thứ thực sự cải thiện chất lượng đầu ra không phải là viết prompt tốt hơn. Đó là thiết lập vòng lặp tự kiểm tra: viết code, chạy code, xem kết quả, sửa vấn đề, lặp lại. Khi tôi đảm bảo agent có thể kiểm tra công việc của chính nó, chất lượng tăng vọt.
Trong thực tế điều này có nghĩa là: tôi luôn yêu cầu agent chạy test sau mỗi thay đổi đáng kể. Với các tác vụ phân tích dữ liệu, tôi yêu cầu nó in ra các con số trung gian để tôi có thể xác nhận logic đúng hướng. Với API, tôi yêu cầu nó thực hiện một request thực tế và xem phản hồi trước khi tiến xa hơn.
Vòng lặp này không làm chậm mọi thứ. Nó tăng tốc vì nó loại bỏ các vòng lặp sửa lỗi lớn sau này khi vấn đề đã lan ra nhiều nơi.
3. Hooks: Những Guardrails Chạy Ngầm Không Cần Nhớ
Có những thứ tôi không bao giờ muốn agent làm dù nó nghĩ đó là ý hay. Commit file chứa credentials. Đẩy trực tiếp lên nhánh main. Xóa file mà không hỏi. Lúc đầu tôi viết những điều này vào CLAUDE.md và coi đó là đủ. Không phải vậy. Một file hướng dẫn là lời khuyên, không phải lệnh bắt buộc.
Hooks là khác. Chúng là các script chạy tự động tại các điểm cụ thể trong quy trình làm việc của agent. Pre-commit hook ngăn không cho commit file nhạy cảm. PostToolUse hook tự động format code sau khi chỉnh sửa. Stop hook chạy test tổng hợp khi agent kết thúc tác vụ. Những thứ này không phụ thuộc vào việc agent đọc và nhớ hướng dẫn. Chúng chạy luôn, không ngoại lệ.
Giá trị lớn nhất của hooks là khi tôi muốn để agent chạy không có người giám sát. Khi biết rằng một số guardrail quan trọng được thực thi ở cấp độ hệ thống, tôi có thể mô tả một tác vụ dài, rời đi làm việc khác, và quay lại xem kết quả mà không lo sự cố nghiêm trọng.
4. MCP Servers: Cho Agent Mắt Và Tay Để Với Ra Ngoài
Claude Code mặc định chỉ thấy những gì trong terminal của bạn. MCP (Model Context Protocol) thay đổi điều đó. Thông qua các MCP server, agent có thể gọi API bên ngoài, truy vấn database, đọc issues từ GitHub, gửi tin nhắn Slack, và nhiều thứ khác nữa.
Cách tôi nghĩ về MCP là: mỗi server tôi kết nối mở ra một khả năng mới cho agent mà không cần tôi phải tự viết code tích hợp. Thay vì tôi viết SQL, chạy query, copy kết quả vào context, với MCP database tôi chỉ cần mô tả câu hỏi và agent tự đi lấy dữ liệu.
Những MCP server thực sự tôi dùng thường xuyên: filesystem cho các tác vụ đọc/ghi file phức tạp hơn mặc định, GitHub để kéo context từ issues và PRs trực tiếp vào hội thoại, Brave Search để agent tra cứu tài liệu mà không cần tôi paste link, và Postgres để truy vấn database trực tiếp từ terminal. Mỗi thứ này xóa một cái bước trong quy trình làm việc của tôi.
Điều quan trọng tôi học được về MCP: đừng cài quá nhiều cùng một lúc. Mỗi server là một nguồn phức tạp tiềm ẩn. Tôi thêm từng cái một, theo dõi xem nó có thực sự thay đổi cách làm việc không, rồi mới giữ lại.
5. Skills: Tóm Gọn Kiến Thức Của Bạn Thành Dạng Agent Có Thể Đọc
Có những tác vụ tôi làm đi làm lại. Viết SQL cho một schema cụ thể. Review code theo checklist của team. Format báo cáo theo template cố định. Mỗi lần tôi phải giải thích ngữ cảnh từ đầu là một lần lãng phí.
Skills giải quyết vấn đề này. Đó là những file markdown trong thư mục .claude/skills/, và Claude Code đọc chúng khi tác vụ phù hợp. Không cần SDK, không cần code, chỉ cần viết hướng dẫn bằng ngôn ngữ tự nhiên. Khi tôi yêu cầu agent làm một điều gì đó mà skill liên quan, nó đã có ngữ cảnh cần thiết từ trước.
Tôi xây dựng skill theo kiểu: mỗi lần tôi thấy mình giải thích cùng một thứ hai lần, đó là dấu hiệu nên viết một skill. Skill không phải là code mẫu. Đó là kiến thức chuyên biệt được đóng gói lại: schema của database, những lỗi hay gặp trong dự án, cách dự án xử lý authentication, những pattern nào được khuyến khích và những gì nên tránh.
6. Slash Commands Tùy Chỉnh: Biến Workflow Lặp Lại Thành Một Cú Gõ
Tôi có một số tác vụ mà tôi chạy mỗi ngày. Review code trước khi commit. Tạo tóm tắt những gì tôi đã làm trong buổi sáng. Kiểm tra xem có test nào đang fail không. Lúc đầu tôi gõ mô tả đầy đủ mỗi lần. Sau đó tôi nhận ra tôi có thể tạo slash commands tùy chỉnh cho chúng.
Slash commands tùy chỉnh là file markdown trong .claude/commands/ và được gọi bằng /project:tên-command. Tôi tạo /project:review để chạy toàn bộ quy trình review code của mình, /project:standup để agent tổng hợp công việc trong 24 giờ qua từ git log, và /project:check để chạy lint và test và báo cáo kết quả.
Những thứ này nhỏ thôi, nhưng tính nhất quán là thứ tôi đánh giá cao hơn là tiết kiệm thời gian. Khi tôi gõ cùng một prompt mỗi ngày từ trí nhớ, nó hơi khác nhau mỗi lần. Slash command đảm bảo tôi luôn hỏi đúng câu hỏi.
7. Hệ Thống Bộ Nhớ Tự Động: Để Agent Học Từ Kinh Nghiệm
Một điều tôi không biết lúc đầu là Claude Code có cơ chế bộ nhớ tự động. Agent có thể ghi chú cho chính nó qua các phiên làm việc, lưu những thứ như lệnh build, thông tin debug, pattern code và sở thích quy trình làm việc. Bạn không phải viết gì cả.
Nhưng bộ nhớ tự động và CLAUDE.md hoạt động tốt nhất khi kết hợp. Bộ nhớ tự động bắt được những gì agent học trong khi làm việc. CLAUDE.md là nơi tôi viết những quy tắc tôi biết từ trước. Cả hai cùng nhau tạo ra một agent ngày càng hiểu rõ hơn về cách tôi làm việc mà không cần tôi phải giải thích lại từ đầu mỗi phiên.
Thói quen thực tế: Cuối mỗi tuần, tôi mở CLAUDE.md và xem lại. Có điều gì tôi sửa nhiều lần trong tuần mà chưa được ghi lại không? Có pattern nào mới xuất hiện không? Có quy tắc nào không còn đúng nữa không? Buổi rà soát mười phút này là khoản đầu tư tốt nhất tôi có thể làm để cải thiện chất lượng làm việc của agent trong tuần tới.
8. Cải Thiện Liên Tục Là Một Vòng Lặp, Không Phải Đích Đến
Điểm mấu chốt tôi muốn truyền đạt là đây: Claude Code không phải thứ bạn cài xong là dùng được tối ưu ngay. Nó là thứ bạn xây dựng cùng theo thời gian. Và điều thú vị là mỗi tuần làm việc cùng nó, bạn học được điều gì đó mới về cách giao tiếp hiệu quả hơn, cách thiết lập ngữ cảnh tốt hơn, cách ủy thác thông minh hơn.
Tuần đầu tiên tôi dùng Claude Code, tôi nghĩ mục tiêu là "AI viết code nhanh hơn cho mình". Bây giờ tôi hiểu khác. Mục tiêu là xây dựng một hệ thống làm việc nơi mà tôi tập trung vào những quyết định cần tư duy của con người, còn tất cả những gì còn lại thì đã có agent lo.
Và hệ thống đó không bao giờ hoàn chỉnh. Nó luôn cải thiện. Đó không phải là điểm yếu, đó là điểm mạnh.
Hoàng DV
Tác giả học thuậtĐóng góp các nghiên cứu định hướng, phương pháp tiếp cận kiến thức chuẩn mực và chiến lược bứt phá mục tiêu thực chiến trong kỷ nguyên số.