Bỏ qua để đến nội dung

Level: L8 — Automation & AI Agents (Bài 10/13) · Đối tượng: Người đã học bài 80 (Agent Anatomy, trong đó Memory chỉ

Agent Memory là cơ chế agent giữ lại và tái sử dụng thông tin qua thời gian — khác hẳn 1 lệnh gọi LLM đơn lẻ (chỉ biết những gì có trong 1 lần gọi). Có 4 tầng memory, mỗi tầng phục vụ 1 mục đích khác nhau:

  • Working memory (trí nhớ đang xử lý) — thông tin agent đang thao tác trực tiếp ngay tại bước hiện tại của Execution Loop (bài 80) — giống 1 “nháp” chỉ tồn tại trong khoảnh khắc đang suy luận.
  • Short-term / context memory (trí nhớ ngắn hạn/ngữ cảnh) — toàn bộ thông tin nằm trong 1 phiên/1 cuộc hội thoại hiện tại — rộng hơn working memory, nhưng vẫn mất đi khi phiên kết thúc.
  • Long-term memory (trí nhớ dài hạn) — thông tin tồn tại xuyên nhiều phiên, kể cả các cuộc hội thoại hoàn toàn mới sau này [S113].
  • Retrieval memory (trí nhớ truy xuất)cơ chế lấy đúng phần thông tin cần thiết từ kho long-term memory vào đúng lúc cần, thay vì nạp toàn bộ ngay từ đầu [S113].

Không có memory, agent bắt đầu từ con số 0 mỗi lần — không thể xây dựng liên tục trên các quyết định/bài học trước đó. Điều này khác hẳn Sessions đã học ở phần nền tảng Level 8 (resume/fork trong cùng 1 luồng hội thoại) — Memory tồn tại xuyên cả những cuộc hội thoại hoàn toàn mới, không chỉ tiếp tục 1 luồng đã có.

Cơ chế Long-term + Retrieval memory (có nguồn thật, ví dụ: Memory tool của Anthropic) [S113]: agent lưu thông tin vào 1 thư mục file (ví dụ /memories), tồn tại xuyên phiên. Điểm quan trọng nhất — “just- in-time context retrieval”: thay vì nạp toàn bộ thông tin liên quan ngay từ đầu (tốn ngữ cảnh), agent ghi lại điều học được vào file, rồi đọc lại khi thực sự cần — giữ ngữ cảnh hoạt động (working/short-term memory) tập trung vào đúng việc đang làm.

Cơ chế kỹ thuật vận hành client-side: Claude (hay LLM tương tự) chỉ yêu cầu thao tác file (đọc/tạo/sửa/xóa) qua đúng vòng lặp Tool Calling đã học ở Level 7 (bài 67) — ứng dụng của bạn mới là bên thực thi thao tác đó và quyết định lưu trữ ở đâu [S113]. Nói cách khác: Memory không phải 1 cơ chế “ma thuật” riêng biệt — nó dùng lại đúng cơ chế Tool Calling đã học, chỉ khác ở loại tool (thao tác file nhớ) và cách dùng (tự động kiểm tra trước khi bắt đầu, tự ghi lại trong lúc làm).

Sơ đồ đề xuất: 4 tầng memory vẽ dạng vòng tròn đồng tâm từ trong ra ngoài theo “thời gian tồn tại” tăng dần: Working memory (trong cùng, tồn tại 1 khoảnh khắc) → Short-term/context memory (tồn tại 1 phiên) → Long-term memory (tồn tại xuyên phiên, vòng ngoài cùng) — với Retrieval memory vẽ như 1 “cầu nối” giữa vòng ngoài (Long-term) và vòng trong (Working/Short-term), mũi tên 2 chiều (ghi ra ngoài, đọc vào trong).

5. Step-by-Step — Vòng đời sử dụng Memory (ví dụ có nguồn thật, ticket

Phần tiêu đề “5. Step-by-Step — Vòng đời sử dụng Memory (ví dụ có nguồn thật, ticket”

dịch vụ khách hàng) [S113]

  1. Yêu cầu tới: “Giúp tôi trả lời ticket hỗ trợ khách hàng này.”
  2. Agent tự kiểm tra Long-term memory trước khi làm gì khác: “Để tôi kiểm tra bộ nhớ xem có ngữ cảnh liên quan trước đó không” — agent gọi thao tác xem danh sách file trong thư mục nhớ.
  3. Ứng dụng trả về danh sách file đã có: ví dụ customer_service_guidelines.xml, refund_policies.xml.
  4. Agent đọc file liên quan (Retrieval memory đang hoạt động — chỉ đọc đúng file cần, không nạp mọi thứ).
  5. Ứng dụng trả về nội dung file đó — nội dung này giờ nằm trong Short-term/context memory của phiên hiện tại.
  6. Agent dùng thông tin vừa đọc để trả lời — Working memory đang xử lý trực tiếp thông tin đó để soạn câu trả lời cụ thể.

(Ẩn dụ ngắn, không đào sâu khoa học nhận thức: nếu Long-term memory giống 1 tủ hồ sơ, Retrieval memory là hành động mở đúng ngăn kéo cần thiết, và Working memory là tờ giấy bạn đang cầm trên tay để viết.)*

Ticket dịch vụ khách hàng (ví dụ có nguồn thật, mục 5) — minh họa cả 4 tầng cùng lúc, đúng như trên.

Sales Follow-up Agent (đã học bài 79/84): Long-term memory giữ lại “khách hàng X đã nói thích liên hệ qua email, không qua điện thoại” từ lần tương tác trước — dù đây là 1 cuộc hội thoại hoàn toàn mới, agent vẫn nhớ được sở thích đó nhờ Long-term memory, khác hẳn Session (chỉ tiếp tục được nếu vẫn cùng 1 luồng hội thoại cũ).

Với agent của tôi, thông tin nào cần:
Working memory (chỉ cần trong bước xử lý hiện tại): ...
Short-term/context (cần trong suốt phiên này, không cần sau đó): ...
Long-term (cần nhớ xuyên nhiều phiên/hội thoại mới): ...
Nếu có Long-term memory: agent cần đọc lại (Retrieval) đúng lúc nào?

Chọn 1 agent bạn đã thiết kế ở bài 82/83/84. Với worksheet mục 7, xác định: agent đó có cần Long-term memory không? Nếu có, viết ra 2-3 mẩu thông tin cụ thể nó nên ghi nhớ xuyên phiên, và khi nào (Retrieval) nó cần đọc lại thông tin đó.

Semantic Memory (Mãi mãi)Knowledge base, embeddingsLong-term Memory (Giữa các phiên)Lịch sử chat, thói quen người dùngShort-term Memory (Trong phiên)Context window hiện tại
Hình 8.10 — Agent Memory: 3 tầng theo thời gian tồn tại, Retrieval là cầu nối 2 chiều.

(Suy luận từ nguyên tắc [S113], không phải quan sát độc lập.)

  • Nhầm Session (resume/fork) với Long-term memory — Session chỉ hoạt động trong cùng 1 luồng hội thoại; Memory hoạt động xuyên cả các hội thoại mới.
  • Nhồi mọi thứ vào Long-term memory không chọn lọc — không có chiến lược dọn dẹp/hết hạn dẫn tới file nhớ phình to, khó truy xuất đúng thông tin cần (nguyên tắc “memory expiration” [S113]).
  • Nhầm Agent Memory với Knowledge Base (Level 3) — Knowledge Base là tài liệu con người chuẩn bị sẵn cho AI tham chiếu; Agent Memory là thông tin chính agent tự ghi lại trong lúc hoạt động.
  • [S113] Memory tool, Anthropic — platform.claude.com/docs — cơ chế file-based, just-in-time retrieval, ví dụ ticket dịch vụ khách hàng, cân nhắc bảo mật.
  • Dẫn chiếu (không trích dẫn mới): Level 7 bài 67 (cơ chế Tool Calling — Memory dùng lại đúng vòng lặp này); phần nền tảng Level 8 trước đó (Sessions — resume/fork, phân biệt rõ với Long-term memory); Level 3 bài 19/21/28 (Knowledge Base — phân biệt, không dạy lại); bài 87 (Guardrails, dẫn chiếu ở mục 11).

Nội dung kiểm chứng qua nguồn Tier 1 (S113) ngày 2026-07-13. Cơ chế just-in-time retrieval là nguyên lý tương đối ổn định; chi tiết API/tên lệnh cụ thể (view, create…) có thể đổi theo phiên bản — không đưa chi tiết implementation vào bài học, đúng “Golden Rule” đã áp dụng xuyên suốt Level 8.