TROISINH
Context EngineeringMemory & Conversation

Thiết kế kiến trúc Memory: Index, topic files, session transcripts

Vì sao AI có thể nhớ sở thích của bạn sau 3 tháng? Bí mật nằm ở thiết kế 3 tầng: Index, Topic Files và Session Transcripts. Không phải ma thuật, đây là kỹ th...

Định nghĩa

Memory Architecture là hệ thống tổ chức thông tin có chủ đích nhằm tạo ra ảo giác về "trí nhớ" của AI. Thay vì một bộ nhớ duy nhất, ta thiết kế ba tầng phân cấp — Index (chỉ mục tổng thể), Topic Files (hồ sơ theo chủ đề), và Session Transcripts (biên bản phiên làm việc) — để AI có thể ghi nhớ ngữ cảnh dài hạn mà không vượt quá giới hạn Context Window.

Giải thích chi tiết

Ba tầng của Memory Architecture

Nếu xem bộ nhớ AI như một thư viện, bạn không thể để tất cả sách chất đống ngay trước mặt độc giả. Bạn cần hệ thống kệ sách thông minh:

1. Index (Master Memory) Đây là "mục lục" toàn cục, file tổng hợp chứa metadata về tất cả chủ đề AI đã từng xử lý. Giống như Claude.md trong Claude Code, Index lưu trữ:

  • Danh sách các dự án/topic đã thảo luận
  • Tóm tắt sở thích và ràng buộc của người dùng
  • Cấu trúc folder và quy ước đặt tên file

Index không chứa chi tiết cụ thể, mà chỉ chứa "địa chỉ" để tìm chi tiết.

2. Topic Files (Domain-Specific Memory) Là các file riêng biệt cho từng lĩnh vực — ví dụ frontend-guidelines.md, customer-database-schema.md. Khi cuộc hội thoại chạm đến chủ đề X, hệ thống chỉ inject file liên quan vào context, thay vì dump cả 100 trang lịch sử.

Điểm mấu chốt: Topic Files được thiết kế như knowledge base có cấu trúc, không phải log chat thô.

3. Session Transcripts (Ephemeral Context) Là nội dung thực của cuộc hội thoại hiện tại — các tin nhắn gần nhất trong cửa sổ context. Khi session kết thúc, transcript này có thể được tóm tắt và "ghi lưu" vào Topic Files hoặc Index tùy mức độ quan trọng.

Tại sao phải phân tầng?

Bạn có thể hỏi: "Sao không dump hết vào prompt cho nhanh?" Vì hai lý do:

Precision-Recall Trade-off: Càng nhiều noise trong context, AI càng dễ "lạc đề" (hallucination do distraction). Phân tầng cho phép retrieval có chọn lọc — chỉ lấy thông tin liên quan đến query hiện tại.

Context Window Economy: Với giới hạn token (ví dụ 200k), bạn không thể lưu 10 năm lịch sử chat. Nhưng bạn có thể lưu Index (500 tokens) + 2 Topic Files (3000 tokens) + Session hiện tại (1000 tokens) = hiệu quả gấp 10 lần so với brute force.

Cơ chế Read/Write

Read Flow: Khi user hỏi về "API payment", hệ thống:

  1. Tra Index → tìm thấy tag payment-system trỏ đến file api-payment.md
  2. Load Topic File api-payment.md vào context
  3. Giữ 10 turn gần nhất của session hiện tại
  4. Compose prompt với 3 nguồn trên

Write Flow: Khi phát hiện thông tin mới (ví dụ user vừa sửa schema):

  1. Cập nhật trực tiếp vào Topic File liên quan (nếu là fact)
  2. Hoặc append vào session buffer (nếu là chit-chat)
  3. Khi session end, tóm tắt buffer và merge vào Index hoặc Topic File tùy loại

Ví dụ thực tế

Claude Code: Kiến trúc 3 tầng trong production

Anthropic thiết kế Claude Code với chính xác mô hình này:

  • Index: File CLAUDE.md ở root project, chứa overview tech stack, lệnh build, lint rules. Mỗi khi mở session, Claude đọc file này trước tiên.
  • Topic Files: Các file .claude.md rải rác trong subfolders (ví dụ backend/.claude.md chứa business logic, frontend/.claude.md chứa component patterns). Khi bạn cd vào folder, Claude tự động load file tương ứng.
  • Session: Lịch sử terminal hiện tại. Khi bạn gõ lệnh, Claude nhìn output terminal gần nhất để hiểu context thực thi.

Kết quả: Dù bạn làm việc với codebase 1 triệu dòng, Claude chỉ "nhìn thấy" đúng 2000 dòng liên quan tại mọi thời điểm.

Chatbot hỗ trợ khách hàng với trí nhớ dài hạn

Giả sử bạn xây dựng bot cho ngân hàng:

  • Index: customer-profile.json — lưu tên, segment (VIP/thường), sản phẩm đang dùng, lần cuối complain về vấn đề gì.
  • Topic Files: credit-card-policies.md, loan-process-2024.md — cập nhật khi chính sách thay đổi.
  • Session: 5 tin nhắn gần nhất của cuộc hội thoại hiện tại.

Khi khách hàng hỏi "Cái thẻ tôi complain tuần trước thế nào rồi?", bot:

  1. Tra Index → thấy last_complaint: "credit_card_fee", date: "2024-01-15"
  2. Load credit-card-policies.md để kiểm tra xem fee đã được refund chưa
  3. Trả lời dựa trên cả lịch sử cũ và chính sách mới nhất

Trợ lý cá nhân với Knowledge Base riêng

Bạn có thể áp dụng cho ChatGPT/Claude cá nhân:

  • Index: Một note gốc liệt kê các dự án đang làm, sở thích ăn uống, phong cách làm việc (brief/detail-oriented).
  • Topic Files: Mỗi dự án có 1 file riêng — ví dụ startup-pitch.md chứa các iteration của pitch deck, feedback đã nhận.
  • Session: Chat hiện tại.

Khi bạn quay lại sau 2 tháng và hỏi "Tiếp tục dự án startup đi", AI đọc Index → thấy bạn là người thích data-driven → load startup-pitch.md → tiếp tục đúng tinh thần lần trước, không cần bạn nhắc lại từ đầu.

Ứng dụng

Developer xây dựng Agent Thay vì lưu state trong một biến history dài vô tận, hãy triển khai Memory Manager với ba tầng:

  • Index dạng JSON nhẹ (load nhanh)
  • Topic Files dạng Markdown (dễ đọc, dễ version control)
  • Session buffer giới hạn 10 turns (giữ prompt lean)

Product Manager thiết kế trải nghiệm Không yêu cầu người dùng "nhắc lại từ đầu" mỗi lần mở app. Thiết kế toggle "Ghi nhớ cuộc trò chuyện" thực chất là cơ chế write-back từ Session sang Topic Files.

Người dùng nâng cao ChatGPT/Claude Áp dụng pattern này bằng cách tự tạo file "System Prompt" riêng (đóng vai Index) và duy trì các note chủ đề riêng biệt. Khi cần thảo luận sâu về chủ đề X, bạn chỉ việc paste cả file Topic vào đầu conversation.

So sánh

Đặc điểmFlat Chat History (Cách thông thường)Tiered Memory Architecture
Cấu trúcMột dòng thời gian dài, liên tụcBa tầng phân cấp: Index → Topic → Session
RetrievalLấy N tin nhắn gần nhất (có thể thiếu context cũ)Tra Index → chọn Topic phù hợp → merge với Session
Hiệu quả tokenLãng phí vì chứa nhiều noiseTối ưu: chỉ nạp thông tin liên quan
PersistenceLưu toàn bộ log (nặng, khó tìm kiếm)Lưu có cấu trúc, dễ update từng phần
Use case phù hợpChat ngắn, 1 lầnDự án dài hạn, phức tạp, cần continuity

Kết luận: Flat History giống như chụp ảnh toàn bộ cuốn sổ mỗi lần đọc. Tiered Architecture giống như hệ thống thư viện Dewey Decimal — tìm nhanh, lấy đúng trang cần đọc, cất sách gọn gàng sau khi xong.

Bài viết liên quan

Cùng cụm

Conversation Memory Patterns

Các pattern cơ bản để AI "nhớ" cuộc hội thoại: summary buffer, entity extraction, và cách triển khai trong code

Short-term vs Long-term Memory

Phân biệt rõ working memory (session) và consolidated memory (topic files), cơ chế chuyển đổi giữa hai loại

Multi-turn Strategy

Kỹ thuật quản lý hội thoại dài nhiều lượt: khi nào nên tóm tắt, khi nào nên branch sang topic file mới

Context Pruning & Summarization

Cắt tỉa và tóm tắt thông minh: làm thế nào để nén session transcript thành topic file mà không mất mát thông tin

Đọc tiếp

State & Session Management (Level 2)

Từ memory architecture sang state machine: cách thiết kế hệ thống quản lý trạng thái phức tạp cho AI agent

Harness Fundamentals (Level 2)

Bước lên cấp độ cao hơn: thiết kế "yên cương" (harness) để AI vận hành an toàn trong môi trường production

On this page