Back to blog

Context Là Tất Cả Trong AI Coding Assistant

aisoftware-engineeringproductivityvibe-codingopinion
Context Là Tất Cả Trong AI Coding Assistant

Bạn đang trong một session sâu với Claude hay Copilot. Mọi thứ đang chạy tốt. Rồi có gì đó thay đổi — AI bắt đầu mâu thuẫn với những gì nó nói trước đó, quên mất cấu trúc file bạn đã thảo luận, hoặc gợi ý code xung đột với các quyết định được đưa ra hai mươi prompt trước.

Bạn không thay đổi gì cả. AI thay đổi.

Chuyện gì xảy ra? Bạn đã chạm đến giới hạn của context — và nếu bạn không hiểu context hoạt động như thế nào, bạn sẽ tiếp tục đổ lỗi cho AI về những vấn đề thực ra là của bạn để quản lý.

"Context" Thực Sự Có Nghĩa Là Gì

Trong AI coding assistant, context là tất cả những gì model có thể "nhìn thấy" tại thời điểm nó generate một response. Không phải mọi thứ bạn từng nói — chỉ những gì đang được load vào working memory của nó.

Working memory đó có giới hạn cứng, gọi là context window, được đo bằng token (khoảng 1 token ≈ ¾ một từ tiếng Anh). Các model hiện đại có window lớn — Claude 3.5 có 200k token, GPT-4o có 128k — nhưng chúng vẫn đầy, đặc biệt trong các coding session dài.

Những gì được tính là context:

  • Các prompt trong cuộc trò chuyện hiện tại (lượt user + assistant)
  • Bất kỳ file hay code nào bạn đã paste hoặc đính kèm
  • System prompt mà tool tự động inject (IDE context, project rules, v.v.)
  • Tool output — đọc file, kết quả search, terminal output
  • Các response trước đó của chính AI

Khi window đầy, phải có thứ gì đó bị loại bỏ. Hầu hết tool âm thầm xóa các prompt cũ nhất. AI không biết nó đã quên gì — nó chỉ tiếp tục làm việc với những gì còn lại. Đó là lúc nó bị "nhầm lẫn."


Context Window Không Phải Là Memory

Đây là điều quan trọng nhất cần thấm nhuần: context window không phải là persistent memory. Nó là một sliding window trên cuộc trò chuyện của bạn, không phải một database.

Hãy nghĩ về nó như một tấm bảng trắng:

  • Tất cả những gì hiện đang trên bảng đều visible với AI
  • Khi bảng đầy, bạn xóa những thứ cũ nhất để nhường chỗ
  • AI không có ký ức về những gì bị xóa — nó chưa từng tồn tại từ góc độ của AI

Điều này về cơ bản khác với cách bạn làm việc. Bạn tích lũy hiểu biết theo thời gian. Bạn nhớ một quyết định được đưa ra hai giờ trước và áp dụng nó vào code bạn đang viết bây giờ. AI chỉ có thể áp dụng những gì đang trên bảng ngay lúc này.


Những Gì Ngốn Context Budget Của Bạn

Không phải tất cả content đều bình đẳng. Một số thứ tiêu thụ context rất nhanh:

Paste file lớn — Dump một file 500 dòng vào chat tiêu tốn budget tương đương khoảng 375 prompt. Hầu hết nội dung đó có lẽ không liên quan đến câu hỏi hiện tại.

AI response dài — Các giải thích dài dòng của chính AI cũng tính vào window. Một response 1.000 token mà lẽ ra có thể là 200 token là lãng phí context ở cả phần generate lẫn phần lưu trữ sau đó.

Content lặp lại — Paste cùng một file nhiều lần trong một session. AI không deduplicate — mỗi lần paste đều chiếm space.

Tool call output — Khi AI agent đọc file, chạy search, hoặc thực thi command, những kết quả đó được lưu trong context. Một lần đọc file lớn có thể tiêu tốn đáng kể budget.

Vòng lặp lỗi — Copy cùng một error message và stack trace năm lần trong khi debug. Cả năm bản đều nằm trong window cùng một lúc.


Context Ảnh Hưởng Đến Chất Lượng Code Như Thế Nào

Khi context đầy và các prompt đầu bị xóa, các vấn đề cụ thể xuất hiện:

Architectural Amnesia

Bạn giải thích cấu trúc project ở đầu session. Bốn mươi prompt sau, giải thích đó đã biến mất. AI bây giờ gợi ý code mâu thuẫn với cấu trúc folder, naming convention, hoặc module boundary của bạn — không phải vì nó tệ, mà vì nó không thể thấy thỏa thuận bạn đã đưa ra trước đó.

Decision Reversal

Bạn đã quyết định approach A, tranh luận về nó trong mười prompt, và tiến về phía trước. Mười prompt đó bị xóa. AI, chỉ thấy các prompt gần đây, gợi ý approach B — cái mà bạn đã từ chối rồi.

Tên Không Nhất Quán

Tên biến, function signature, hoặc API contract bạn thiết lập ở đầu session bị thay thế bằng thứ gì đó hơi khác. Mỗi gợi ý mới có vẻ hợp lý về mặt cục bộ nhưng drift khỏi design ban đầu.

Hallucinate Function

AI tham chiếu đến một helper function bạn đã định nghĩa cùng nhau ở đầu chat — nhưng phần đó của cuộc trò chuyện hiện đã nằm ngoài window. Nó generate một lời gọi đến function mà nó không còn thấy nữa, và bịa ra các argument nghe có vẻ hợp lý nhưng sai.


Quản Lý Context Một Cách Chủ Động

Một khi bạn hiểu context là một tài nguyên hữu hạn, bạn bắt đầu treat nó như vậy.

Giữ Session Tập Trung

Một session, một vấn đề. Session càng dài, áp lực context càng tích lũy. Khi bạn hoàn thành một task riêng biệt, hãy bắt đầu một cuộc trò chuyện mới. Đừng dùng cùng một chat window cho công việc không liên quan chỉ vì tiện.

Front-Load Những Gì Quan Trọng

Đặt thông tin quan trọng nhất ở đầu và giữ nó súc tích. Quyết định kiến trúc, naming convention, ràng buộc project — nêu rõ chúng ở đầu, không phải chôn vùi trong prompt thứ 30.

Nếu bạn đang dùng tool như Claude Code hay Cursor, đây là mục đích của file CLAUDE.md / .cursorrules / system prompt: chúng inject context quan trọng vào đầu mỗi session một cách tự động.

Paste File Có Chọn Lọc

Đừng paste toàn bộ file khi bạn chỉ cần 20 dòng. Trích xuất function liên quan, class cụ thể, interface chính xác. Paste tối thiểu để câu hỏi có thể được trả lời.

Trước khi hỏi về một bug trong một module 400 dòng, hãy tự hỏi: 30 dòng nào thực sự chứa vấn đề?

Tóm Tắt và Reset

Khi một session trở nên dài, hãy thủ công tóm tắt các quyết định và ràng buộc quan trọng trong một prompt mới, rồi bắt đầu một chat mới với bản tóm tắt đó làm prompt mở đầu. Bạn đang quản lý context window thủ công — nhưng có chủ đích.

"Trước khi chúng ta tiếp tục: đây là những gì chúng ta đã thiết lập.
- Auth dùng JWT, không có session
- Database layer dùng repository pattern, không có raw query trong handler
- Tất cả error response dùng format {error: string, code: number}
Bây giờ hãy làm việc với payment module."

Cái này mệt. Hãy cứ làm. Cách khác là AI mất đường và cần năm vòng correction để quay lại track.

Dùng Structured Context File

Các tool hiện đại hỗ trợ inject file tự động như context. Hãy dùng chúng:

  • CLAUDE.md / AGENTS.md — project rule, quyết định kiến trúc, convention
  • .cursorrules — Cursor-specific project context
  • .github/copilot-instructions.md — Copilot workspace instruction

Hãy nghĩ về những file này như persistent memory cho những thứ không nên bị quên giữa session. AI đọc chúng mới mẻ ở đầu mỗi cuộc trò chuyện, vì vậy chúng không bao giờ bị xóa.


Chất Lượng Context Quan Trọng Không Kém Số Lượng

Điền đúng thông tin vào context cũng quan trọng như việc bảo tồn nó.

Context tệ: "Fix bug này" + dump file 600 dòng

Context tốt: "Function processPayment ở dòng 47 trả về undefined khi amount bằng 0 thay vì throw một validation error. Đây là function và test đang fail:"

Phiên bản thứ hai cho AI chính xác những gì nó cần. Nó không lãng phí context budget cho code không liên quan, và sự chính xác của mô tả thu hẹp không gian solution đáng kể.

Chất lượng > số lượng. Một context window chặt chẽ, well-scoped tạo ra kết quả tốt hơn một cái đầy ắp tiếng ồn.


Context Trong Agentic Workflow

Khi AI agent chạy autonomous — đọc file, viết code, chạy command — việc quản lý context trở thành critical infrastructure, không chỉ là UX concern.

Mỗi tool call tiêu thụ context. Một agent đọc 10 file lớn trước khi viết bất cứ thứ gì đã tiêu tốn đáng kể budget vào input. Nếu task cần nhiều iteration, agent có thể mất dấu các quyết định đầu của chính mình.

Đây là lý do spec-driven prompting quan trọng với agent: một spec chính xác, gọn gàng ở đầu context bền vững hơn một cuộc trò chuyện exploratory dài. Nó vẫn còn liên quan ngay cả khi window đầy, vì nó được viết để survive compression.

Các agent prompt tốt nhất được viết với hiểu biết rằng 80% cuộc trò chuyện tiếp theo cuối cùng sẽ bị xóa. Những phần quan trọng cần phải nằm trong spec, không chôn vùi trong một prompt sẽ biến mất.


Tóm Tắt và Bài Học Chính

✅ Context window là working memory của AI — một sliding window hữu hạn, không phải persistent storage
✅ Khi window đầy, các prompt cũ nhất bị xóa âm thầm — AI không biết nó đã quên gì
✅ Context killer: paste file lớn, response dài dòng, content lặp lại, tool output, vòng lặp lỗi
✅ Triệu chứng của context loss: architectural amnesia, decision reversal, tên không nhất quán, hallucinate function
✅ Fix bằng cách: giữ session tập trung, front-load constraint, paste có chọn lọc, tóm tắt và reset
✅ Dùng persistent context file (CLAUDE.md, .cursorrules) cho những thứ không được quên
✅ Với agent: viết spec survive compression — quyết định quan trọng thuộc về spec, không phải chat


Suy Nghĩ Cuối

Context không phải là chi tiết kỹ thuật — đó là tài nguyên cơ bản bạn đang quản lý mỗi khi dùng AI coding assistant. Những developer tận dụng tốt nhất các tool này không phải là người có prompt hay nhất. Họ là người hiểu AI có thể thấy gì, giữ nó sạch, và biết khi nào nên reset.

AI không bị nhầm lẫn. Nó đang hoạt động hoàn hảo với bất cứ thứ gì bạn đưa cho nó.

Hãy cho nó material tốt hơn.

📬 Đăng ký nhận bản tin

Nhận những bài viết mới nhất qua email mỗi tuần. Không spam, hủy đăng ký bất cứ lúc nào.

Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất cứ lúc nào.

💬 Comments

Đăng nhập để bình luận

Chúng tôi sẽ không đăng bất cứ điều gì mà không có sự cho phép của bạn.