AI agent

Triển khai bộ nhớ bền vững cho agent với NVIDIA NeMo và AWS S3 Vectors

Hướng dẫn kỹ thuật chi tiết cách xây dựng bộ nhớ dài hạn có khả năng mở rộng và nhất quán cho các AI agent, sử dụng NVIDIA NeMo Agent Toolkit và Amazon S3 Vectors trên nền tảng EKS.

Được dịch tự động từ bản gốc tiếng Anh.

Các kỹ sư đang phát triển hệ thống đa agent giờ đây đã có một lộ trình cụ thể để triển khai bộ nhớ chia sẻ, bền vững bằng cách sử dụng NVIDIA NeMo Agent Toolkit (NAT) kết hợp với Amazon S3 Vectors. Được công bố vào tháng 10 năm 2026, hướng dẫn kỹ thuật này minh họa cách triển khai các thành phần nói trên trên Amazon Elastic Kubernetes Service (EKS) nhằm giải quyết các thách thức về tính nhất quán và khả năng mở rộng trong môi trường sản xuất.

Điều gì đã xảy ra

Bài viết cung cấp chiến lược triển khai từng bước để tạo một nhà cung cấp bộ nhớ tùy chỉnh trong NAT. Mặc dù NAT hỗ trợ các backend hiện có như Redis và Zep, hướng dẫn lập luận rằng Amazon S3 Vectors phù hợp hơn cho các hệ thống đa agent trong môi trường sản xuất, đòi hỏi khả năng mở rộng linh hoạt và tính nhất quán cao khi ghi dữ liệu. Các tác giả hướng dẫn quy trình từ việc tạo hạ tầng cần thiết, viết plugin tùy chỉnh, đến cấu hình luồng công việc của agent.

Phần cốt lõi của quá trình triển khai bao gồm việc định nghĩa giao diện MemoryEditor, đóng vai trò là hợp đồng plugin cho các backend tùy chỉnh. Nhà phát triển phải cài đặt ba phương pháp cụ thể: add_items(), search() và remove_items(). Plugin này cho phép các agent lưu trữ lịch sử hội thoại, sở thích người dùng và kiến thức dài hạn dưới dạng các đối tượng MemoryItem, bao gồm các trường siêu dữ liệu (metadata) để lọc và giới hạn phạm vi truy vấn.

Việc triển khai dựa vào Amazon EKS để kiểm soát vòng đời hoạt động của agent. Kiến trúc sử dụng HorizontalPodAutoscaler để tự động điều chỉnh số lượng bản sao agent dựa trên mức độ sử dụng CPU. Mỗi bản sao kết nối với cùng một chỉ mục S3 Vectors thông qua IAM Roles for Service Accounts (IRSA). Thiết lập này đảm bảo rằng bất kỳ pod nào xử lý yêu cầu đều có thể truy cập những bộ nhớ mới nhất mà không cần áp dụng các chiến lược vô hiệu hóa cache.

Cách thức hoạt động

Hệ thống hoạt động bằng cách bọc các agent tiêu chuẩn trong thành phần auto_memory_agent. Lớp bọc này tự động xử lý việc thu thập và truy xuất ngữ cảnh, loại bỏ nhu cầu mô hình ngôn ngữ lớn (LLM) phải gọi rõ ràng các công cụ bộ nhớ trong mỗi lượt tương tác. Khi một agent tạo ra phản hồi, hệ thống sẽ nhúng nội dung bằng một mô hình như Amazon Titan Text Embeddings V2 và lưu trữ nó vào chỉ mục S3 Vectors.

S3 Vectors đóng vai trò là backend bền vững, hỗ trợ lên đến hai tỷ vector cho mỗi chỉ mục. Nó cung cấp khả năng truy xuất ngữ nghĩa bằng cách sử dụng các chỉ số khoảng cách có thể cấu hình như cosine hoặc Euclidean similarity. Quan trọng hơn, nó cung cấp tính nhất quán mạnh mẽ khi ghi dữ liệu, nghĩa là khi một pod agent ghi bộ nhớ, tất cả các pod khác sẽ thấy ngay lập tức. Điều này loại bỏ các điều kiện tranh chấp (race conditions) thường gặp ở các cơ sở dữ liệu nhất quán cuối cùng (eventually consistent) khi nhiều agent phối hợp trên một nhiệm vụ duy nhất.

Việc lọc theo siêu dữ liệu cho phép các agent giới hạn phạm vi tìm kiếm một cách hiệu quả. Mỗi vector có thể mang siêu dữ liệu kiểu chuỗi, số, Boolean hoặc danh sách, cho phép thực hiện các truy vấn nhắm mục tiêu đến những người dùng, phiên làm việc hoặc chủ đề cụ thể. Cấu trúc này hỗ trợ nhiều loại bộ nhớ khác nhau, bao gồm bộ nhớ tình huống (episodic), bộ nhớ ngữ nghĩa (semantic) và bộ nhớ thủ tục (procedural), cho phép hệ thống chỉ truy xuất ngữ cảnh liên quan nhất cho một tương tác cụ thể.

Chi tiết chính

  • Giao diện Plugin: Các backend bộ nhớ tùy chỉnh phải cài đặt giao diện trừu tượng MemoryEditor với các phương pháp add_items, search và remove_items.
  • Mô hình nhất quán: Amazon S3 Vectors cung cấp tính nhất quán mạnh mẽ khi ghi, đảm bảo khả năng hiển thị ngay lập tức của các bộ nhớ mới trên tất cả các pod agent mà không cần quản lý cache.
  • Cơ chế mở rộng: Các bản sao agent trên Amazon EKS được mở rộng quy mô thông qua HorizontalPodAutoscaler dựa trên mức sử dụng CPU, với tất cả các instance chia sẻ một chỉ mục S3 Vectors duy nhất.
  • Chỉ số đánh giá: Khung đánh giá NAT (nat eval) đo lường sự cải thiện về độ tin cậy (groundedness), mức tiêu thụ token, độ trễ và giảm thiểu công việc trùng lặp.
  • Giới hạn hạ tầng: S3 Vectors hỗ trợ lên đến hai tỷ vector cho mỗi chỉ mục, không yêu cầu lập kế hoạch dung lượng và áp dụng mô hình thanh toán theo mức sử dụng cho lưu trữ và truy vấn.
  • Kiểm soát truy cập: Bảo mật được quản lý thông qua các chính sách AWS IAM cho từng bucket và chỉ mục, cho phép cô lập chặt chẽ giữa các khách hàng thuê bao (tenant) hoặc nhóm làm việc.

Tại sao điều này quan trọng

Đối với các đội ngũ phần mềm xây dựng luồng công việc agent phức tạp, quản lý bộ nhớ thường là điểm nghẽn. Nếu không có một lớp bộ nhớ chia sẻ và nhất quán, các agent sẽ lặp lại công việc, mất ngữ cảnh giữa các phiên làm việc và gặp khó khăn trong việc phối hợp. Bằng cách chuyển giao việc quản lý bộ nhớ sang S3 Vectors, các nhà phát triển có được một hệ thống có khả năng mở rộng linh hoạt mà không cần quản lý tài nguyên tính toán nhàn rỗi. Điều này giúp giảm tải chi phí vận hành đồng thời nâng cao độ tin cậy của các cộng tác đa agent.

Khả năng định lượng tác động của bộ nhớ cũng rất đáng kể. Hướng dẫn nhấn mạnh rằng việc kích hoạt bộ nhớ thường cải thiện độ tin cậy (groundedness) bằng cách cung cấp ngữ cảnh nguồn có thể xác minh và giảm mức tiêu thụ token bằng cách bỏ qua việc suy luận lại các sự kiện đã biết. Mặc dù độ trễ tăng nhẹ do các truy vấn vector, sự đánh đổi này thường dẫn đến đầu ra chất lượng cao hơn và chi phí tổng thể thấp hơn cho các nhiệm vụ lặp đi lặp lại. Cách tiếp cận dựa trên dữ liệu này giúp các kỹ sư tinh chỉnh các tham số như top_k và ngưỡng tương tự để cân bằng giữa chi phí và hiệu suất.

Những gì bạn có thể làm

  • Cài đặt NVIDIA NeMo Agent Toolkit phiên bản 1.6 trở lên và đảm bảo môi trường của bạn chạy Python 3.11 hoặc 3.12.
  • Tạo một bucket và chỉ mục Amazon S3 Vectors với schema siêu dữ liệu phù hợp với yêu cầu bộ nhớ của agent, sử dụng 1024 chiều cho các embedding của Titan.
  • Cài đặt giao diện MemoryEditor trong Python để kết nối NAT với chỉ mục S3 Vectors của bạn, xử lý việc tạo embedding và gắn thẻ siêu dữ liệu.
  • Cấu hình lớp bọc auto_memory_agent trong tệp cấu hình YAML của NAT để bật tính năng thu thập và truy xuất bộ nhớ tự động cho các agent của bạn.
  • Chạy các bài đánh giá so sánh bằng cách sử dụng nat eval với và không bật bộ nhớ để đo lường sự thay đổi về độ chính xác, độ tin cậy và mức tiêu thụ token.
  • Dọn dẹp tài nguyên bằng cách xóa namespace EKS, chỉ mục S3 Vectors và các vai trò IAM sau khi hoàn tất thử nghiệm để tránh các khoản phí phát sinh.

Công cụ từ cửa hàng Bytechap

Đọc tiếp

Tất cả bài viết