Revision history for

agent-memory-dont-feed-everything-dont-starve-context

Every commit that touched posts/agent-memory-dont-feed-everything-dont-starve-context.vi.mdx in the content repo.

Diff

Comparing8491ebd · Create agent-memory-dont-feed-everything…96d09ea · docs(content): explain technical terms
+88
12 unchanged lines
 
Mấy tháng gần đây mình dùng agent coding khá nhiều. Claude Code, Cursor, Copilot, rồi cả mấy workflow tự build quanh đó. Càng dùng nhiều mình càng thấy một chuyện lặp đi lặp lại.
 
**Context** quyết định rất lớn tới chất lượng output.
+ <TermNote explanation="Context là toàn bộ thông tin agent đang nhìn thấy khi xử lý task, gồm lời dặn, lịch sử trò chuyện, file và đầu ra từ công cụ.">**Context**</TermNote> quyết định rất lớn tới chất lượng output.
 
Nghe thì hiển nhiên. Nhưng khi bắt tay vào dùng thật, nó lại thành một bài toán khá khó chịu: đừng feed mọi thứ cho agent, nhưng cũng đừng quá tiết kiệm context.
 
1 unchanged line
 
## Context là nhiên liệu, nhưng không phải cứ đổ đầy là chạy ngon
 
Khi làm với agent, mình hay có cảm giác rất muốn "cho nó biết hết". Cho nó đọc cả repo. Cho nó đọc toàn bộ docs. Cho nó history từ đầu tới cuối. Cho nó tất cả quyết định kỹ thuật đã từng có.
+ Khi làm với agent, mình hay có cảm giác rất muốn "cho nó biết hết". Cho nó đọc cả <TermNote id="repository">repo</TermNote>. Cho nó đọc toàn bộ docs. Cho nó history từ đầu tới cuối. Cho nó tất cả quyết định kỹ thuật đã từng có.
 
Ý tưởng nghe hợp lý mà. Agent càng biết nhiều thì càng làm đúng hơn, đúng không?
 
3 unchanged lines
 
Nó nhớ vài chi tiết phụ. Nó quote lại mấy câu mình không cần. Nhưng tới chỗ cần bám sát convention chính thì lại làm lệch.
 
Lúc đó mình mới nhận ra: **memory** không phải là "nhồi càng nhiều càng tốt". Memory tốt là giúp agent giữ focus.
+ Lúc đó mình mới nhận ra: <TermNote id="memory">**memory**</TermNote> không phải là "nhồi càng nhiều càng tốt". Memory tốt là giúp agent giữ focus.
 
<Quote color="blue">
Context không chỉ là thông tin. Context còn là sự ưu tiên.
8 unchanged lines
alt="Feed quá nhiều context cho agent - minh hoạ việc nhồi nhét thông tin quá tải"
/>
 
Lý do đầu tiên khá dễ thấy: **context window** có giới hạn.
+ Lý do đầu tiên khá dễ thấy: <TermNote id="context-window">**context window**</TermNote> có giới hạn.
 
Dù model ngày càng hỗ trợ context dài hơn, nó vẫn không phải cái kho vô hạn. Mỗi token đưa vào đều chiếm chỗ. Mỗi đoạn text thừa đều làm agent phải "nhìn" qua nhiều thứ hơn trước khi trả lời.
+ Dù model ngày càng hỗ trợ context dài hơn, nó vẫn không phải cái kho vô hạn. Mỗi <TermNote id="token">token</TermNote> đưa vào đều chiếm chỗ. Mỗi đoạn text thừa đều làm agent phải "nhìn" qua nhiều thứ hơn trước khi trả lời.
 
Và context dài không đồng nghĩa với hiểu sâu hơn.
 
28 unchanged lines
 
Ở chiều ngược lại, mình cũng từng mắc lỗi vì quá tiết kiệm context.
 
Prompt kiểu: "thêm tính năng X vào repo này". Agent tự search một chút, đọc vài file, rồi implement. Nhìn qua có vẻ ổn. Nhưng khi review kỹ thì style lệch, naming không khớp, test thiếu, hoặc nó tạo abstraction mới trong khi project đã có sẵn pattern.
+ Prompt kiểu: "thêm tính năng X vào repo này". Agent tự search một chút, đọc vài file, rồi implement. Nhìn qua có vẻ ổn. Nhưng khi review kỹ thì style lệch, naming không khớp, test thiếu, hoặc nó tạo <TermNote id="abstraction">abstraction</TermNote> mới trong khi project đã có sẵn pattern.
 
Vấn đề không phải agent lười. Vấn đề là mình không cho nó đủ tín hiệu.
 
7 unchanged lines
 
Là một người hay quên như mình, chuyện này xảy ra khá thường. Nhiều khi chính mình còn không nhớ decision cũ nằm ở đâu, huống chi agent.
 
Vậy nên tiết kiệm context quá cũng không phải hay. Nó chỉ đẩy phần thiếu hụt sang hallucination.
+ Vậy nên tiết kiệm context quá cũng không phải hay. Nó chỉ đẩy phần thiếu hụt sang <TermNote id="hallucination">hallucination</TermNote>.
 
## Sweet spot nằm ở "đúng thứ, đúng lúc, đúng lượng"
 
44 unchanged lines
 
Layer thứ tư là **conversation history**.
 
Phần này thường tự động. Mình nói gì trước đó, agent đã thử gì, lỗi nào vừa xảy ra. Nhưng conversation dài quá thì sẽ bị compact hoặc mất chi tiết. Đừng coi nó là nguồn sự thật duy nhất.
+ Phần này thường tự động. Mình nói gì trước đó, agent đã thử gì, lỗi nào vừa xảy ra. Nhưng conversation dài quá thì sẽ bị <TermNote id="compaction">compact</TermNote> hoặc mất chi tiết. Đừng coi nó là nguồn sự thật duy nhất.
 
Layer cuối là **persistent memory**.
 
131 unchanged lines

Revisions

2 revisions — click any two to compare
FromTo
  1. docs(content): explain technical terms

  2. Create agent-memory-dont-feed-everything-dont-starve-context.vi.mdx