Bỏ qua đến nội dung chính

Claude Code best practices | Code w/ Claude

TL;DR

  • Claude Code là một AI agent hoạt động như một đồng nghiệp chuyên gia về thiết bị đầu cuối, giúp các nhà phát triển tăng tốc đáng kể các tác vụ lập trình và khám phá codebase.
  • Nó nổi bật trong việc khám phá codebase, lập kế hoạch tính năng, viết mã từ đầu hoặc trên các dự án hiện có, và xử lý các tác vụ phức tạp như refactoring hay quản lý Git.
  • Để tối ưu hiệu suất, người dùng nên tận dụng khả năng của nó trong việc sử dụng công cụ CLI mạnh mẽ, quản lý quyền truy cập thông minh và điều khiển ngữ cảnh hiệu quả qua các tính năng như CLAUDE.md/compact.

applies t

Per session

context full

Explore codebase

Plan feature

Code with Claude

/compact when needed

Setup once

CLAUDE.md — project rules

Permission allowlist

Điểm chính

  • Sử dụng tệp CLAUDE.md: Tạo và check in tệp CLAUDE.md trong thư mục làm việc hoặc thư mục gốc để cung cấp hướng dẫn quan trọng, tổng quan dự án, hướng dẫn về phong cách, hoặc cách chạy kiểm thử đơn vị cho Claude Code.
  • Quản lý quyền truy cập thông minh: Tận dụng giao diện người dùng để phê duyệt các hành động ghi hoặc lệnh bash. Sử dụng auto accept mode (Shift + Tab) hoặc cấu hình cài đặt để luôn chấp thuận các lệnh bash lặp lại (ví dụ: NPM run test) nhằm tăng tốc quy trình làm việc.
  • Tích hợp công cụ CLI: Cài đặt các công cụ CLI nổi tiếng (ví dụ: gh cho GitHub) trên máy của bạn để Claude Code có thể truy cập và sử dụng chúng một cách hiệu quả, mở rộng khả năng của nó. Ưu tiên công cụ CLI có tài liệu tốt hơn máy chủ MCP.
  • Quản lý cửa sổ ngữ cảnh: Đối với các phiên làm việc dài, theo dõi cảnh báo cửa sổ ngữ cảnh. Chạy /clear để xóa ngữ cảnh và bắt đầu lại, hoặc /compact để tóm tắt ngữ cảnh hiện tại, cho phép tiếp tục công việc hiệu quả mà không vượt quá giới hạn token.
  • Lập kế hoạch trước khi thực thi: Thay vì ra lệnh trực tiếp, yêu cầu Claude Code tìm hiểu vấn đề và đưa ra một kế hoạch sửa lỗi hoặc triển khai tính năng trước. Đọc và xác minh kế hoạch của nó để đảm bảo sự phù hợp trước khi bắt đầu công việc.
  • Khai thác khả năng khám phá codebase: Sử dụng Claude Code để nhanh chóng hội nhập vào các cơ sở mã mới, hỏi về vị trí triển khai tính năng hoặc lịch sử Git của một tệp để hiểu rõ cấu trúc và thay đổi.
  • Hỗ trợ tái cấu trúcdi chuyển codebase: Tận dụng Claude Code cho các dự án lớn như tái cấu trúc mã, viết lại các phần của cơ sở mã hoặc di chuyển giữa các phiên bản ngôn ngữ/framework, giúp các tác vụ này dễ tiêu hóa hơn.

Từ vựng

  • AI agent — Tác nhân AI
  • codebase — Cơ sở mã
  • terminal — Thiết bị đầu cuối
  • prompt engineering — Thiết kế câu lệnh
  • context window — Cửa sổ ngữ cảnh
  • refactoring — Tái cấu trúc
  • CLI tools — Công cụ CLI (Command Line Interface)
  • onboarding process — Quy trình hội nhập
  • best practices — Thực hành tốt nhất
  • CLAUDE.md — (Tệp cấu hình đặc biệt cho Claude Code)

Nội dung chi tiết

Giới thiệu về Claude Code

Chào mừng tất cả mọi người đến với buổi nói chuyện về các best practices của Claude Code. Trong buổi nói chuyện này, tôi sẽ trình bày tổng quan về Claude Code, sau đó chúng ta sẽ cùng tìm hiểu sâu hơn về cách Claude Code hoạt động. Bởi vì việc hiểu rõ cách các công cụ của bạn hoạt động là rất hữu ích, chúng ta sẽ thảo luận về các trường hợp sử dụng tốt cho Claude Code cũng như các best practices mà chúng tôi đã đúc kết được cả từ nội bộ và từ người dùng để tận dụng tối đa công cụ này.

Hành trình của tôi với Claude Code

Tuy nhiên, trước khi bắt đầu, tôi muốn nhanh chóng giới thiệu bản thân và kể về cách tôi có mặt tại đây. Tên tôi là Cal, và tôi gia nhập Anthropic khoảng một năm rưỡi trước để giúp thành lập một nhóm mà chúng tôi gọi là Applied AI. Nhiệm vụ của nhóm Applied AI là giúp khách hàng và đối tác của chúng tôi xây dựng các sản phẩm và tính năng tuyệt vời trên nền tảng Claude. Điều đó có nghĩa là tôi dành phần lớn thời gian để câu lệnh (prompt) Claude nhằm đạt được các kết quả đầu ra tốt nhất từ các mô hình này. Ngoài ra, tôi cũng rất yêu thích (code) và chắc chắn là một trong những người thường bắt đầu rất nhiều dự án với những ý tưởng điên rồ nhưng không bao giờ hoàn thành chúng. Vì vậy, tôi có cả một "nghĩa địa" gồm những tôi đã bắt đầu nhưng chưa bao giờ thực sự hoàn thành. Nhưng tôi luôn thử nghiệm những điều mới. Cuối năm ngoái, tôi đang dùng Slack và nghe nói về một công cụ mới mà một vài người đang sử dụng, họ nói rằng nó thực sự rất tuyệt. Vì vậy, vào một tối thứ Sáu, tôi đã tải về công cụ mà sau này trở thành Claude Code. Tôi đã dùng nó để xây dựng một ứng dụng ghi chú mới mà tôi muốn tạo. Cả cuối tuần đó đã hoàn toàn thay đổi cách tôi lập trình và suy nghĩ về kỹ thuật phần mềm. Tôi mang máy tính xách tay theo mình suốt cuối tuần, hoàn toàn bị cuốn hút vào việc quan sát Claude Code hoạt động. Tôi sẽ nhấn Enter, chuyển sang trình duyệt của mình và refresh. Tôi đã chứng kiến một ứng dụng lớn, mạnh mẽ hình thành ngay trước mắt mình, và tôi đã tiến xa hơn rất nhiều so với những gì tôi có thể tự làm. Nó thực sự khiến tôi kinh ngạc. Trong khi làm điều này, tôi hơi lo lắng. Tôi nghĩ, 'Mình biết cách những thứ này hoạt động. Mình đang sử dụng rất nhiều token. Mình hy vọng sẽ không gặp rắc rối hay ai đó nhận ra mình không thực sự đóng góp vào của Anthropic.' Nhưng điều tôi không biết là nhóm Claude Code đã xây dựng một bảng xếp hạng nội bộ để theo dõi mức độ sử dụng công cụ này của tất cả nhân viên Anthropic, và trong cuối tuần đó, tôi đã vươn lên dẫn đầu. Nhờ đó, tôi đã gặp Boris và Kat cùng một số thành viên ban đầu của nhóm Claude Code, và tôi đã có thể bắt đầu nói chuyện với họ, nói rằng, 'Này, tôi yêu công cụ này. Tôi cũng biết rất nhiều về thiết kế câu lệnh (prompting). Tôi có thể giúp các bạn không?' Và nhờ đó, tôi đã tham gia và bây giờ tôi là một trong những người đóng góp cốt lõi của nhóm. Tôi tập trung rất nhiều vào thiết kế câu lệnh, các câu lệnh hệ thống (system prompt), cách các công cụ hoạt động, mô tả công cụ (tool description) và kết quả công cụ (tool results), cũng như cách chúng tôi đánh giá công cụ này. Vì vậy, khi chúng tôi nghĩ đến việc thay đổi các câu lệnh, làm thế nào để chúng tôi biết liệu chúng tôi đã làm mọi thứ tốt hơn hay vẫn vậy, và chúng tôi không hoàn toàn phá hỏng Claude Code? Với những điều đã nói, hãy cùng đi sâu hơn.

Claude Code là gì?

Đây là mô hình tư duy hiện tại của tôi về Claude Code và cách tôi mô tả nó cho mọi người khi họ hỏi tôi. Claude Code giống như một đồng nghiệp làm mọi thứ trên thiết bị đầu cuối (terminal). Kiểu người không bao giờ chạm vào GUI (Graphical User Interface). Họ là một chuyên gia. Tôi nhớ khi còn là kỹ sư cấp dưới, tôi có một người mentor tên Tony. Tôi sẽ đi đến bàn của anh ấy và nói, 'Này Tony, anh có thể giúp tôi với lỗi này không?' Anh ấy sẽ nhanh chóng mở thiết bị đầu cuối của mình và thực hiện tất cả các lệnh phức tạp, thay đổi mọi thứ với VIM. Tôi luôn rời đi và nghĩ, 'Wow, thật điên rồ, mình nên học cách làm điều đó.' Nhưng tôi chưa bao giờ làm được. Tuy nhiên, việc có Claude Code trên máy tính của bạn giống như có Tony bên cạnh bạn mọi lúc vậy.

Cách Claude Code hoạt động

Vậy, Claude Code hoạt động như thế nào? Tại Anthropic, chúng tôi luôn cố gắng thực hiện điều mà chúng tôi gọi là 'cách đơn giản nhất mà hiệu quả'. Điều đó có nghĩa đối với Claude Code là nó là một AI agent rất thuần khiết. Tại Anthropic, khi chúng tôi nói về AI agents, điều chúng tôi thực sự muốn nói là một số hướng dẫn, một số công cụ mạnh mẽ, và bạn để chúng chạy trong một vòng lặp cho đến khi nó tự quyết định là đã hoàn thành. Đó thực sự là Claude Code. Vì vậy, nó là các công cụ – các công cụ mạnh mẽ – các công cụ mà một người thực sự giỏi sử dụng thiết bị đầu cuối có thể dùng: các công cụ để tạo và chỉnh sửa tệp, để sử dụng thiết bị đầu cuối, và sau đó bạn cũng có thể kéo các thứ khác vào bằng MCP (Model Context Protocol). Ngoài ra, còn có cách Claude hiểu cơ sở mã (codebase). Nếu bạn định xây dựng một tác nhân viết mã (coding agent) hoặc một công cụ viết mã một năm trước, bạn có thể có những ý tưởng như, 'Chà, được rồi, tôi sẽ nhận được thông báo người dùng về một thứ gì đó trong cơ sở mã này, và tôi sẽ cần tìm ra những tệp nào liên quan. Vì vậy, có lẽ tôi sẽ đánh chỉ mục toàn bộ cơ sở mãnhúng nó, sau đó thực hiện một cái gọi là RAG (Retrieval-Augmented Generation) để truy xuất dữ liệu một cách phức tạp.' Đó không phải là cách Claude Code hoạt động. Chúng tôi không thực hiện bất kỳ loại đánh chỉ mục nào. Thay vào đó, Claude khám phá và hiểu cơ sở mã theo cách mà bạn, nếu bạn mới vào một nhóm và một cơ sở mã, sẽ khám phá một cơ sở mã. Và đó là thông qua tìm kiếm tác nhân (agentic search) – cùng loại công cụ tìm kiếm mà bạn hoặc tôi sẽ sử dụng, những thứ như glob, grepfind. Nó có thể tự tìm đường trong cơ sở mã và hiểu những gì đang diễn ra. Khi chúng ta nói về tìm kiếm tác nhân, điều đó thực sự có nghĩa là mô hình có thể thực hiện một số tìm kiếm, và sau đó nó có thể xem xét kết quả để nói, 'Có lẽ tôi cần tìm thêm một vài điều nữa. Tôi sẽ đi tìm kiếm thêm và sau đó quay lại.' Ngoài những nguyên thủy này, ngoài AI agent này, chúng tôi có một vài điều. Chúng tôi có một lớp UI (User Interface) rất nhẹ nhàng và đẹp mắt, nơi bạn có thể xem Claude Code hoạt động. Bạn thấy tất cả văn bản bay qua. Và chúng tôi có một hệ thống quyền hạn tốt đẹp cho phép AI agent hoạt động và buộc con người phải can thiệp khi AI agent đang làm điều gì đó nguy hiểm. Ngoài ra, chúng tôi cũng rất quan tâm đến bảo mật trong công cụ này. Và bởi vì Claude Code chỉ là một lớp rất nhẹ trên mô hình và thực tế là mô hình của chúng tôi có sẵn không chỉ đằng sau các API của Anthropic mà còn với các nhà cung cấp dịch vụ đám mây của chúng tôi, AWSGCP, rất dễ dàng và tự nhiên để hướng Claude Code đến một trong các dịch vụ khác này nếu bạn cảm thấy thoải mái hơn khi sử dụng Claude theo cách đó.

Các trường hợp sử dụng của Claude Code

Giờ thì nhiều người hỏi tôi, 'Này Cal, tôi có thể dùng Claude Code để làm gì? Nó giỏi cái gì? Nó thú vị ở điểm nào?' Và thực tế là nó khá tuyệt vời ở mọi thứ. Vậy hãy bắt đầu với khám phá (discovery). Thông thường trong sự nghiệp của bạn, bạn sẽ được đưa vào một cơ sở mã (codebase) mới, cho dù bạn đang chuyển nhóm, chuyển công ty hay bắt đầu làm việc trên một dự án mã nguồn mở (open source project) nào đó. Có lẽ khi bạn mới bắt đầu và làm quen, bạn sẽ không mấy năng suất vì bạn chỉ đang cố gắng tìm hiểu mọi thứ nằm ở đâu trong cơ sở mã, mô hình (pattern) nào mà nhóm đang sử dụng, và những thứ tương tự. Claude Code có thể giúp tăng tốc quá trình hội nhập (onboarding process) đó. Bạn có thể hỏi Claude, 'Này, tính năng này được triển khai ở đâu?' Hoặc, vì nó rất giỏi thiết bị đầu cuối, bạn có thể nói, 'Này, hãy xem tệp này và xem lịch sử Git và kể cho tôi một câu chuyện về cách này đã thay đổi trong vài tuần qua.' Một điều bạn có thể sử dụng Claude Code cho, và tôi nghĩ điều này bị đánh giá thấp, là thay vì chỉ lao vào và bắt đầu làm việc, bạn có thể sử dụng Claude Code như một đối tác tư duy (thought partner). Vì vậy, thường khi tôi làm việc với Claude và tôi muốn triển khai một tính năng hoặc chúng tôi sẽ thay đổi điều gì đó, tôi sẽ mở Claude và nói, 'Này Claude, tôi đang nghĩ đến việc triển khai tính năng này. Bạn có thể tìm kiếm xung quanh và tìm ra cách chúng ta sẽ làm điều đó không? Và có lẽ hãy báo cáo lại với hai hoặc ba tùy chọn khác nhau. Đừng bắt đầu làm việc, đừng bắt đầu chạy bất kỳ tệp nào, viết bất kỳ tệp nào vội.' Và Claude sẽ đi và sử dụng các khả năng tìm kiếm tác nhân đó và quay lại với một vài ý tưởng. Sau đó tôi có thể làm việc với Claude để xác thực mọi thứ, và sau đó chúng ta có thể bắt đầu dự án. Tất nhiên, Claude Code rất giỏi trong việc xây dựng và viết mã. Và tôi sẽ nói điều này trên hai khía cạnh khác nhau: Một, nó có thể làm những việc kiểu từ con số 0 đến 1. Bạn thả nó vào một thư mục trống và nói, 'Này, xây dựng cho tôi một ứng dụng, xây dựng cho tôi một trò chơi.' Điều đó trình diễn rất tốt, rất thú vị để làm, rất thỏa mãn. Tất nhiên, trong thực tế, điều thực sự quan trọng là liệu Claude Code có tốt trong việc làm việc với các cơ sở mã hiện có hay không? Và đây là trọng tâm chính của chúng tôi. Nhóm Claude Code, trong cơ sở mã của chúng tôi, có mức độ bao phủ kiểm thử đơn vị (unit test coverage) cao bất thường, tôi phải nói vậy. Và đó là bởi vì Claude Code giúp việc thêm kiểm thử đơn vị trở nên rất dễ dàng và đơn giản. Vì vậy chúng tôi có mức độ bao phủ mã (code coverage) tuyệt vời. Và sau đó, điều khác chúng tôi có trong Claude Code trong cơ sở mã của riêng chúng tôi là chúng tôi có các committhông báo yêu cầu hợp nhất mã (PR message) tuyệt vời. Bởi vì khi chúng tôi hoàn thành công việc, chúng tôi sẽ chỉ nói, 'Này Claude, hãy viết commit cho tôi, viết thông báo PR cho tôi.' Chúng tôi cũng thấy nhiều cơ hội tuyệt vời để sử dụng Claude Code trong việc triển khai (deployment) và trong các phần khác của chu trình phát triển. Và điều này đã được một vài người khác nói đến, nhưng đó là việc sử dụng SDK (Bộ công cụ phát triển phần mềm) của Claude Code. Vì vậy, sử dụng nó không giao diện (headlessly), sử dụng nó một cách lập trình, có thể rải rác một tác nhân viết mã ở bất cứ đâu. Và đó là những điều như rải nó vào CI/CD để sử dụng nó trong GitHub chẳng hạn để giúp mọi người một cách lập trình. Cuối cùng, nó rất tuyệt vời với hỗ trợkhả năng mở rộng (scale). Nó có thể giúp bạn gỡ lỗi lỗi (debug errors) nhanh hơn. Một điều mà chúng tôi đã thấy khi bắt đầu cung cấp Claude Code cho khách hàng và nói chuyện với họ về nó, chúng tôi đã không hoàn toàn dự đoán điều này. Rất nhiều khách hàng hoặc khách hàng tiềm năng đã nói, 'Này, chúng tôi đã trì hoãn việc di chuyển cơ sở mã (codebase migration) lớn này.' Những người đang sử dụng các phiên bản Java cũ cố gắng chuyển sang phiên bản mới, hoặc một nhóm đang sử dụng PHP và họ đang cố gắng chuyển sang React hoặc Angular. Chúng tôi đã nói chuyện với nhiều nhóm như vậy. Việc có một công cụ như Claude Code làm cho các dự án như vậy dễ tiêu hóa hơn một chút. Khi bạn đến với nhóm của mình, bạn nói, 'Này, chúng ta sẽ dành một tháng để tái cấu trúc (refactoring) hoặc viết lại những phần lớn của cơ sở mã.' Ngoài ra, và điều này quan trọng đối với tất cả những điều này, là một lần nữa, hãy nhớ rằng Claude rất giỏi thiết bị đầu cuối. Và điều đó có nghĩa là nó sẽ rất giỏi trong tất cả các công cụ CLI (Command Line Interface) khác nhau, những thứ như Git, Docker, BigQuery, và những thứ tương tự. Tôi không bao giờ phải lo lắng về việc, 'Ôi, mình sẽ tự mắc kẹt, làm thế nào để thoát khỏi rebase khó khăn này?' Tôi sẽ chỉ khởi động Claude Code và nói cho nó biết tình huống và nói, 'Này, bạn có thể sửa lỗi này cho tôi không?' Thật đáng kinh ngạc.

Các Best Practices: Sử dụng tệp CLAUDE.md

Bây giờ chúng ta hãy nói về các best practices. Điều đầu tiên sẽ không gây ngạc nhiên, đó là: sử dụng các tệp CLAUDE.md. Hãy nhớ rằng Claude Code, như tôi đã nói, là một AI agent và nó có một số công cụ. Nó có một số hướng dẫn nhẹ trong câu lệnh, nhưng nó thực sự không có bộ nhớ. Vì vậy, cách chính để chúng tôi chia sẻ trạng thái giữa các phiên hoặc giữa nhóm của chúng tôi khi chúng tôi khởi động Claude Code trong cùng một cơ sở mã lặp đi lặp lại là tệp CLAUDE.md này. Khi chúng tôi khởi động Claude, điều xảy ra là nếu có tệp CLAUDE.md này trong thư mục làm việc, nó sẽ được đưa trực tiếp vào ngữ cảnh. Nó được đưa vào câu lệnh. Và về cơ bản, nó nói rằng, 'Này Claude, nhân tiện, đây là những hướng dẫn quan trọng mà nhà phát triển đã để lại cho bạn. Hãy chắc chắn chú ý kỹ điều này.' Có nhiều nơi khác nhau bạn có thể đặt tệp CLAUDE.md. Bạn có thể đặt nó trong một dự áncheck in nó để tất cả các đồng đội của bạn cùng chia sẻ. Bạn có thể đặt một cái trong thư mục gốc (home directory) của mình nếu có những điều bạn muốn Claude luôn biết, bất kể bạn đang làm việc gì. Những điều bạn đặt vào đây là những thứ như, 'Này, nhân tiện, đây có thể là cách bạn chạy các kiểm thử đơn vị (unit test).' Hoặc, 'Để bạn biết, để việc tìm kiếmcông việc của bạn dễ dàng hơn, đây là tổng quan về cách dự án này được bố trí, nơi các kiểm thử nằm, những module khác nhau là gì,' những thứ tương tự. Hoặc, 'Đây là hướng dẫn về phong cách (style guide) của chúng tôi.' Tất cả các loại điều đó để làm cho công việc của Claude dễ dàng hơn một chút. Và bạn có thể xây dựng những điều này theo thời gian. Điều còn lại...

Quản lý quyền truy cập

Một điều quan trọng bạn có thể làm là quản lý quyền. Khi bạn chạy Claude Code, có rất nhiều loại quyền khác nhau được xử lý sẵn. Điều xảy ra khi bạn khởi động công cụ của chúng tôi là đối với các hành động đọc: nếu Claude đang tìm kiếm hoặc đọc, chúng tôi cho phép nó thực hiện. Nhưng một khi nó bắt đầu ghi, hoặc chạy các lệnh bash, hoặc thực hiện những việc có thể thay đổi dữ liệu trên máy của bạn, đó là lúc giao diện người dùng (UI) này xuất hiện và hỏi: "Có, luôn cho phép điều này" hoặc "Không, tôi muốn làm điều gì khác". Việc sử dụng quản lý quyền đó một cách thông minh có thể giúp bạn làm việc nhanh hơn.

Có một chế độ gọi là auto accept mode (chế độ tự động chấp nhận). Nếu bạn làm việc với Claude Code và nhấn Shift + Tab, Claude sẽ bắt đầu làm việc ngay lập tức. Bạn có thể cấu hình Claude trong phần cài đặt để luôn chấp thuận các lệnh cụ thể, ví dụ như trên bash – nếu bạn chán phải nói "Có, chạy NPM run test", bạn có thể luôn phê duyệt lệnh đó. Vì vậy, điều chỉnh quản lý quyền là một cách tuyệt vời để tăng tốc quy trình làm việc của bạn.

Cài đặt tích hợp

Một điều sẽ giúp bạn tận dụng tối đa Claude Code là hãy nhớ rằng nó rất tốt với thiết bị đầu cuối. Nếu có các ứng dụng bạn sử dụng mà có thể truy cập thông qua CLI (ví dụ điển hình là GitHub với công cụ mạnh mẽ tên gh), bạn về cơ bản có thể giao thêm tác vụ cho Claude Code. Bạn có thể làm điều đó bằng cách cài đặt thêm các công cụ CLI hoặc gắn thêm các máy chủ MCP.

Qua kinh nghiệm, tôi khuyên rằng nếu bạn đang sử dụng một công cụ CLI nổi tiếng và có tài liệu tốt, và bạn đang phân vân giữa việc sử dụng công cụ CLI đó với việc cài đặt nó trên máy và sử dụng một máy chủ MCP, tôi khuyên bạn nên dùng công cụ CLI. Ngoài ra, nếu bạn có các công cụ nội bộ riêng tại Anthropic, ví dụ như Koo (thực hiện nhiều tác vụ cho chúng tôi), bạn cũng có thể cho Claude biết về điều đó. Đó có thể là loại thông tin bạn đưa vào Claude.MD.

Quản lý ngữ cảnh

Hãy nhớ rằng Claude là một AI agent. Khi nó là một AI agent, nó gọi các công cụ, và ngữ cảnh tích lũy dần theo thời gian. Ít nhất đối với Anthropic, các mô hình AI của chúng tôi có cửa sổ ngữ cảnh 200.000 token, và bạn có thể sử dụng hết dung lượng này.

Vì vậy, bạn có hai lựa chọn khi ở trong một phiên làm việc dài với Claude, làm việc qua lại. Bạn sẽ thấy ở góc dưới bên phải xuất hiện một cảnh báo nhỏ, nói rằng bạn đang bắt đầu lấp đầy cửa sổ ngữ cảnh. Tùy thuộc vào tình huống, bạn có hai lựa chọn: Bạn có thể chạy /clear để bắt đầu lại, điều này xóa sạch mọi thứ trừ, ví dụ, Claude.MD.

Hoặc bạn có thể chạy /compact. Điều sẽ xảy ra về cơ bản là một tin nhắn người dùng được chèn vào và nói đại loại như: "Này, tôi cần tóm tắt tất cả những gì chúng ta đã làm. Tôi sẽ giao việc này cho một nhà phát triển khác và họ sẽ tiếp tục từ đây." Và sau đó, bản tóm tắt đó sẽ là điểm khởi đầu cho phiên làm việc tiếp theo. Bạn có thể tiếp tục từ đó. Chúng tôi đã dành nhiều thời gian để tinh chỉnh chức năng compact này, để khi bạn sử dụng tối đa cửa sổ ngữ cảnh và sau đó chạy compact, bạn có thể bắt đầu lại và tiếp tục công việc.

Quy trình làm việc hiệu quả

Bạn có thể làm gì với Claude Code và làm thế nào để tận dụng tối đa nó?

Lập kế hoạch và danh sách to-do

Như tôi đã nói trước đây, một trong những điều tốt nhất bạn có thể làm khi mở Claude Code là thay vì nói "Này, tôi cần bạn sửa lỗi này", bạn có thể nói "Này, tôi có lỗi này. Bạn có thể tìm kiếm xung quanh, tìm ra nguyên nhân và cho tôi một kế hoạch cách chúng ta sẽ sửa nó không?". Điều này có thể giúp bạn tiết kiệm rất nhiều thời gian vì bạn có thể xác minh, đọc kế hoạch của Claude và xác minh những gì nó sẽ làm.

Điều khác mà chúng tôi có là tính năng danh sách to-do. Thông thường, khi Claude đang thực hiện một tác vụ lớn, nó sẽ tạo ra một danh sách to-do. Và nếu bạn chú ý, bạn có thể theo dõi danh sách to-do này. Nếu bạn thấy bất cứ điều gì kỳ lạ hoặc không hợp lý, đó là lúc bạn có thể nhấn Escape và nói: "Này Claude, hãy thay đổi danh sách to-do. Tôi nghĩ bạn đang đi sai hướng".

Viết thông minh (Smart Vibe Coding)

Rất hấp dẫn và mạnh mẽ khi chỉ cần để Claude làm việc và nhấn Enter để xem kết quả cuối cùng. Tôi nghĩ có một vài điều có thể giúp cải thiện điều này, và tôi nghĩ sẽ có một buổi nói chuyện riêng về chủ đề này trong 30 phút sau đó. Nhưng hãy làm những việc như: áp dụng phát triển hướng kiểm thử (test-driven development), để Claude thực hiện những thay đổi nhỏ, chạy các kiểm thử (test) để đảm bảo chúng vượt qua, luôn yêu cầu Claude kiểm tra TypeScriptLinting, và sau đó commit thường xuyên. Điều này giúp bạn có thể quay lại và thử lại nếu nó đi chệch hướng.

Sử dụng ảnh chụp màn hình để hướng dẫn và gỡ lỗi

Claude được xây dựng trên các mô hình AI đa phương thức của chúng tôi. Bạn luôn có thể chụp ảnh màn hình, dán vào hoặc nếu bạn có một tệp hình ảnh ở đâu đó, bạn có thể chỉ cần nói: "Này Claude, hãy nhìn vào tệp mocked.png này và sau đó xây dựng trang web cho tôi" hoặc bất cứ điều gì khác.

Kỹ thuật workflow nâng cao

Khi bạn đã quen sử dụng Claude, có những điều gì bạn có thể nghĩ đến để nâng cao hơn nữa?

Sử dụng nhiều Claude cùng lúc

Một trong những điều chúng tôi thấy cả nội bộ và với khách hàng là khi bạn đã bắt đầu sử dụng công cụ này một thời gian, bạn sẽ rất muốn sử dụng nhiều Claude cùng lúc. Tôi biết những người ở Anthropic và một vài khách hàng chạy bốn Claude cùng lúc. Có nhiều cách để làm điều này: bạn có thể chạy trong T-Mox hoặc chỉ là các tab khác nhau, đủ mọi loại điều điên rồ. Vì vậy, tôi khuyến khích bạn thử chạy nhiều Claude cùng lúc và điều phối tất cả những điều này. Nó khá thú vị. Tôi chỉ có thể làm được hai, nhưng tôi biết những người có thể làm được bốn.

Sử dụng Escape

Escape là người bạn tốt nhất của bạn. Khi Claude đang làm việc, bạn có thể theo dõi những gì nó đang làm và nhấn Escape để dừng nó, sau đó xen vào và nói: "Này, tôi nghĩ bạn đang đi sai hướng" hoặc "Tôi muốn bạn làm điều gì khác." Biết thời điểm thích hợp để nhấn Escape so với việc chỉ để Claude tự tìm ra cách là chìa khóa để tận dụng tối đa công cụ này.

Và có một tính năng ẩn mà không nhiều người biết: nếu bạn nhấn Escape hai lần, bạn thực sự có thể quay lại trong cuộc trò chuyện của mình, quay lại và thiết lập lại.

Mở rộng công cụMCP

Điều này đưa mọi thứ lên một tầm cao mới. Nếu bạn cảm thấy rằng với Bash và với các công cụClaude có, nó vẫn không thể làm được điều gì đó, thì đây là lúc bạn nên bắt đầu tìm hiểu về các máy chủ MCP.

Headless Automation

Tôi nghĩ đây là điều chúng tôi hào hứng nhất, nhưng chúng tôi cũng vẫn đang cố gắng tìm hiểu nội bộ: làm thế nào chúng ta có thể sử dụng Claude một cách lập trình? Chúng tôi đã có nó trong GitHub Actions. Chúng tôi muốn tìm ra những nơi sáng tạo khác mà chúng tôi có thể bắt đầu sử dụng nó. Tôi khuyến khích tất cả các bạn làm điều tương tự.

Tính năng mới và Cập nhật

Với tất cả những gì đã nói, tôi sẽ chuyển sang máy tính của mình, vì có một thực hành tốt nhất khác là: luôn cập nhật mọi thứ mới. Chúng tôi đang phát hành rất nhanh. Tôi sẽ trình bày một vài điều mới tính đến hôm nay.

Lựa chọn mô hình AI

Một điều là khi bạn đang ở trong Claude và khởi động nó, bạn có thể dùng /model để xem bạn đang chạy mô hình AI nào. Tôi đang dùng mặc định là Sonnet. Chúng ta có thể chuyển sang Opus. Bạn có thể làm tương tự với /config để chuyển đổi ở đây. Đó là một tính năng mới. Hãy đảm bảo bạn đang chạy mô hình AI phù hợp với mình.

Khả năng "suy nghĩ" giữa các lệnh tool

Có một điều mới khác về các mô hình AI này là bạn có thể nói những câu như "Bạn có thể tìm hiểu xem dự án này có gì không?". Trong một thời gian dài, chúng tôi đã có tính năng "suy nghĩ sâu" (think hard) hoặc "tư duy mở rộng" (extended thinking). Điều này rất tuyệt, nhưng với các mô hình AI trước đây của chúng tôi, chúng tôi không cho phép mô hình AI suy nghĩ giữa các lần gọi công cụ (tool calls), và đó có lẽ là lúc tư duy quan trọng nhất.

Bắt đầu với Claude 4, các mô hình AI của chúng tôi giờ đây có thể suy nghĩ giữa các lần gọi công cụ. Chúng ta có thể xem điều này xảy ra. Chúng tôi có Claude trong dự án này, có một vài tệp khác nhau ở đây, và tôi sẽ chỉ nói nó "suy nghĩ sâu" để tìm hiểu xem dự án này có gì. Và chúng ta có thể xem Claude bắt đầu làm việc. Cách bạn biết mình đã kích hoạt tư duy là bạn sẽ thấy văn bản màu xám nhạt hơn, sau đó nó sẽ gọi một tệp, gọi một số công cụ, đọc một số thứ, và sau đó chúng ta thấy nó suy nghĩ thêm. Điều này thật tuyệt vời! Vì vậy, tôi khuyến khích bạn khi đang làm việc trên các tác vụ và giải quyết lỗi, hãy thêm một think hard vào đó.

Tích hợp VS CodeJetBrains

Một điều khác, bạn biết không, chúng ta sẽ nhanh chóng đề cập đến là: Tôi có điều này trong VS Code, nhưng tất nhiên nó cũng có trong JetBrains. Chúng tôi có những tích hợp tuyệt vời mới với VS CodeJetBrains. Chúng ta có thể làm những điều như Claude sẽ biết tôi đang ở trong tệp nào. Tôi không định nói vậy nhưng Claude sẽ hiểu. Và bạn có thể làm những điều như thế này.

Vì vậy, đây là những điều tôi khuyến khích bạn nên cập nhật. Chúng tôi có một dự án GitHub công khai gọi là Claude Code thuộc Anthropic. Bạn có thể đăng các vấn đề ở đó, nhưng chúng tôi cũng đăng change log (nhật ký thay đổi) của chúng tôi ở đó. Và tôi kiểm tra điều này mỗi tuần một lần để đảm bảo rằng tôi luôn cập nhật tất cả những điều mới mà chúng tôi đang phát hành, bởi vì ngay cả tôi cũng không thể theo kịp.

Hỏi đáp

Nhiều tệp Claude.MD trong một dự án

Với tất cả những gì đã nói, chúng ta còn khoảng bốn phút. Tôi sẵn lòng trả lời các câu hỏi liên quan đến Claude Code. Chúng tôi có nó ở đây; tôi có thể demo trực tiếp một vài thứ nếu bạn quan tâm. Hãy nhanh chóng thực hiện một vài câu hỏi. Điều này có thể hiển nhiên, nhưng nhiều tệp Claude.MD trong một dự án – tôi cho rằng điều đó là khả thi và nó tự động tìm ra, hay không?

Có một vài lựa chọn. Tất nhiên, trong cùng một thư mục thì không thể, nhưng bạn có thể có một tệp ở đây và một tệp trong thư mục con. Tôi nghĩ chúng tôi đã thay đổi điều này để tất cả các tệp trong thư mục con không được đọc vào, bởi vì tại Anthropic chúng tôi có một monorepo và mọi người sẽ mở nó ở cấp cao nhất và làm tràn ngữ cảnh của họ với tất cả các tệp Claude.MD. Vì vậy, chúng tôi khuyến khích Claude, khi nó tìm kiếm xung quanh và phát hiện các tệp Claude.MD trong các thư mục con có liên quan, hãy đảm bảo đọc chúng. Nhưng theo mặc định, nó chỉ đọc tệp Claude.MD trong thư mục làm việc hiện tại khi bạn khởi động nó. Bạn cũng có thể đặt một tệp trong thư mục gốc của mình.

Tuy nhiên, có những điều bạn có thể làm. Chúng tôi có một tính năng mới: trong tệp Claude.MD của bạn, bạn có thể bắt đầu tham chiếu các tệp khác. Ví dụ, bạn có thể làm điều gì đó như thế này với ký hiệu @ nếu bạn có các tệp Claude.MD khác mà bạn luôn muốn đọc vào để làm điều gì đó.

Khắc phục Claude không tuân thủ Claude.MD (ví dụ: tạo bình luận nội dòng)

Chào. Tôi chưa thành công trong việc khiến Claude tuân thủ tệp Claude.MD của mình. Có một điều đặc biệt là: tôi sẽ yêu cầu tái cấu trúc (refactor) một cái gì đó, và sau đó nó sẽ để lại các bình luận nội dòng giải thích "cái gì" của nó, và đó là một điều cực kỳ hiển nhiên. Và tôi sẽ bảo nó loại bỏ bất kỳ bình luận nội dòng nào mô tả "cái gì" đang xảy ra, và sau đó nó sẽ xóa bỏ, nhưng rồi ngay lập tức làm lại điều tương tự. Vậy bạn có chiến lược nào để xử lý điều đó không?

Có hai điều có thể khắc phục điều đó. Đó thực sự là một vấn đề của mô hình AI. Không có gì trong câu lệnh – chúng tôi thực sự có nhiều trong các câu lệnh cho phiên bản 3.7 đã nói "Tuyệt đối không để lại bình luận". Mặc dù vậy, mô hình AI vẫn rất thích để lại bình luận. Vì vậy, tôi không ngạc nhiên khi tệp Claude.MD của bạn không giúp ích được nhiều. Hoặc là chúng tôi đã làm rất nhiều, tôi đã làm rất nhiều để cố gắng hạn chế nó so với những gì xảy ra sẵn. Vì vậy, chúng tôi đã khắc phục điều đó chủ yếu trong Claude 4.

Bây giờ có thể có một số quirks hành vi kỳ lạ mới, nhưng điều khác mà chúng tôi đã cải thiện trong Claude 4 là nó chỉ đơn giản là tốt hơn trong việc tuân thủ các hướng dẫn. Và chúng tôi đã nhận được rất nhiều phản hồi từ những người thử nghiệm ban đầu rằng đột nhiên, "Ôi, tệp Claude.MD của tôi đang được tuân thủ chặt chẽ hơn nhiều." Và đây có thể là một cơ hội tốt để xem lại tệp Claude.MD của bạn và quyết định xem bạn có còn cần những thứ này không. Có lẽ bạn có thể loại bỏ một số thứ. Có lẽ bạn cần thêm một vài điều mới. Vì vậy, việc chuyển sang các mô hình AI mới có thể là thời điểm tốt để xem xét lại những gì có trong đó và xem bạn cần gì và điều gì có thể loại bỏ.

Phối hợp Đa Tác nhân và Xử lý Song song

Hãy thử nghĩ về điều mà bạn có thể chưa từng xem xét: thực thi đa tác nhânsong song hóa. Bạn có thể thực hiện điều đó cho bốn Tác nhân AI không? Chẳng hạn, Tác nhân AI số hai và ba sử dụng ngữ cảnh của Tác nhân AI số một, hoặc có thể Tác nhân AI số bốn sử dụng ngữ cảnh của Tác nhân AI số hai tại một thời điểm nhất định, v.v. Đó là một ý tưởng thú vị. Chúng tôi đang cố gắng... Như tôi đã nói lúc ban đầu, chúng tôi đang cố gắng làm những điều đơn giản mà hiệu quả. Đó chỉ là một Tác nhân AI giỏi lập trình và thực hiện mọi thứ. Tôi nghĩ chúng tôi muốn tìm ra cách làm điều đó.

Quản lý Trạng thái và Giao tiếp giữa các Tác nhân

Có lẽ điều sẽ xảy ra là nếu bạn muốn làm vậy, bạn sẽ yêu cầu tất cả Tác nhân AI của mình có thể ghi vào một tệp Markdown được chia sẻ hoặc thứ gì đó tương tự để chúng có thể kiểm tra và giao tiếp. Đôi khi, khi tôi làm việc với Claude.MD hoặc Claude, tôi chỉ cần nói: "Này, bạn cần viết một số nội dung vào tệp ticket.MD cho một nhà phát triển khác." Và sau đó, tôi sẽ khởi động một Claude Code khác và nói: "Này, đọc tệp ticket.MD đi. Một nhà phát triển khác đã để lại ghi chú này cho bạn. Đây là những gì bạn sẽ làm." Vì vậy, hãy thử nghĩ đến việc ghi trạng thái đó vào một tệp và sau đó dựa vào khả năng của mô hình AI để đọc và hiểu các tệp. Đây có lẽ là cách tốt nhất bạn có thể làm hiện nay. Và có thể chúng tôi sẽ tìm ra những cách thông minh hơn để đưa khả năng đó vào sản phẩm một cách tự nhiên hơn.

Tuyệt vời. Với những điều đã nói, tôi có một vài hình dán Claude Code hiếm mà tôi tìm thấy trong ba lô của mình. Hãy đến tìm tôi. Tôi sẽ ở quanh đó. Rất vui được chia sẻ và cảm ơn các bạn.

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?