TROISINH
Harness EngineeringState & Session Management

State Management: State sống sót qua context window

Làm sao để AI agent không quên tiến độ khi đóng laptop? Kỹ thuật cross-session state management cho dự án phức tạp.

Định nghĩa

State Management trong AI Engineering là nghệ thuật thiết kế hệ thống lưu trữ và khôi phục thông tin chiến lược giữa các phiên làm việc (session) độc lập, đảm bảo AI agent có thể tiếp tục công việc từ chính xác điểm đã dừng lại ngay cả khi context window bị reset hoàn toàn.

Giải thích chi tiết

Vấn đề cốt lõi: Context window không phải bộ nhớ

Hầu hết người dùng AI hiện nay mắc sai lầm fundamental: nhầm lẫn context window với bộ nhớ lâu dài. Context window giống như RAM — khi bạn đóng tab chat hoặc khởi động lại session mới, RAM bị xóa sạch. Điều này là vấn đề nghiêm trọng với dự án thực tế: codebase 50.000 dòng, spec dự án 3 tháng, hoặc conversation research dài 20 trang — không gì chui vừa vào context window đơn lẻ.

Giải pháp không phải "chọn model có context window lớn hơn". Bottleneck nằm ở thiết kế hệ thống state persistence — lưu trữ tóm tắt chiến lược (strategic summary) ra ngoài và inject lại vào session mới.

Chiến lược nén thông tin

Khi dự án quá lớn, bạn không thể copy-paste toàn bộ codebase vào prompt. Claude Code giải quyết bài toán này bằng 5 cấp độ nén thông tin:

  1. Raw context: Toàn bộ file gốc
  2. MicroCompact: Tóm tắt hàm và interface
  3. Compact: Chỉ giữ signature và dependency graph
  4. Truncation: Xóa bỏ phần không liên quan đến task hiện tại
  5. Memory: Chỉ giữ lại entities và relationships quan trọng

Mỗi cấp độ là một "lossy compression" — đánh đổi độ chi tiết lấy khả năng fit vào context window. Key insight: Agent cần biết "có gì" và "ở đâu" hơn là "nội dung chi tiết".

Kiến trúc Memory 3 tầng

Thay vì lưu một file transcript dài vô tận, hệ thống Memory hiện đại tổ chức thành 3 tầng phân cấp:

  • Index Layer (MEMORY.md): Bản đồ high-level, danh sách topic, nguyên tắc architecture, style guide. Đây là layer luôn được inject vào mọi session mới.
  • Topic Layer: Files riêng cho từng domain (frontend, API, database). Chỉ load khi agent làm việc trong domain đó.
  • Session Layer: Transcripts của conversation cụ thể, dùng cho debugging nhưng không dùng cho context mới.

Cách tiếp cận này giải quyết vấn đề "thông tin nhiễu" — khi bạn mở session mới để fix bug API, agent không cần biết chi tiết conversation hôm qua về UI design.

Progress Tracking & Anti-overwrite

Vấn đề thứ hai của cross-session work: overwriting. Agent có thể "quên" rằng bạn đã quyết định dùng PostgreSQL thay vì MongoDB, và đề xuất lại giải pháp cũ.

Anthropic khuyến nghị pattern JSON Feature List — lưu trữ quyết định architecture vào file features.json hoặc decisions.json:

{
  "database": {
    "choice": "PostgreSQL", 
    "rationale": "ACID compliance cho financial data", 
    "date": "2024-01-15"
  },
  "auth": {
    "choice": "JWT", 
    "rationale": "Stateless scaling", 
    "date": "2024-01-16"
  }
}

Khi khởi động session mới, file này được inject như system prompt, đóng vai trò "bộ nhớ chỉ đọc" (read-only memory) chống lại sự thay đổi ngẫu hứng của agent.

Session Handoff Pattern

Đây là nghệ thuật truyền state giữa các session — không chỉ là lưu file, mà là thiết kế "checkpoint" để agent tiếp tục seamless.

Pattern tiêu chuẩn gồm 3 thành phần:

  1. Progress File (progress.txt): Ghi lại exactly những gì đã làm, đang làm dở (work-in-progress), và next step.
  2. Context Snapshot: Tóm tắt ngữ cảnh business logic, constraint, và lý do tại sao đang làm theo cách này.
  3. Resume Protocol: Một dòng prompt chuẩn để khởi động session mới: "Đọc progress.txtMEMORY.md, tiếp tục từ bước X".

Ví dụ thực tế

Claude Code với codebase 100.000 dòng

Khi làm việc với codebase lớn, Claude Code không load toàn bộ file. Thay vào đó, nó tạo CLAUDE.md — một file MicroCompact chứa danh sách module chính, key interfaces giữa các layer, và coding convention đặc thù dự án.

Mỗi session mới, CLAUDE.md được inject trước. Khi cần chi tiết cụ thể, Claude đọc file riêng lẻ (on-demand loading). Điều này cho phép làm việc với dự án vượt quá 200k context limit thông thường.

AI Product Manager quản lý dự án 3 tháng

Một PM dùng AI agent để viết spec sản phẩm. Thay vì chat liên tục trong 1 thread (dễ crash và mất), họ thiết kế:

  • product_memory.md: Chứa user personas, value proposition, tech constraints
  • sprint_log.json: Lưu từng sprint đã hoàn thành, feature đã ship, feedback đã thu thập
  • current_focus.txt: Ghi rõ "Đang làm: Payment flow integration. Blocker: Stripe API rate limit."

Khi mở session mới sau 2 ngày, agent đọc 3 file này và tiếp tục ngay lập tức, thay vì hỏi lại "Chúng ta đang làm gì nhỉ?"

Multi-agent Development với progress checkpoint

Team dùng 3 agent chuyên biệt: Architecture Agent, Implementation Agent, và Review Agent. Họ dùng pattern Session Handoff:

  • Architecture Agent hoàn thành thiết kế → lưu vào design_v1.json
  • Implementation Agent đọc design_v1.jsonprogress.txt để code
  • Khi giới hạn context đến gần, lưu checkpoint_001.md (tóm tắt đã code gì, còn gì chưa code) → đóng session
  • Mở session mới, load checkpoint_001.md + code mới nhất → tiếp tục

Ứng dụng

Cho AI Engineer xây dựng Coding Assistant

Nếu bạn đang build tool như GitHub Copilot hoặc Cursor, việc thiết kế state management là competitive advantage. User không muốn giải thích lại dự án mỗi lần mở IDE. Hệ thống của bạn cần tự động load project context từ file .ai/memory.md trong repo.

Cho Product Manager làm việc với AI

PM thường quản lý nhiều workstream song song. Dùng 3-layer memory cho phép "context switch" nhanh chóng giữa các dự án: mở file project_A_memory.md để làm việc với feature A, chuyển sang project_B_memory.md cho bug fix session khác.

Cho doanh nghiệp (Compliance & Audit)

Trong môi trường enterprise, cross-session state không chỉ là convenience mà là requirement. Bạn cần audit trail: biết exactly tại sao AI đưa ra quyết định X vào ngày Y. Progress tracking files trở thành log chính thức, có thể review bởi compliance team.

So sánh

Đặc điểmIn-Session MemoryCross-Session State
LifespanChỉ sống trong 1 conversationSống qua nhiều session, ngày, tuần
StorageContext window (RAM)External files, database (Disk)
CapacityGiới hạn bởi token limitGiới hạn bởi disk storage
RetrievalTự động, implicitPhải thiết kế protocol, explicit
Use caseChat ngắn, Q&A one-offDự án dài hạn, development workflow
ComplexityDùng ngay, không cần setupCần thiết kế architecture, file format

In-session memory giống như trí nhớ ngắn hạn của con người — tiện lợi nhưng dễ quên. Cross-session state là "ghi chép có hệ thống" — đòi hỏi công sức setup nhưng cho phép xử lý vấn đề phức tạp vượt quá khả năng của trí nhớ tức thời.

Bài viết liên quan

Cùng cụm (State & Session Management):

5 Chiến lược nén Context

Từ MicroCompact đến Truncation: Cách Claude Code xử lý codebase lớn vượt quá context limit

Memory 3 tầng

Kiến trúc Index → Topic files → Session transcripts cho state management có hệ thống

Progress Tracking Patterns

JSON feature list, checklist, và progress files chống overwrite trong multi-session

Session Handoff Patterns

Kỹ thuật truyền state liền mạch giữa các phiên làm việc độc lập

Đọc tiếp:

Memory & Conversation (Level 1)

Nền tảng về conversation memory — prerequisite cho cross-session state management

Multi-Agent Architecture

Khi một agent không đủ: thiết kế hệ thống nhiều agent chia sẻ state qua session handoff

Case Study: Claude Code & SWE-agent

Phân tích thực tế cách Anthropic thiết kế state management cho coding assistant

On this page