BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Cách xử lý ngữ cảnh của Claude Code đúng cách: Tránh làm dài phiên và làm cho mô hình càng "ngu ngốc" càng tốt

Đọc bài viết này mất 22 phút
Từ nén, đảo ngược đến siêu phân đoạn, nắm vững những kỹ năng này giúp Claude Code duy trì sản lượng cao suốt cuộc trò chuyện dài.
Tiêu đề Ban Đầu: Sử Dụng Mã Claude: Quản Lý Phiên & Ngữ Cảnh 1M
Tác Giả Ban Đầu: Thariq, Thành Viên Nhóm Claude Code
Dịch Bài: Bảo Ngọc, Nghiên Cứu Viên AI


BlockBeats Đặc Biệt: Trong bối cảnh công cụ lập trình AI liên tục "thu nhỏ cửa sổ", nhiều người dùng đã hiểu lầm rằng với ngữ cảnh càng lớn, trải nghiệm sẽ tự nhiên hơn. Tuy nhiên, bài phân tích trực tiếp từ nhà nghiên cứu Claude Code này đã đưa ra câu trả lời một cách bình tĩnh hơn: thực sự quyết định chất lượng sản phẩm không bao giờ là kích thước cửa sổ chính nó, mà là cách bạn quản lý nó.


Từ việc cập nhật từ /usage, đến việc phân tích chi tiết các hoạt động nhỏ như "Tiếp tục, Quay lại, Nén, Xóa, Con trí tuệ" này, bài viết đã phơi bày một khả năng thường bị bỏ qua - khả năng điều phối ngữ cảnh. Điều này vừa là vấn đề kỹ thuật, vừa là vấn đề nhận thức: khi nào nên giữ lại lịch sử, khi nào nên quên đi tự lực, khi nào nên tách nhiệm vụ ra, khi nào nên bắt đầu lại từ đầu. Những quyết định này, trực tiếp xác định liệu AI đó đang "hợp tác" hay "gây trở ngại". Dưới đây là nội dung ban đầu:


Hôm nay, chúng tôi đã tung ra một cập nhật hoàn toàn mới cho lệnh /usage, nhằm giúp bạn hiểu rõ hơn về việc sử dụng của mình trong Claude Code. Đằng sau quyết định này là các cuộc trao đổi sâu sắc mà chúng tôi đã tiến hành gần đây với người dùng.


Trong những cuộc trao đổi đó, chúng tôi đã nhiều lần nghe thấy một hiện tượng: mọi người có thói quen quản lý phiên hội thoại một cách đa dạng. Đặc biệt là kể từ khi Claude Code nâng cấp cửa sổ ngữ cảnh lên đến 1 triệu, sự khác biệt này trở nên rõ rệt hơn.


Bạn có thói quen chỉ giữ một hai phiên hội thoại mở trong cửa sổ terminal không? Hay mỗi lần nhập từ khóa thì mở một phiên hội thoại mới? Bạn thường sử dụng nén (Compact), quay lại (Rewind) hay các con trí tuệ (Subagents) khi nào? Và điều gì đã dẫn đến một lần nén tồi tệ?


Thực ra đằng sau đó là một biển rộng vô cùng. Những chi tiết dường như không đáng chú ý này ảnh hưởng rất lớn đến trải nghiệm sử dụng Claude Code của bạn. Và tất cả điều này có thể tổng hợp thành một chuyện duy nhất: cách bạn quản lý cửa sổ ngữ cảnh của mình.


Thông Tin Nhanh: Ngữ Cảnh, Nén Ngữ Cảnh và Suy Giảm Ngữ Cảnh



Ðiều gọi là 「Cửa sổ Ngữ cảnh (Context Window)」, giống như mô hình khi tạo ra câu trả lời tiếp theo, có thể 「nhìn thấy」 đồng thời tất cả thông tin. Nó bao gồm từ khóa hệ thống của bạn (System Prompt), bản ghi trò chuyện cho đến nay, mỗi lần gọi công cụ (Tool Call) và kết quả đầu ra của nó, thậm chí còn có từng tập tin nó đã đọc qua. Hiện tại, Claude Code có một cửa sổ ngữ cảnh siêu lớn lên đến 1 triệu từ vựng (Token) (Chú thích: Token là đơn vị cơ bản mà mô hình lớn xử lý văn bản, thông thường một từ tiếng Anh tương đương với 1 Token, một chữ Hán có thể chiếm 1-2 Token).


Nhưng đáng tiếc, việc sử dụng ngữ cảnh đòi hỏi một chút chi phí, chúng ta thường gọi đó là suy giảm ngữ cảnh (Context Rot) (Chú thích: Đề cập đến việc khi lịch sử trò chuyện càng dài, mô hình cần xử lý lượng thông tin quá lớn, dẫn đến sự phân tán sự chú ý, quên thông tin quan trọng ban đầu hoặc bị làm phiền bởi nội dung không liên quan). Khi ngữ cảnh càng dài, hiệu suất của mô hình thường sẽ kém đi, điều này xảy ra vì sự chú ý của nó được phân tán trên nhiều Token hơn. Những nội dung lưu lại từ lâu và không còn quan trọng, sẽ bắt đầu làm phiền mô hình trong khi nó đang thực hiện tác vụ hiện tại.


Cửa sổ ngữ cảnh có giới hạn về dung lượng cứng. Do đó, khi bạn gần như lấp đầy cửa sổ, bạn phải tóm tắt tác vụ bạn đang thực hiện thành một miêu tả ngắn gọn, sau đó đưa miêu tả đó vào một cửa sổ ngữ cảnh mới để tiếp tục công việc.


Chúng ta gọi quá trình này là nén ngữ cảnh (Compaction) (Chú thích: Để giải phóng không gian bộ nhớ, quá trình rút ngắn lịch sử quá dài thành tóm tắt súc tích). Tất nhiên, bạn cũng có thể bật quá trình nén này bất kỳ lúc nào.



Hãy tưởng tượng, bạn vừa yêu cầu Claude giúp bạn thực hiện một công việc và nó đã hoàn thành. Bây giờ, trong ngữ cảnh của bạn đã chứa một số thông tin (như cuộc gọi công cụ, kết quả đầu ra của công cụ, hướng dẫn bạn đã đưa).


Tiếp theo, bạn sẽ làm gì? Bạn có thể bất ngờ khi nhận ra mình có nhiều lựa chọn:


· Tiếp tục (Continue)— Trong cùng một phiên, gửi tin nhắn tiếp theo trực tiếp


· Quay lại (Rewind hoặc nhấn Esc hai lần)— Quay ngược thời gian, quay lại tin nhắn trước đó để bắt đầu lại từ đó


· Xóa sạch (Clear)— Bắt đầu một phiên mới hoàn toàn, thường bao gồm một tóm tắt ngắn gọn mà bạn rút ra từ cuộc trò chuyện trước đó


· Tóm tắt (Compact)— Tóm tắt cuộc trò chuyện hiện tại và tiếp tục công việc dựa trên tóm tắt đó


· Tiểu hệ thống trợ lý (Subagents)— Ủy thác công việc ở giai đoạn tiếp theo cho một hệ thống trợ lý AI khác có ngữ cảnh sạch của riêng nó, và chỉ nhận kết quả công việc cuối cùng từ nó


Mặc dù việc «Tiếp tục» trực tiếp là phản ứng tự nhiên nhất, nhưng việc thiết lập bốn tùy chọn còn lại như vậy nhằm giúp bạn quản lý ngữ cảnh của mình tốt hơn.



Khi nào nên bắt đầu một phiên mới?


Khi nào bạn nên duy trì một cuộc trò chuyện cũ dài, và khi nào bạn nên bắt đầu từ đầu? Nguyên tắc kinh nghiệm của chúng tôi là: Khi bạn bắt đầu một nhiệm vụ mới, bạn cũng nên bắt đầu một phiên mới.


Kích thước cửa sổ ngữ cảnh 1 triệu, điều đó có nghĩa là hiện tại bạn có thể hoàn thành các nhiệm vụ dài hơn, phức tạp hơn một cách rất đáng tin cậy. Ví dụ, mời Claude xây dựng một ứng dụng full-stack từ đầu.


Nhưng đôi khi, bạn có thể đang thực hiện các nhiệm vụ liên quan đến nhau. Trong trường hợp này, bạn cần giữ lại một phần ngữ cảnh trước đó, nhưng không phải toàn bộ. Ví dụ, bạn vừa viết xong một tính năng mới, bây giờ bạn cần viết một tài liệu sử dụng cho nó. Tất nhiên bạn có thể bắt đầu một phiên mới, nhưng điều này đồng nghĩa Claude phải đọc lại toàn bộ tệp mã mà bạn vừa viết—điều này không chỉ chậm hơn mà còn tốn kém.


Sử dụng «Quay lại» thay vì «Sửa»



Nếu phải chọn một thói quen có thể đại diện cho «Khả năng quản lý ngữ cảnh tốt», đó nhất định là sử dụng «Quay lại (Rewind)» một cách hiệu quả.


Trong Claude Code, double-click vào phím Esc (hoặc chạy lệnh /rewind) sẽ cho phép bạn quay lại bất kỳ tin nhắn nào trước đó, sau đó phát lại từ đó. Mọi cuộc trò chuyện xảy ra sau điểm đó sẽ bị loại bỏ hoàn toàn khỏi ngữ cảnh.


Trong việc sửa lỗi của trí tuệ nhân tạo, "quay lại" thường là một cách thông minh hơn. Ví dụ: Claude đọc năm tệp, thử một phương pháp và thất bại. Phản ứng tự nhiên của bạn có thể là viết trong hộp thoại: "Phương pháp này không hiệu quả, thử phương pháp X." Nhưng cách thông minh hơn là quay lại thời điểm ngay sau khi đọc xong năm tệp đó, sau đó mang bài học mới học được để nói lại với nó: "Đừng dùng phương pháp A nữa, module foo hoàn toàn không hỗ trợ cái đó—hãy thử phương pháp B ngay."


Bạn thậm chí có thể sử dụng tính năng "tóm tắt từ đây" để Claude tự mình tóm tắt bài học mà nó học được thành một đoạn "thông tin chuyển giao". Cảm giác này như là phiên bản "tương lai của Claude" vừa rơi vào cái hố, để lại một tờ ghi chú cho bản thân quá khứ chưa bắt đầu hành động.



Nén Ngữ Cảnh so Với Phiên Trò Chuyện Mới


Khi một cuộc trò chuyện trở nên ngày càng dài, bạn có hai cách để "giảm gánh nặng" cho nó: sử dụng /compact (nén) hoặc /clear (xóa và bắt đầu lại từ đầu). Hai hoạt động này có vẻ giống nhau, nhưng thực tế cho thấy khác biệt lớn.


Nén (Compact) là khi mô hình tóm tắt cuộc trò chuyện cho đến nay, sau đó dùng bản tóm tắt đó thay thế cho lịch sử dài dòng. Quá trình này là "mất mát", có nghĩa là bạn chuyển quyền quyết định "nội dung nào quan trọng" cho Claude.


Lợi ích là bạn không cần phải viết gì cả, và Claude có thể cân nhắc kỹ hơn bạn khi giữ lại những bài học quan trọng hay bản ghi tệp có ý nghĩa. Bạn cũng có thể kiểm soát hướng đi của quá trình nén bằng cách ra lệnh cho nó (ví dụ: /compact để tập trung vào việc tái cấu trúc module xác thực, loại bỏ những nội dung về kiểm thử gỡ lỗi).



Khi sử dụng /clear, bạn sẽ cần tự viết ra những điểm chính (ví dụ: "Chúng tôi đang tái cấu trúc middleware xác thực, điều kiện hạn chế hiện tại là X, tệp quan trọng liên quan là A và B, và chúng tôi đã loại bỏ phương pháp Y"), sau đó bắt đầu lại từ một trạng thái rất sạch sẽ. Mặc dù điều này mất một chút công sức, nhưng ngữ cảnh mới phát sinh từ đó, 100% là bản chất mà bạn cho là thực sự liên quan.


Loại "Nén" Nào Sẽ Gặp Sự Cố?



Nếu bạn thường xuyên tham gia vào các phiên kéo dài, bạn có khả năng đã gặp phải tình huống "nén" với hiệu suất cực kỳ tệ. Chúng tôi nhận thấy rằng, sự cố "đâm xe" này thường xảy ra vào một thời điểm cụ thể: đó là khi Mô hình Ngôn ngữ Lớn (LLM) không thể dự đoán hướng làm việc tiếp theo của bạn.


Ví dụ, sau một đợt gỡ lỗi mã dài, hệ thống đã kích hoạt tự động nén, tóm tắt lại quá trình lần trước. Kết quả, bạn ngay lập tức nói: "Bây giờ hãy sửa cảnh báo khác mà chúng ta đã thấy trong bar.ts trước đó."


Tuy nhiên, vì tâm điểm của cuộc trò chuyện chỉ tập trung vào việc gỡ lỗi Lỗi trước đó, cảnh báo chưa kịp sửa chắc chắn đã bị coi là thông tin không quan trọng và bị loại bỏ trực tiếp trong việc tóm tắt.


Đây là một vấn đề khá khó khăn. Bởi vì với sự suy giảm ngữ cảnh, mô hình thường "không thông minh" nhất vào thời điểm nén, nhưng may mắn có 1 triệu dung lượng ngữ cảnh, bây giờ bạn có không gian rộng lớn hơn, có thể mô tả một cách tích cực "tôi dự định làm gì tiếp theo" và thực hiện /compact sớm hơn.


Thực Thể Phụ và Cửa Sổ Ngữ Cảnh Mới Hoàn Toàn



Thực thể Phụ cũng là một biện pháp tuyệt vời để quản lý ngữ cảnh. Khi bạn đã biết trước công việc nào sẽ tạo ra một loạt kết quả trung gian "đọc xong là tiêu" (sẽ không cần dùng đến nữa), chiêu này rất hữu ích.


Khi Claude tạo ra một thực thể Phụ thông qua công cụ Thực thể (Agent tool), "đứa con" này sẽ nhận được một cửa sổ ngữ cảnh hoàn toàn mới. Nó có thể tự do làm việc bên trong, làm bất kỳ công việc nào cần thiết. Khi hoàn thành công việc, nó sẽ rút trích kết quả, chỉ trả lại báo cáo cuối cùng cho "cha mẹ" Claude.


Chúng tôi quyết định xem xét xem có nên sử dụng thực thể Phụ dựa trên "lời thú tội": liệu sau này tôi có cần xem lại đầu ra chi tiết của các công cụ này không, hay tôi chỉ muốn một kết luận cuối cùng?


Mặc dù Claude Code sẽ tự động gọi một siêu trí thông minh phụ phía sau, nhưng đôi khi bạn cũng có thể chỉ đạo nó một cách rõ ràng. Ví dụ, bạn có thể nói với nó:


· "Gửi một siêu trí thông minh đi, dựa trên tài liệu đặc tả dưới đây, để xác minh xem công việc chúng ta vừa làm có đúng không"


· "Gửi một siêu trí thông minh đi đọc kỹ một cơ sở dữ liệu mã nguồn khác, tóm tắt cách họ thực hiện quy trình xác thực danh tính, sau đó bạn tự mình làm theo bằng cách thực hiện lại ở đây"


· "Gửi một siêu trí thông minh đi, dựa trên bản ghi sửa đổi Git của tôi, viết hướng dẫn cho tính năng mới này"


Tóm lại, khi Claude hoàn tất một vòng trả lời và bạn sẵn sàng gửi một tin nhắn mới, bạn đang đứng ở một ngã đường quyết định.


Chúng tôi hy vọng trong tương lai, Claude sẽ đủ thông minh để tự quản lý tất cả điều này cho bạn. Nhưng vào lúc hiện tại, việc thành thạo trong những quyết định này chính là bước cần thiết để bạn dẫn dắt Claude tạo ra kết quả chất lượng cao.



Liên kết nguồn


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi