Bỏ qua đến nội dung chính

Memory and dreaming for self-learning agents

TL;DR

  • Mahesh, một product manager đội platform tại Anthropic, trình bày memory (bộ nhớ) như primitive tiếp theo của agent (sau MCP, harness và skills) — chìa khóa cho các agent tự học, cải thiện từ kinh nghiệm của chính mình và từ các agent khác trong cùng môi trường.
  • Memory trong managed agents mô hình hóa bộ nhớ như một hệ thống file mà Claude quản lý bằng bashgrep, với permission scope, optimistic concurrency, lịch sử phiên bản, attribution, và một API độc lập, di động để doanh nghiệp kiểm soát.
  • Anthropic ra mắt dreaming ở dạng research preview: một tiến trình out-of-band, bất đồng bộ, khai thác transcript gần đây của agent để tìm mẫu và lỗi, rồi tạo cập nhật bộ nhớ có tổ chức, đã loại trùng và xác minh — Harvey thấy tỉ lệ hoàn thành tác vụ tăng 6 lần trên một benchmark pháp lý.

Điểm chính

  • Memory được định vị là primitive mở khóa khả năng tự học liên tục: agent có thể học về tác vụ (tiêu chí thành công, lỗi thường gặp, chiến lược hiệu quả), về môi trường (codebase, file), và học từ các agent khác chia sẻ cùng môi trường.
  • Memory trong managed agents (public beta) được mô hình hóa như hệ thống file — một phân cấp file Claude quản lý bằng bashgrep; Claude Opus 4.7 đạt state-of-the-art về bộ nhớ kiểu file-system, giỏi hơn trong việc quyết định nhớ gì và cấu trúc ra sao.
  • Thiết kế "tối đa hóa trí tuệ mặc định" bằng cách tránh đường của Claude, nối tiếp hành trình từ CLAUDE.md và memory tool bị ràng buộc sang việc giao nhiều quyết định hơn cho model.
  • Việc mở rộng đa agent dẫn tới hai thuộc tính: permission scope (kho tri thức toàn tổ chức chỉ-đọc vs bộ nhớ làm việc đọc-ghi) và optimistic concurrency (dùng content/precondition hash để agent xác minh trước khi ghi đè bộ nhớ của agent khác).
  • Yêu cầu kiểm soát doanh nghiệp tạo ra lịch sử phiên bản (audit log mọi lần cập nhật), metadata attribution (agent nào, lúc nào, phiên nào), và một API độc lập di động để khách hàng tự chạy quét PII, dọn dẹp hay sao chép trong pipeline riêng.
  • Dreamingout-of-band và bất đồng bộ — chạy tách khỏi hot path (không thêm độ trễ), kích hoạt qua console/API theo cron hoặc khi agent kết thúc, và nhìn xuyên nhiều agent để tìm mẫu chung mà một agent đơn lẻ sẽ bỏ lỡ.
  • Dreaming áp dụng tư duy scaling law cho chất lượng bộ nhớ: như test-time compute, nó tiêu thêm token để giữ kho tri thức lớn có tổ chức và tươi mới, tạo ra một diff cập nhật, loại trùng, xóa mục cũ và thêm ghi chú xác minh — Rakuten giảm 90% lỗi lần đầu.

Từ vựng

  • memory (primitive) — memory (bộ nhớ - primitive)
  • dreaming — dreaming (mơ)
  • managed agents API — managed agents API
  • bộ nhớ kiểu file-system — file-system memory
  • permission scope — permission scopes (phạm vi quyền)
  • optimistic concurrency — optimistic concurrency
  • lịch sử phiên bản — version history
  • out-of-band — out-of-band (ngoài luồng)
  • test-time compute — test-time compute
  • agent tự học — self-learning agents

Nội dung chi tiết

Memory: primitive tiếp theo của agent

Mahesh là product manager đội platform tại Anthropic, từng làm các primitive như MCP và skills. Trong hai năm qua, năng lực model tăng nhanh và agent nay xử lý được các tác vụ kéo dài nhiều giờ, có thể chạy hàng giờ tới gần cả ngày. Anthropic đã xây các primitive giúp model tiếp cận môi trường: MCP (công cụ và dữ liệu bên ngoài), harness mạnh như Claude Code và agent SDK, và skills (năng lực mới do agent khác hoặc con người thiết kế). Nhưng vẫn còn một thứ chưa giải: tự học liên tục và quản lý ngữ cảnh trên các tác vụ dài hạn. Memory chính là primitive tiếp theo, đưa ta tới các agent tự học tiến hóa và cải thiện dựa trên kinh nghiệm của chính mình — học về tác vụ, về môi trường, và đặc biệt là học từ các agent khác trong cùng môi trường (rất quan trọng với hệ thống đa agent quy mô lớn).

Thiết kế bộ nhớ kiểu file-system

Memory trong cloud-managed agents vừa ra mắt public beta. Yêu cầu quan trọng nhất là "tối đa hóa trí tuệ mặc định". Trước đây Anthropic từng ra CLAUDE.md (bộ nhớ sơ khai, agent tự ghi chú) và memory tool trong SDK (tool call ràng buộc chặt). Khi agent giỏi lên, Anthropic ngày càng "tránh đường" Claude và giao nhiều quyết định hơn cho model. Như đã làm với skills, kết luận là: agent đã biết quản lý môi trường ảo và hệ thống file của chính nó, vậy tại sao không làm tương tự với bộ nhớ? Vì vậy memory được mô hình hóa như một hệ thống file — phân cấp file Claude tự quản lý, cập nhật và sắp xếp bằng các công cụ quen thuộc bashgrep. Claude Opus 4.7 đạt state-of-the-art về bộ nhớ kiểu file-system: giỏi hơn trong việc quyết định nhớ gì, cấu trúc ra sao, chia thành bao nhiêu file.

Mở rộng cho hệ thống đa agent

Bộ nhớ phải mở rộng được cho các hệ thống đa agent — power user đã chạy 10-15 phiên Claude Code cùng lúc, và doanh nghiệp (gồm Anthropic) chạy hàng trăm tới hàng nghìn agent song song chia sẻ cùng trạng thái. Hai thuộc tính ra đời: (1) permission scope — một agent có thể chỉ-đọc một kho (ví dụ kho tri thức toàn tổ chức, runbook, best practice) và đọc-ghi một kho khác (bộ nhớ làm việc cập nhật thường xuyên); (2) optimistic concurrency — agent dùng content hash để kiểm tra liệu nó có ghi đè bộ nhớ của agent khác trước khi cập nhật.

Kiểm soát cấp doanh nghiệp

Thuộc tính được mong đợi nhất là lịch sử phiên bản — audit log đầy đủ mọi lần bộ nhớ được cập nhật, và agent cũng có thể truy cập log đó. Kèm theo là metadata attribution (agent nào, lúc nào, phiên nào). Ngoài ra là một API độc lập, di động: nhiều khách hàng tự xây hệ thống quản lý/curate bộ nhớ ngoài managed agents — quét PII để loại nội dung nhạy cảm, dọn dẹp trong pipeline riêng, hoặc sao chép sang hệ thống ngoài — nên Anthropic không khóa họ vào một hệ thống cố định.

Dreaming: học liên tục ngoài luồng

Khi mở rộng lên các hệ thống đa agent phức tạp, xuất hiện hạn chế: nhiều phiên bỏ lỡ bài học mà agent khác đã rút ra, có những lỗi và mẫu chung lặp lại, và việc duy trì kho bộ nhớ lớn chưa hiệu quả vì mỗi agent bị "đóng khung" trong tác vụ riêng. Giải pháp là dreaming — một tiến trình out-of-band, batch, bất đồng bộ, khai thác transcript gần đây để tìm mẫu và lỗi (như tool call thất bại) rồi tự tạo nội dung bộ nhớ có tổ chức và cập nhật. Có thể kích hoạt theo cron qua console/API hoặc khi agent kết thúc tác vụ. Harvey thấy tỉ lệ hoàn thành tác vụ tăng 6 lần trên một benchmark pháp lý; Rakuten giảm 90% lỗi lần đầu.

Dreaming thú vị vì: (1) nó out-of-band, nhìn được nhiều agent cùng lúc để tìm mẫu chung mà một agent đơn lẻ không thấy; (2) nó tách mục tiêu "chất lượng bộ nhớ" khỏi mục tiêu "hoàn thành tác vụ", và không thêm độ trễ vào hot path; (3) nó áp dụng scaling law cho chất lượng bộ nhớ — như test-time compute, tiêu thêm token để giữ kho tri thức lớn có tổ chức và tươi mới, giống một hệ thống tìm kiếm tạo index chất lượng cao trước rồi dùng lại hiệu quả, chia sẻ chi phí cho mọi agent.

Demo: agent SRE với memory và dreaming

Demo cho thấy một agent SRE xử lý cảnh báo, có ba kho bộ nhớ: kho tri thức toàn tổ chức (chỉ-đọc, runbook và SLO), kho SRE (đọc-ghi) và kho codebase. Khi một cảnh báo P1 từ dịch vụ dispatch tới, một agent SRE điều tra CPU, traffic, PR gần đây và ghi bài học vào diff trong kho. Vài phút sau cùng cảnh báo lại nổ, một agent SRE khác khởi động, đọc ngay ghi chú "đã điều tra rồi, đây là cách rút ngắn" — tiết kiệm thời gian và token. Kho bộ nhớ có lịch sử phiên bản (thấy được thay đổi nào, agent nào, lúc nào) và precondition hash cho optimistic concurrency.

Sau đó, trong cloud console, kích hoạt một job dreaming trên kho SRE với các phiên 7 ngày qua. Job sinh sub-agent soi transcript và tạo một diff: cập nhật ghi chú độ trễ dispatch (phát hiện các agent bị kích hoạt đúng 60 giây sau khi CPU tăng vọt, nghi do retry logic kém hiệu quả — điều mà từng agent riêng lẻ không nhận ra), loại trùng 5 mục giống nhau thành một, xóa một mục cũ không còn hợp lệ, và thêm ghi chú xác minh ("dựa trên transcript này, bộ nhớ chính xác, có thể tin cậy ngày mai").

Kết luận

Memory là primitive để agent đọc/ghi và ghi nhớ theo thời gian thực; dreaming là tiến trình toàn diện xây trên đó để xác minh, tổ chức, làm giàu và bổ sung bộ nhớ — cầu nối giữa bộ nhớ trung gian và các kho tri thức quy mô lớn. Trong vài tháng tới, agent sẽ chạy nhiều giờ hoặc nhiều ngày, và bộ nhớ sẽ là phần thiết yếu giúp điều đó khả thi. Cả hai đã có sẵn trong managed agents API.

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?