2026-03-146 phút đọcVI
Giữ context qua session — memory persistence
English title: Keep Context Across Sessions — Memory Persistence
Bài 8 trong chuỗi 20 bài về Claude Code. Session có thể kéo dài nhiều giờ hoặc nhiều ngày. Nếu đóng mà không lưu gì, lần mở lại bạn mất mục tiêu, quyết định đã chốt, danh sách file quan trọng. Memory persistence = lưu state khi kết thúc session và load lại khi bắt đầu session mới. Bài này giải thích tại sao cần, SessionStart/SessionEnd, và best practices.
Mở đầu: Mở lại session ngày mai — context vẫn còn
Bạn làm dở feature "user login" — đã plan, đang implement bước 2/5. Cuối ngày đóng Claude. Sáng hôm sau mở lại: không có persistence thì phải nhắc lại "đang làm login, đã xong bước 1 và 2". Với save state khi kết thúc và load state khi bắt đầu, hệ thống ghi: goal, bước đã làm, file đang sửa. Agent "nhìn" lại được ngữ cảnh, bạn tiếp tục nhanh hơn.
1. Đi sâu: Tại sao context qua session quan trọng
Tại sao quan trọng: Task nhiều ngày không thể xong một session. Mỗi lần mở "trắng" thì tốn thời gian nhắc lại và dễ sót quyết định. Persist giúp continuity: goal, decisions, file list, TODO.
Hiểu sai: "Lưu full transcript." Transcript rất dài. Chỉ cần summary state: goal, decisions, vài file quan trọng, next steps.
Bản chất: Persistence = (1) SessionEnd: khi session kết thúc, hook export state ra file (JSON hoặc markdown). (2) SessionStart: khi session mới, đọc file state và inject vào context. State gọn: vài field, không full transcript.
2. Khái niệm
- Session: Một phiên làm việc — từ mở đến đóng. Context (messages, tool calls) mặc định mất khi đóng trừ khi persist.
- SessionStart / SessionEnd: Event khi session bắt đầu và kết thúc. SessionEnd = ghi state. SessionStart = load state.
- State file: File lưu state trong workspace hoặc config. Nội dung: goal, decisions, list file, TODO.
- Logical breakpoint: Điểm dừng hợp lý để save (sau task, sau verify). Tránh save giữa lúc đang sửa dở nhiều file.
3. Ví dụ state (pseudo)
# Session state
## Goal
Implement user login. Current: step 2/5 — API routes.
## Decisions
JWT in httpOnly cookie; session table: user_id, refresh_token.
## Key files
api/auth/login.ts, lib/auth.ts, schema/users.ts
## Next steps
Finish login route; add refresh endpoint; middleware.SessionStart đọc file này và inject (hoặc hiển thị) để agent biết đang làm gì. Vài trăm từ đủ, không cần full transcript.
4. Workflow: SessionEnd → save; SessionStart → load
- SessionEnd: Hook thu thập goal, decisions, file list gần đây, next steps. Ghi state file.
- SessionStart: Đọc state file (nếu có), inject hoặc hiển thị. User/agent tiếp tục theo next steps.
- Manual save (optional): Command "save state" trước khi đóng.
Best practice: Một state file per workspace. Tránh compact giữa implementation (bài 10).
5. Ứng dụng trong AI-centric engineering
Task nhiều ngày: mỗi ngày save state, sáng load lại. Handoff: đồng đội đọc state file để biết context. Bài 9 nói token và chi phí — model, thinking tokens, auto-compact.
Bài tiếp: Token và chi phí — chọn model, thinking tokens (bài 9).