AI

Dạy Claude ghi nhớ: cách ngăn những lỗi cũ quay lại

Bạn sửa lỗi cho Claude. Nó xin lỗi, sửa lại, và bạn đi tiếp. Sáng hôm sau bạn mở một cuộc trò chuyện mới — và cùng lỗi đó lại quay về. Có thể là định dạng ngày tháng bạn đã bảo nó thôi dùng, hay một thư viện bạn đã nói hai lần là bạn không dùng. Rồi còn những vấn đề âm thầm hơn: phép tính tự tin nhưng sai, đôi khi một bước nhảy logic không đứng vững.

Không điều nào trong số đó nghĩa là công cụ bị hỏng. Nó nghĩa là bạn chưa cho Claude một bộ nhớ — một nơi để giữ bài học sao cho phiên kế tiếp khởi đầu đã biết sẵn. Bài viết này nói về cách làm đúng điều đó: bộ nhớ nằm ở đâu, cách viết những quy tắc Claude thực sự sẽ tuân theo, liệu có phần nào trong đó tự động hay không (phần lớn là không — và đó là điều mấu chốt cần hiểu), và mẹo riêng để sửa phép tính sai.

Vì sao nó quên ngay từ đầu

Mỗi cuộc trò chuyện mới khởi đầu từ một tờ giấy trắng. Một lần sửa lỗi bạn thực hiện vào thứ Hai chỉ sống bên trong cuộc trò chuyện của thứ Hai. Claude của thứ Ba chưa bao giờ thấy nó. Đó không phải là sự đãng trí theo nghĩa của con người — đơn giản là một cuộc trò chuyện không được mang sang trừ khi bạn lưu điều đã học vào một nơi sẽ được đọc lại.

Vậy nên thực ra có hai việc. Thứ nhất, cho Claude một nơi để ghi nhớ. Thứ hai, viết những gì bạn đặt vào đó thành các quy tắc nó có thể tuân theo, chứ không phải những mong muốn mơ hồ. Làm đúng cả hai và cùng một lần sửa lỗi không bao giờ phải đưa ra hai lần.

CLAUDE.md — bộ nhớ của dự án

Điều hữu ích nhất bạn có thể làm là giữ một tệp tên là CLAUDE.md. Đó là một tệp văn bản thuần mà Claude đọc tự động vào đầu mỗi phiên, trước khi làm bất cứ điều gì khác. Mọi quy tắc, quy ước và bẫy ngầm bạn đặt vào đó trở thành ngữ cảnh thường trực cho dự án ấy — được áp dụng mỗi lần, không cần nhắc lại.

GHI NHỚ · MỘT LẦN SỬA LỖI“Chúng tôi dùng chính tả Anh-Anh — "colour", không bao giờ "color".”
Không có ghi nhớ

Thứ Hai — Claude: "…đặt color thương hiệu…"

Bạn — "Dùng chính tả Anh-Anh nhé — colour."

Thứ Ba — Claude: "…color của nút bấm…" 🙄

Hôm nay bạn sửa nó. Ngày mai là một cuộc trò chuyện mới chưa hề nghe quy tắc đó.

Với CLAUDE.md
◇ CLAUDE.md
## Phong cách nhà
- Dùng chính tả Anh-Anh (colour,
  organise) — không bao giờ chính tả Mỹ.
Thứ Hai ✓ · Thứ Ba ✓ · mọi cuộc trò chuyện ✓

Viết quy tắc xuống một lần. Mọi phiên làm việc sau này đều nạp nó trước khi làm bất cứ điều gì.

Nó nằm ở hai nơi chính, và bạn sẽ dùng cả hai:

  • Bộ nhớ dự án — một tệp CLAUDE.md ở thư mục gốc của dự án. Commit nó vào Git và cả nhóm (cùng mọi lần chạy tự động) chia sẻ cùng những quy tắc. Đây là nơi đặt các quy ước riêng của dự án.
  • Bộ nhớ cá nhân — một tệp CLAUDE.md trong thư mục ~/.claude/ của bạn. Nó áp dụng xuyên tất cả các dự án của bạn và chỉ dành riêng cho bạn — các sở thích và thói quen của riêng bạn.

Bạn không phải bắt đầu từ con số không: chạy /init trong một dự án sẽ bảo Claude đọc mã nguồn và soạn một bản CLAUDE.md đầu tiên cho bạn. Từ đó bạn tinh chỉnh nó bằng tay.

“Nó có tự cập nhật không?” — có hai bộ nhớ

Đây là câu hỏi ai cũng hỏi, và câu trả lời trung thực có hai nửa, bởi vì Claude Code thực ra giữ hai bộ nhớ.

CLAUDE.md là bộ nhớ bạn viết, và nó không tự cập nhật. Khi bạn sửa lỗi cho Claude, nó sẽ không lặng lẽ viết lại CLAUDE.md cho bạn — và điều đó là cố ý. Tệp này là cuốn quy tắc đã được cân nhắc, có quản lý phiên bản, được chia sẻ với nhóm của bạn; bạn sẽ không muốn nó tự sửa sau lưng bạn. Để thêm một quy tắc, bạn hoặc mở tệp, chạy /memory để tìm và chỉnh sửa nó, hoặc đơn giản bảo Claude “thêm điều này vào CLAUDE.md: …” và để nó thực hiện thay đổi.

Bộ nhớ thứ hai thì tự động. Các phiên bản gần đây của Claude Code giữ một “bộ nhớ tự động” — một cuốn sổ tay Claude tự viết cho chính mình trong khi làm việc, lặng lẽ ghi lại những điều nó phát hiện ra và những lần bạn sửa lỗi, không cần bạn làm gì. Nó bật theo mặc định. Vậy nên khi người ta hỏi “chẳng lẽ nó không nhớ được sao?”, câu trả lời là: ở một mức độ nào đó, nó đã nhớ rồi. Nhưng bộ nhớ tự động là cuốn sổ làm việc của Claude, không phải cuốn quy tắc của bạn — nó nằm trên máy của bạn chứ không nằm trong repo, và chỉ một chỉ mục ngắn của nó được nạp mỗi phiên. Với những quy tắc bạn không bao giờ muốn giải thích lại — các quy ước của nhóm, những điều “tuyệt đối không làm” — bạn vẫn muốn chúng nằm trong CLAUDE.md, do chính bạn viết, một cách có chủ đích.

Cách nhanh nhất để ghi lại điều gì đó ngay lúc đó là lối tắt #: bắt đầu một dòng bằng #, chẳng hạn # we deploy on Fridays — never touch main after 4pm, và Claude lưu thẳng nó vào bộ nhớ tự động ấy. Hãy coi đó như một ghi chú nhanh, rồi đưa những cái đáng giữ lên CLAUDE.md khi bạn dọn dẹp. Trong khi đó, lệnh /memory cho bạn thấy mọi thứ hiện đang được nạp, để bạn mở bất kỳ tệp nào để chỉnh sửa, và bật/tắt bộ nhớ tự động.

Dù bạn dùng cách nào, thói quen làm thay đổi tất cả vẫn là một: khoảnh khắc bạn sửa lỗi cho Claude, hãy viết lần sửa đó xuống một nơi sẽ được đọc lại. Đó là toàn bộ khác biệt giữa việc giải thích một điều mãi mãi và giải thích nó một lần.

Viết quy tắc thành quy tắc, không phải mong muốn

Một tệp bộ nhớ chỉ hữu ích nếu các quy tắc có thể tuân theo được. Lý do phổ biến nhất khiến Claude “phớt lờ” CLAUDE.md của bạn là quy tắc quá mơ hồ để hành động theo. Ba thói quen làm quy tắc bám trụ:

  • Cụ thể và kiểm chứng được. “Viết code sạch” là một mong muốn. “Mỗi hàm làm một việc; không hàm nào dài quá 40 dòng” là một quy tắc.
  • Nêu lý do. “Dùng wrapper api/client.ts của chúng tôi cho mọi lệnh gọi mạng — nó thêm header xác thực và cơ chế thử lại, và bỏ qua nó gây ra lỗi 401 âm thầm.” Lý do giúp Claude áp dụng quy tắc cho những trường hợp bạn không liệt kê.
  • Cho thấy đúng và sai. Một ví dụ ngắn về cách đúng và cách sai đáng giá hơn cả một đoạn văn mô tả.

Một vài quy tắc hiệu quả tốt, để bạn hình dung:

# Conventions
- Dates are always ISO 8601 (2026-06-29), never DD/MM/YYYY.
- Use British spelling (colour, organise) — this is a UK product.
- Money is stored in integer pence, never floats. Floats cause
  rounding bugs at checkout.
- Never add a dependency without asking — we keep the bundle small.
- Run the test suite before saying a task is done.

Vấn đề toán và logic cần một cách sửa khác

Bảo Claude “cẩn thận hơn” với phép tính không có tác dụng, vì vấn đề không phải là sự cẩu thả. Một mô hình ngôn ngữ dự đoán văn bản; nó là một bộ khớp mẫu xuất sắc, không phải một máy tính. Bảo nó tính phần trăm kép trong đầu và nó sẽ cho bạn một con số tự tin, nhanh, và sai một chút.

SUY LUẬN · TÍNH TOÁN ĐI“Tỷ lệ rời bỏ là 6%/tháng. Trong 41.310 khách hàng, sau 6 tháng còn lại bao nhiêu?”
Tính nhẩm

Khoảng 33.000 khách hàng sẽ còn lại sau sáu tháng.

…không trình bày cách tính — và lệch tới hàng nghìn.

Tự tin, nhanh — và sai một cách lặng lẽ. Các mô hình chỉ đoán phép tính.

Hãy tính ra số
▷ tính toán
41310 * (1 - 0.06) ** 6
= 41310 * 0.6899
= 28,500 khách hàng
✓ chính xác, và bạn có thể kiểm tra lại

Bảo nó tính toán, đừng ước lượng. Nó chạy phép tính và trình bày cách làm.

Cách sửa không phải là bắt nó cố gắng hơn — mà là ngăn nó tính nhẩm. Bảo nó tính ra đáp án bằng một công cụ (chạy một đoạn code, hoặc dựng công thức trong một bảng tính) và trình bày cách làm để bạn kiểm tra. Claude hiện đại có thể chạy code để tính, và một con số nó tính ra rồi in ra là thứ bạn có thể kiểm chứng; một con số nó “chỉ biết thế” thì không.

Cũng hữu ích khi để nó suy nghĩ trước khi trả lời. Các mô hình Claude mới hơn có thể thực hiện một bước “suy nghĩ” mở rộng — một nháp riêng tư nơi chúng làm tới nơi tới chốn một bài toán trước khi đáp — và Anthropic khuyên dùng nó đúng cho toán nhiều bước và logic hóc búa, nơi nó cải thiện độ chính xác một cách đo lường được. Trên thực tế, điều đó đơn giản như yêu cầu nó “suy nghĩ thật kỹ và trình bày từng bước” trước khi chốt một đáp án.

Cùng ý tưởng ấy sửa được logic lung lay. Hãy yêu cầu nó suy nghĩ từng bước và trình bày lập luận thay vì nhảy thẳng tới một đáp án, và thêm một bước kiểm chứng — “giờ hãy đối chiếu kết quả đó với các con số ban đầu.” Với bất cứ điều gì thực sự quan trọng, nước cờ mạnh nhất là bắt nó viết một bài kiểm thử: một bài kiểm thử thì đỗ hoặc trượt, và đó không phải là chuyện quan điểm. Bạn thậm chí có thể đưa điều này vào bộ nhớ:

# Reasoning
- For any non-trivial calculation, compute it with code and show
  the working. Never estimate a number you can compute.
- For tricky logic, reason step by step, then verify the result
  before presenting it.

Ba lý do một tệp bộ nhớ bị phớt lờ

  1. Nó quá dài. Một CLAUDE.md phình to bị đọc lướt, không được tiếp thu; lời khuyên thực dụng là giữ mỗi tệp dưới khoảng 200 dòng. Mỗi dòng phải xứng đáng có mặt — hãy tự hỏi “bỏ dòng này đi có gây ra một lỗi không?” Nếu nó cứ phình lên, đó là dấu hiệu rằng một phần thuộc về các tệp quy tắc theo phạm vi đường dẫn, hoặc thuộc về một Skill thay vào đó.
  2. Các quy tắc mơ hồ. Xem ở trên — “hãy nhất quán” không thể tuân theo; “dùng thụt lề 2 khoảng trắng” thì có thể.
  3. Nó tự mâu thuẫn. Hai quy tắc kéo về hai hướng ngược nhau triệt tiêu lẫn nhau. Hãy rà lại tệp thỉnh thoảng và bỏ những dòng đã lỗi thời.

Khi bài học lớn hơn một dự án

CLAUDE.md dành cho sự kiện và quy tắc. Hai người hàng xóm đáng biết. Skills dành cho “luôn làm tác vụ này theo cách này” — một phương pháp lặp lại được mà bạn trao đi một lần (chúng tôi nói sâu về chúng ở đây). Và bộ nhớ bền vững để Claude giữ các ghi chú trải dài qua các dự án và phiên, nên công việc kéo dài hơn không phải khởi động từ con số không mỗi lần. Công cụ khác nhau, cùng một bản năng: viết bài học xuống một nơi sẽ được đọc lại.

Điều cốt lõi

Claude sẽ không nhớ thay bạn — nhưng nó sẽ không bao giờ quên điều bạn viết xuống. Những lỗi khiến bạn phát điên hầu như luôn là những lần sửa lỗi không có nơi nào để trú. Hãy cho chúng một mái nhà trong CLAUDE.md, diễn đạt chúng thành các quy tắc có lý do, và bắt nó tính ra số thay vì đoán. Mười phút biến năm lần sửa lỗi gần nhất của bạn thành năm dòng là việc đem lại hiệu suất cao nhất bạn sẽ làm với công cụ này cả tuần — bởi vì đó là lần cuối bạn phải đưa ra năm lần sửa lỗi ấy.

Cần hỗ trợ để áp dụng vào thực tế?

Chúng tôi biến chiến lược Adobe, dữ liệu và AI thành kết quả triển khai, đo lường được.