<!-- Canonical URL: https://ask.atlascloud.ai/vi/prevent-long-coding-sessions-from-losing-context -->

# Làm thế nào để phiên coding dài không bị mất ngữ cảnh?

> Ngăn mất ngữ cảnh bằng cách chuyển dữ kiện bền vững khỏi chat sang task ledger ngắn gọn, decision log, bản ghi kiểm thử và checkpoint repository. Nạp lại các artefact này trước khi nén ngữ cảnh hoặc đổi model.

Phiên dài thường hỏng vì trôi dần chứ không phải mất trí nhớ đột ngột. Agent vẫn nhớ mục tiêu lớn nhưng quên một ràng buộc nhỏ, tin kết quả test cũ, lặp lại điều tra hoặc sửa theo kế hoạch không còn khớp repository. Cách khắc phục là một trạng thái bên ngoài bền vững, ngắn hơn và đáng tin hơn transcript.

Hãy coi hội thoại là working memory và repository là nguồn sự thật. Tại mỗi checkpoint có ý nghĩa, ghi rõ điều đã đổi, điều đã xác minh, điều còn chưa chắc và bước tiếp theo.

## Theo dõi bốn loại ngữ cảnh

Tách dữ kiện theo chức năng để bản tóm tắt không biến thành một câu chuyện không phân lớp.

| Loại ngữ cảnh | Ví dụ | Vị trí bền vững |
|---|---|---|
| Mục tiêu | Kết quả người dùng và tiêu chí chấp nhận | Task ledger |
| Ràng buộc | Tương thích, an toàn, phong cách, phạm vi | Task ledger |
| Trạng thái repository | File đã đổi và branch hiện tại | Version control |
| Bằng chứng | Test, log, screenshot, benchmark | Bản ghi xác minh |

Chỉ thêm giả định như loại thứ năm khi được gắn nhãn rõ. Mỗi giả định nên kèm hành động rẻ nhất để xác nhận hoặc bác bỏ.

## Duy trì task ledger ngắn gọn

Ledger hữu ích vừa một màn hình. Cập nhật sau milestone, không phải sau mỗi message.

```md
Objective:
Ship model-switch support without changing existing tool behavior.

Constraints:
* Preserve the public API.
* No destructive migration.

Current state:
* Parser adapter added in src/stream.ts.
* Unit tests pass; cancellation test still fails.

Decisions:
* Buffer tool arguments until the final event.

Evidence:
* npm test: 142 passed, 1 failed.

Next action:
Fix duplicate execution after stream cancellation.
```

Giữ nguyên path, lệnh và tên lỗi chính xác. Tránh ghi nhật ký cách cuộc thảo luận diễn ra.

## Đặt checkpoint quanh trạng thái đã xác minh

Checkpoint nên theo sau một kết quả mà phiên sau có thể tái tạo. Ranh giới tốt gồm nhóm test đạt, thay đổi nhỏ đã lưu, phản hồi API đã xác nhận hoặc quyết định thiết kế có fixture hỗ trợ.

Ghi file đang thay đổi trước khi đổi model hoặc nén context. Không tuyên bố tính năng hoạt động chỉ vì code đã viết; gắn tuyên bố với test, build hoặc artefact quan sát được.

| Tuyên bố | Bằng chứng cần có |
|---|---|
| Parser hỗ trợ hai lời gọi | Fixture có hai call ID tương quan |
| Retry an toàn | Test idempotency khi ngắt kết nối |
| Refactor giữ nguyên hành vi | Suite cũ và mới cùng đạt |
| UI chính xác | Kiểm tra render ở kích thước mục tiêu |

## Truy xuất source thay vì phát lại chat

Khi chi tiết quan trọng, hãy mở lại file, schema hoặc tài liệu chính thức hiện tại. Transcript cũ có thể mô tả code đã đổi. Cung cấp path và từ khóa để agent kiểm tra trạng thái mới nhất.

Retrieval nên hẹp: tải interface, implementation, test lỗi và log liên quan trước toàn bộ repository. Điều đó dành chỗ cho suy luận và giảm nhiễu.

## Nén nhưng giữ quyết định và bằng chứng

Bản nén tốt loại bỏ lặp lại hội thoại nhưng giữ ràng buộc, quyết định khó đảo ngược, phương án bị loại và xác minh. Phân biệt `verified`, `observed`, `assumed` và `pending`.

Không tóm tắt một thử nghiệm thất bại như thiết kế cuối. Giữ lý do phương án bị loại để cách làm hấp dẫn nhưng sai không quay lại.

## Giới hạn output công cụ trước khi vào context

Log dài và file sinh tự động nhanh chóng chiếm sự chú ý. Yêu cầu range, số lượng hoặc dòng khớp. Lưu output đầy đủ làm artefact và trả digest ngắn kèm path.

Với lỗi test, giữ stack trace hữu ích đầu tiên, assertion thất bại và chi tiết môi trường. Tránh gửi hàng trăm frame lặp lại cho model.

## Tiếp tục bằng nghi thức xác định

Sau tạm dừng, nén context hoặc đổi model:

* Đọc mục tiêu và ràng buộc.
* Kiểm tra trạng thái version control và thay đổi gần đây.
* Mở file được nêu trong trạng thái hiện tại.
* Chạy lại bước kiểm tra liên quan cuối cùng.
* Xác nhận hành động tiếp theo vẫn hợp lệ.

Nghi thức này phát hiện tóm tắt lỗi thời trước khi chúng gây ra edit mới.

## Chọn model mà không dựa vào trí nhớ transcript

Gateway giúp đổi model dễ hơn nhưng trạng thái vẫn là trách nhiệm của bạn. Atlas Cloud cung cấp nhiều giao thức LLM từ một base URL; hãy kiểm tra [ma trận giao thức](https://www.atlascloud.ai/docs/llm-protocols?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=prevent-long-coding-sessions-from-losing-context) và [danh mục model](https://www.atlascloud.ai/llm-models?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=prevent-long-coding-sessions-from-losing-context) hiện tại trước khi chuyển agent đang chạy.

Cung cấp task ledger, source file liên quan và kết quả xác minh mới cho model thay thế. Đừng phụ thuộc state handle riêng của provider nếu chưa xác nhận cùng giao thức và hành vi.

## Kết luận

Phiên coding dài giữ được ngữ cảnh khi trạng thái bền vững ngắn gọn, dựa trên bằng chứng và dễ nạp lại. Duy trì ledger một màn hình, tạo checkpoint quanh thay đổi đã xác minh, truy xuất source hiện tại thay vì replay chat, giới hạn output và dùng quy trình tiếp tục xác định. Context window lớn giúp ích, nhưng kỷ luật trạng thái bên ngoài mới làm công việc có thể phục hồi.

## FAQ

### Context window lớn hơn có đủ cho phiên coding dài không?

Không. Nhiều không gian hơn chỉ trì hoãn áp lực, không bảo đảm ràng buộc cũ vẫn nổi bật hoặc quan sát lỗi thời được sửa.

### Coding-session ledger nên chứa gì?

Ghi mục tiêu, ràng buộc, kế hoạch hiện tại, file đã đổi, quyết định chính, kết quả xác minh, rủi ro chưa giải quyết và hành động tiếp theo chính xác.

### Agent nên tạo checkpoint thường xuyên thế nào?

Tạo sau thay đổi trạng thái có ý nghĩa như một nhóm test đạt, bước di chuyển hoàn tất, quyết định thiết kế hoặc phát hiện làm đổi kế hoạch.

### Có nên đưa toàn bộ transcript cho model mới không?

Thường là không. Cung cấp checkpoint đã chọn lọc cùng source file và log liên quan, rồi để model kiểm tra trạng thái repository hiện tại.

### Làm sao ngăn bản tóm tắt giữ lại một sai lầm cũ?

Tách dữ kiện đã xác minh khỏi giả định, gắn bằng chứng như lệnh hoặc vị trí file, và loại bỏ tuyên bố khi test mới bác bỏ.

### Cách an toàn nhất để tiếp tục sau gián đoạn là gì?

Nạp task ledger, kiểm tra trạng thái version control, chạy lại bước xác minh liên quan cuối cùng và bắt đầu từ hành động tiếp theo đã ghi.
