Bỏ qua điều hướng

Vì sao nên xóa bộ nhớ tự động memory.md của Claude Code

Lý do kỹ sư nên xóa memory.md trong Claude Code để tối ưu context window, giảm chi phí token và giữ cho AI hoạt động ổn định, nhất quán hơn.

Tuan Tran Van
7 phút đọc
Mục lục (7 phần)
  1. Auto memory.md là gì và khác gì CLAUDE.md?
  2. Vì sao memory.md âm thầm ngốn ngữ cảnh của bạn?
  3. Khi trí nhớ tự động bắt đầu "tự vận hành" setup của bạn
  4. Xóa hoặc tắt memory.md: khi nào và làm thế nào?
  5. Giữ lại gì thay cho bộ nhớ tự động?
  6. Vậy bạn có nên xóa memory.md không?
  7. Tài liệu tham khảo

Bạn nên xóa hoặc tắt hẳn tính năng tự động tạo file memory.md trong Claude Code: nó gây rác ngữ cảnh (context bloat), lãng phí token và làm sai lệch logic làm việc của bạn.

Cơ chế này vốn sinh ra để AI tự ghi lại "kinh nghiệm" giữa các phiên. Nhưng với một kỹ sư cần sự chính xác, nó thường là nguồn cơn của những lỗi hành vi khó hiểu — và cái giá phải trả nằm ở từng token bạn bỏ ra cho mỗi tin nhắn.

Mỗi khi bạn chat, Claude Code phải gánh thêm một lượng payload vô hình từ các file bộ nhớ này. Thay vì để AI tự suy diễn và ghi chép lộn xộn, việc giữ hệ thống ở trạng thái "stateless" (không lưu trạng thái) và kiểm soát chỉ dẫn thủ công sẽ giúp bạn làm chủ hoàn toàn luồng công việc.

Minh hoạ chủ đề: dọn sạch file memory.md phình to để giữ cho Claude Code gọn nhẹ, ổn định và dễ đoán

Auto memory.md là gì và khác gì CLAUDE.md?

Claude Code vận hành dựa trên hai hệ thống ghi nhớ song song. Hiểu rõ sự khác biệt giữa chúng là bước đầu tiên để tối ưu hiệu suất:

Đặc điểmCLAUDE.mdAuto memory (MEMORY.md)
Người viếtBạn (kỹ sư)Claude (AI)
Nội dungQuy tắc, tiêu chuẩn code, kiến trúcKinh nghiệm, mẫu hình, tùy chọn cá nhân
Giới hạn nạpNạp toàn bộ file vào mỗi phiênChỉ nạp 200 dòng đầu hoặc 25 KB đầu tiên
Mục đíchĐịnh hướng hành vi bền vữngTự học từ lỗi sai và thói quen của bạn

File MEMORY.md (nằm trong ~/.claude/projects/<tên-dự-án>/memory/) đóng vai trò như một "entrypoint index" — mục lục lối vào. Khi lượng ghi chép lớn dần, Claude tự động tách các chi tiết vào những "topic files" riêng lẻ như debugging.md hay patterns.md.

Có một khác biệt kiến trúc quan trọng: thư mục này nằm cục bộ trên máy (machine-local) và được suy ra từ hash của repo, nên nó dùng chung cho mọi git worktree. Với người hay dùng nhiều worktree, điều này gây rò rỉ ngữ cảnh — các mẫu debug cũ từ một nhánh thử nghiệm có thể lẫn sang một bản vá production. Ngược lại, CLAUDE.md được cả subagent nạp theo để bám đúng chuẩn dự án, còn auto memory của hội thoại chính lại không được subagent kế thừa (trừ fork). Nói cách khác, auto memory là chỗ kém tin cậy để chứa logic bạn muốn tồn tại xuyên suốt một quy trình nhiều agent.

Vì sao memory.md âm thầm ngốn ngữ cảnh của bạn?

Mỗi tin nhắn bạn gửi đi không chỉ chứa prompt của bạn. Nó đi kèm một "payload" khá lớn: định nghĩa công cụ, chỉ dẫn hệ thống và các file bộ nhớ. Đây là một loại "thuế token" bạn phải trả cho mỗi lượt tương tác (turn), dù bạn có cần đến nó hay không.

Sơ đồ "thuế token": mỗi tin nhắn đều gánh thêm một payload bộ nhớ vô hình, ăn dần vào context window

  1. Lãng phí tài nguyên: Ngay cả khi không cần đến những "kỷ niệm" cũ, Claude vẫn nạp 200 dòng đầu của MEMORY.md. Nếu file vượt giới hạn 25 KB, Claude Code sẽ báo lỗi và bắt AI viết lại mục lục, tốn thêm token và thời gian xử lý. Từ phiên bản 2.1.211, phần đo giới hạn đã bỏ qua YAML frontmatter và comment HTML, nhưng payload vẫn là một khoản hao hụt cố định.
  2. Rác ngữ cảnh: Khi AI "nhớ lại" các topic files từ index, chúng chiếm chỗ của mã nguồn thực tế trong context window. Bạn đang trả tiền cho phần máy móc xung quanh thay vì tập trung vào logic bài toán.

Bạn có thể dùng lệnh /context để kiểm tra thực tế — nó liệt kê chi tiết tỷ lệ phần trăm token mà các file memory đang chiếm trong tổng ngữ cảnh.

Khi trí nhớ tự động bắt đầu "tự vận hành" setup của bạn

Vấn đề lớn nhất là tính thiếu ổn định. AI thường trở nên "quá nhiệt tình". Ví dụ: bạn thử một thư viện tạm thời trong một phiên debug, Claude có thể lưu lựa chọn đó vào bộ nhớ. Ở các phiên sau, nó tự mặc định rằng bạn muốn dùng thư viện đó cho toàn bộ dự án.

Minh hoạ hành vi trôi dạt: một lựa chọn tạm thời trong một phiên trở thành mặc định toàn cục ở các phiên sau

Việc tích tụ "tạp chất" trong MEMORY.md khiến hành vi của AI dần trôi dạt và thiếu nhất quán theo thời gian. Với kỹ sư, điều này rất nguy hiểm vì bạn mất đi tính nhất quán của môi trường làm việc — và khó debug hẳn lên khi agent bỗng từ chối tuân theo logic mặc định của dự án. Giữ AI ở trạng thái "stateless" đảm bảo mỗi phiên bắt đầu từ một nền tảng sạch, chỉ tuân theo những gì bạn đã quy định tường minh.

Xóa hoặc tắt memory.md: khi nào và làm thế nào?

Bạn nên can thiệp ngay khi thấy AI đưa ra gợi ý không liên quan, hoặc khi lệnh /context cho thấy lượng token dành cho memory tăng bất thường.

Để tắt tính năng này, sửa settings.json~/.claude/settings.json (toàn cục) hoặc trong thư mục dự án:

json
{
  "autoMemoryEnabled": false
}

Hoặc nhanh nhất là đặt biến môi trường trong cấu hình shell (.zshrc hoặc .bashrc):

bash
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1

Sau khi tắt, bạn có thể xóa sạch thư mục ~/.claude/projects/<tên-dự-án>/memory/ để giải phóng hoàn toàn bộ nhớ cũ. Muốn kiểm tra hoặc chỉnh sửa trước khi xóa, dùng lệnh /memory để duyệt và mở từng file.

Giữ lại gì thay cho bộ nhớ tự động?

Thay vì để AI tự đoán ý, hãy quản lý chỉ dẫn thủ công một cách khoa học. Đây là cách tiếp cận thực dụng hơn:

  1. Tối ưu CLAUDE.md: Đưa lệnh build, tiêu chuẩn thụt lề (indentation) và kiến trúc quan trọng vào đây. Hãy viết cụ thể — "Dùng indentation 2 space" thay vì "Format code đúng chuẩn".
  2. Sử dụng .claude/rules/: Với dự án lớn, chia nhỏ instruction theo module (ví dụ api.md, testing.md). Claude chỉ nạp các quy tắc này khi bạn làm việc với file trong thư mục tương ứng (path-scoped rules), tiết kiệm ngữ cảnh hơn nhiều so với một file memory hỗn tạp. Muốn dọn bớt phần đã phình, lệnh /doctor sẽ đề xuất cắt những nội dung Claude vốn tự suy ra được từ mã nguồn — như cấu trúc thư mục hay danh sách dependency.

Vậy bạn có nên xóa memory.md không?

Câu trả lời ngắn gọn là: có. Nếu bạn ưu tiên sự gọn gàng, tiết kiệm token và muốn AI hoạt động nhất quán, hãy tắt và xóa memory.md. Cơ chế tự ghi nhớ chỉ hợp với việc dựng nhanh (prototyping) hay những phiên dùng một lần, nơi bạn chấp nhận đánh đổi tính dự đoán được để lấy sự tiện lợi. Còn với môi trường production và dự án lớn, hãy chọn sự kiểm soát: điều hướng agent bằng CLAUDE.md và path-scoped rules — được quản lý phiên bản, chia sẻ được và luôn nhất quán.

Tài liệu tham khảo

Đọc tiếp

Chia sẻ bài viết

X / TwitterFacebookLinkedIn