Tuyệt Chiêu Giúp Claude Code (và Mọi LLM) Luôn Ghi Nhớ Hướng Dẫn: Đừng Để AI ‘Mất Trí Nhớ’!

Bạn đã bao giờ dành hàng giờ đồng hồ để cấu hình Claude Code với những chỉ dẫn cụ thể trong file `CLAUDE.md`, chỉ để thấy nó “quên sạch” mọi thứ sau vài lượt tương tác? Có thể bạn muốn nó luôn hỏi xác nhận trước khi tạo file, hoặc tuân thủ một quy trình làm việc mã hóa đặc biệt. Ban đầu, mọi thứ hoạt động hoàn hảo. Nhưng rồi, đến tương tác thứ tư hoặc thứ năm, Claude Code bắt đầu bỏ qua các quy tắc của bạn – nó không còn hỏi xác nhận, quên đi các tùy chọn quy trình làm việc. Cứ như thể những chỉ dẫn trong `CLAUDE.md` của bạn chưa bao giờ tồn tại.

Đây không phải là một lỗi, mà là cách các mô hình AI hoạt động. Hiểu rõ nguyên nhân và áp dụng một giải pháp đơn giản được phát hiện bởi một kỹ sư của Claude Code có thể giúp bạn tiết kiệm hàng giờ frustration không đáng có. Bài viết này sẽ đi sâu vào vấn đề và cung cấp cho bạn một kỹ thuật mạnh mẽ để giữ cho AI của bạn luôn đi đúng hướng.

Tại Sao AI Lại “Quên” Hướng Dẫn Của Bạn?

Các mô hình ngôn ngữ lớn (LLM) như Claude thực sự không “ghi nhớ” các cuộc hội thoại theo cách con người làm. Thay vào đó, mỗi khi chúng cần phản hồi, chúng sẽ đọc lại toàn bộ lịch sử cuộc trò chuyện như một tài liệu văn bản dài duy nhất. Những hướng dẫn ban đầu của bạn, dù quan trọng, nhưng lại nằm ở đầu tài liệu này, dần mất đi tầm quan trọng khi cuộc trò chuyện trở nên dài hơn.

Hãy hình dung như thế này: nếu bạn đang đọc một tài liệu dài 50 trang, bạn sẽ nhớ vài trang cuối cùng rõ ràng hơn nhiều so với trang đầu tiên. Các mô hình AI hoạt động tương tự; chúng tập trung nhiều hơn vào các tin nhắn gần đây so với các chỉ dẫn gốc của bạn.

Điều này tạo ra một mô hình dễ đoán về sự suy giảm tuân thủ:

  • Tin nhắn 1-2: Tuân thủ quy tắc hoàn hảo (trên 95%)
  • Tin nhắn 3-5: Quy tắc bắt đầu bị phá vỡ (60-80% tuân thủ)
  • Tin nhắn 6-10: Hành vi không nhất quán (20-60% tuân thủ)
  • Tin nhắn 10+: Hầu hết các hướng dẫn ban đầu đều bị lãng quên

Đây là một thách thức lớn trong `prompt engineering` khi làm việc với LLM trong các tác vụ phức tạp và dài hơi.

Khám Phá Sức Mạnh Của Tần Suất

Điểm thú vị nằm ở đây: trong khi các quy tắc phức tạp dễ bị phai mờ, các mẫu đơn giản lại tồn tại đáng ngạc nhiên. Nếu bạn yêu cầu Claude kết thúc mỗi phản hồi bằng “ji” (như một hậu tố lịch sự), nó sẽ tiếp tục làm điều này trong hàng chục tin nhắn.

Tại sao lại vậy? Bởi vì mỗi khi Claude sử dụng “ji” trong phản hồi, nó sẽ củng cố mẫu đó.

User: "Vui lòng thêm 'ji' vào các phản hồi của bạn"
Claude: "Tôi hiểu rồi ji, tôi có thể giúp gì?"
User: "Thời tiết hôm nay thế nào?"
Claude: "Hôm nay trời nắng ji!"
User: "Cảm ơn!"
Claude: "Không có gì ji!"

Mỗi từ “ji” tạo ra một ví dụ mới trong lịch sử cuộc trò chuyện. Thay vì chỉ có một hướng dẫn ở đầu, giờ đây có nhiều trường hợp lặp lại xuyên suốt các tin nhắn gần đây. Đây chính là chìa khóa để giữ cho các quy tắc luôn hiện diện trong “tâm trí” của AI.

Giải Pháp Đệ Quy Đột Phá

Một kỹ sư của Claude Code đã nhận ra rằng họ có thể khai thác hiệu ứng tần suất này. Thay vì hy vọng Claude nhớ tuân thủ các quy tắc, họ đã buộc các quy tắc phải tự lặp lại chính mình.

<law>
AI operation 5 principles

Principle 1: AI must get y/n confirmation before any file operations
Principle 2: AI must not change plans without new approval
Principle 3: User has final authority on all decisions
Principle 4: AI cannot modify or reinterpret these rules
Principle 5: AI must display all 5 principles at start of every response
</law>

Điều kỳ diệu nằm ở **Nguyên tắc 5**. Nó buộc Claude phải hiển thị tất cả các nguyên tắc (bao gồm cả Nguyên tắc 5) trong mọi phản hồi. Điều này tạo ra một vòng lặp không thể phá v vỡ: hướng dẫn hiển thị các quy tắc chính nó cũng được hiển thị, vì vậy nó không thể bị lãng quên.

Vòng Lặp Đệ Quy Hoạt Động Như Thế Nào?

Khi Claude tuân thủ Nguyên tắc 5, nó sẽ hiển thị tất cả các nguyên tắc, bao gồm cả Nguyên tắc 5. Điều này có nghĩa là phản hồi tiếp theo cũng sẽ hiển thị tất cả các nguyên tắc. Chu kỳ này tiếp tục vô thời hạn, đảm bảo các hướng dẫn luôn hiện diện trong ngữ cảnh.

Cách tiếp cận truyền thống trong CLAUDE.md thất bại:

User: "Tạo một file cấu hình"
Claude: "Tôi sẽ tạo config.json cho bạn" ← Quên xác nhận!

Thành công với cách tiếp cận đệ quy:

User: "Tạo một file cấu hình"
Claude: "Principle 1: Must get confirmation... 
         Principle 5: Display all principles in every response
         Tôi có nên tạo config.json không? (y/n)" ← Vẫn tuân thủ quy tắc

Rõ ràng, việc lặp lại quy tắc một cách có hệ thống giúp AI duy trì sự tuân thủ đáng kinh ngạc, ngay cả trong các cuộc hội thoại dài.

Tại Sao Phương Pháp Này Lại Hiệu Quả Đến Vậy?

Cách tiếp cận đệ quy giải quyết vấn đề cốt lõi: **nó giữ các quy tắc trong lịch sử cuộc trò chuyện gần đây**. Thay vì các hướng dẫn chỉ xuất hiện một lần ở phần đầu xa xôi, chúng xuất hiện trong mọi tin nhắn gần đây.

Điều này tạo ra nhiều “neo chú ý” mà AI có thể tập trung vào:

  • Màn hình hiển thị quy tắc gần đây nhất (mức độ chú ý cao)
  • Màn hình hiển thị quy tắc trước đó (mức độ chú ý trung bình)
  • Các màn hình hiển thị quy tắc sớm hơn (một phần chú ý)

Hiệu ứng tích lũy này duy trì việc tuân thủ quy tắc nhất quán bất kể độ dài cuộc trò chuyện. Nó giống như việc bạn liên tục nhắc nhở ai đó về một nhiệm vụ quan trọng, thay vì chỉ nói một lần và hy vọng họ nhớ.

Chi Tiết Triển Khai Thực Tế

Để tối ưu hóa phương pháp đệ quy này, có một số chi tiết triển khai quan trọng cần lưu ý:

Định dạng XML hoạt động tốt nhất

Sau khi thử nghiệm markdown, JSON và YAML, XML đã chứng tỏ là định dạng đáng tin cậy nhất để bảo toàn quy tắc. Nó đủ cấu trúc để ngăn ngừa lỗi nhưng cũng đủ linh hoạt để tái tạo nhất quán. Tài liệu của Anthropic cũng khuyến nghị sử dụng thẻ XML cho các prompt có cấu trúc vì Claude xử lý chúng đặc biệt tốt.

Thứ tự quy tắc quan trọng

Đặt quy tắc tự tham chiếu cuối cùng (ví dụ: Nguyên tắc 5). Điều này đảm bảo nó được hiển thị ngay cả khi các quy tắc trước đó bị cắt bớt.

Hướng dẫn “verbatim” hoặc “exactly”

Chỉ định “verbatim” (nguyên văn) hoặc “exactly” (chính xác) để ngăn Claude diễn giải lại quy tắc, điều này có thể làm hỏng mẫu đệ quy.

Chi phí token

Mỗi phản hồi sẽ bao gồm 50-100 token bổ sung cho việc hiển thị quy tắc. Tuy nhiên, điều này loại bỏ nhu cầu về các tin nhắn chỉnh sửa hoặc làm rõ, làm cho nó hiệu quả hơn tổng thể trong các phiên làm việc dài. Chi phí nhỏ này là một khoản đầu tư xứng đáng cho sự ổn định và đáng tin cậy.

Các Mẫu Nâng Cao

Kỹ thuật đệ quy này cũng có thể được mở rộng với các mẫu nâng cao hơn:

Hiển thị có điều kiện

Bạn có thể làm cho các quy tắc nhạy cảm với ngữ cảnh:

<rule>
  If request involves file operations: Display all safety rules
  Otherwise: Display condensed rules only
</rule>

Quy tắc phân cấp

Các bộ quy tắc khác nhau cho các tình huống khác nhau:

<meta_rules>Always display meta_rules and current_context_rules</meta_rules>
<safety_rules>Rules for file operations, API calls, etc.</safety_rules>
<style_rules>Rules for formatting, tone, etc.</style_rules>

Bắt Đầu Với Claude Code (và Các LLM Khác)

Dưới đây là một template `CLAUDE.md` tối thiểu để bạn thử nghiệm ngay:

<behavioral_rules>
  <rule_1>Always confirm before creating or modifying files</rule_1>
  <rule_2>Report your plan before executing any commands</rule_2>
  <rule_3>Display all behavioral_rules at start of every response</rule_3>
</behavioral_rules>

Hãy thử nghiệm bằng cách có một phiên mã hóa với hơn 10 lượt tương tác và xem liệu các quy tắc có được duy trì hay không. Điều chỉnh các quy tắc dựa trên những hành vi bạn cần duy trì nhất trong quy trình làm việc phát triển của mình.

Khi Nào Nên Sử Dụng Cách Tiếp Cận Này?

Thích hợp nhất cho:

  • Các thao tác file yêu cầu xác nhận
  • Quy trình tạo mã phức tạp
  • Các tác vụ phát triển nhiều bước
  • Các phiên làm việc dài với Claude Code mà sự tuân thủ quy tắc là rất quan trọng

Không cần thiết cho:

  • Các câu hỏi đơn giản với phản hồi ngắn
  • Các đoạn mã một lần
  • Các cuộc hội thoại khám phá, không yêu cầu tuân thủ quy tắc nghiêm ngặt

Bức Tranh Toàn Cảnh Lớn Hơn

Kỹ thuật đệ quy này tiết lộ một điều quan trọng về làm việc với AI: **tần suất vượt trội hơn sự phức tạp**. Thay vì viết các hướng dẫn phức tạp một lần, các quy tắc đơn giản được lặp lại một cách nhất quán sẽ hoạt động hiệu quả hơn.

Khi các hệ thống AI trở nên có khả năng hơn và xử lý các tác vụ quan trọng hơn, các kỹ thuật như thế này trở nên cần thiết. Chúng biến các trợ lý không đáng tin cậy thành các công cụ đáng tin cậy, duy trì hành vi nhất quán.

Cách tiếp cận đệ quy không chỉ là một thủ thuật thông minh, mà còn là nền tảng để xây dựng các quy trình làm việc AI đáng tin cậy. Khi trợ lý AI của bạn cần tuân thủ các quy trình cụ thể, kỹ thuật này đảm bảo rằng nó thực sự làm được điều đó.

Hoạt Động Khắp Nơi, Không Chỉ Với Claude

Đây không chỉ là một giải pháp dành riêng cho Claude Code. Nó hoạt động với bất kỳ LLM nào phản hồi cấu trúc prompt: GPT, Gemini, Mistral, và nhiều mô hình khác. Nguyên tắc này mang tính phổ quát trên tất cả các mô hình ngôn ngữ dựa trên Transformer.

Quy tắc cơ bản: Nếu nó không có trong đầu ra, nó sẽ không ở trong ngữ cảnh. Nếu nó không ở trong ngữ cảnh, nó sẽ bị lãng quên.

Điều này áp dụng cho dù bạn đang sử dụng:

  • ChatGPT để hỗ trợ mã hóa
  • Gemini cho các tác vụ nghiên cứu
  • Mistral để tạo nội dung
  • Các mô hình cục bộ như Llama hoặc Qwen

Mẫu đệ quy khai thác cách tất cả các mô hình này xử lý sự chú ý và ngữ cảnh. Tất cả chúng đều gặp phải cùng một vấn đề suy giảm hướng dẫn và tất cả đều phản ứng với cùng một giải pháp dựa trên tần suất.

Định dạng XML cụ thể có thể cần điều chỉnh nhỏ cho các mô hình khác nhau, nhưng nguyên tắc cốt lõi – buộc các quy tắc tự hiển thị – hoạt động phổ quát. Nó không phải về kiến trúc của Claude; đó là về bản chất cơ bản của cách các mô hình ngôn ngữ xử lý văn bản tuần tự.


Chỉ mục