For the complete documentation index, see llms.txt. This page is also available as Markdown.

Memory

Dịch vụ Memory cung cấp cho agent khả năng ghi nhớ — xuyên suốt các lượt trong một cuộc hội thoại (short-term memory thông qua event) và xuyên suốt các session cùng thời gian (long-term memory thông qua memory record với semantic search).


Các khái niệm cốt lõi (Core Concepts)

LLM vốn không có trạng thái — mỗi lần gọi API đều độc lập. Để một agent duy trì ngữ cảnh xuyên suốt cuộc hội thoại hoặc giữa các session, nó cần một kho lưu trữ memory bên ngoài. Module Memory của AgentBase cung cấp khả năng này dưới dạng dịch vụ được quản lý với hai tầng memory:

Short-Term Memory (Lịch sử hội thoại)

Short-term memory lưu trữ chuỗi tin nhắn theo thứ tự trong một session hội thoại. Nó được phân vùng theo định danh session.

Session 1: user 1
─────────────────────────────────────────────────────────
Role        Content
human       "What's the weather like in Hanoi today?"
assistant   "Currently 28°C, partly cloudy in Hanoi."
human       "What about tomorrow?"
assistant   "Tomorrow: 31°C, sunny with light winds."

Đặc điểm chính:

  • Được lưu trữ dưới dạng danh sách có thứ tự các cặp role/content

  • Được đánh chỉ mục theo session ID

  • Dữ liệu được duy trì khi container khởi động lại (được lưu trong dịch vụ Memory, không phải trong container)

  • Hỗ trợ cấu hình độ dài lịch sử tối đa

Long-Term Memory (Dữ kiện ngữ nghĩa)

Long-term memory lưu trữ các dữ kiện bền vững về các thực thể — người dùng, sản phẩm, sở thích, các tương tác trước đó — và truy xuất chúng thông qua semantic similarity search dựa trên truy vấn hiện tại.

Khi agent nhận được một truy vấn mới, nó sẽ:

  1. Tìm kiếm trong long-term memory các dữ kiện tương tự nhất với truy vấn hiện tại

  2. Đưa các dữ kiện đó vào prompt dưới dạng ngữ cảnh

Đặc điểm chính:

  • Được lưu trữ dưới dạng embedding vector cùng với văn bản gốc và metadata tùy chọn

  • Được phân vùng theo namespace (ví dụ: user ID, entity ID)

  • Được truy xuất thông qua semantic similarity search

Các dữ kiện được trích xuất từ event hội thoại bằng Long-Term Memory Strategy (LTMS). Ba loại strategy được hỗ trợ:

Loại
Mô tả
Phù hợp cho

SEMANTIC

Trích xuất các dữ kiện chung từ cuộc hội thoại

Kiến thức tổng quát về người dùng hoặc lĩnh vực

USER_PREFERENCE

Tập trung trích xuất sở thích và mẫu hành vi

Sở thích giao hàng, quan tâm sản phẩm, thói quen

CUSTOM

Logic trích xuất do người dùng tự định nghĩa qua prompt tùy chỉnh

Toàn quyền kiểm soát những gì được ghi nhớ và cách thức

Mô hình dữ liệu (Data Model)

Khái niệm
Mô tả
Vòng đời

Memory

Container cấp cao nhất (memory store) chứa event và record

Vĩnh viễn cho đến khi bị xóa

Event

Một lượt hội thoại đơn lẻ (role + message)

Hết hạn sau eventExpiryDuration ngày

Actor

Định danh người tham gia — đại diện cho người dùng cuối (không phải agent)

Được tạo khi có event đầu tiên

Session

Luồng hội thoại trong một actor

Được tạo khi có event đầu tiên

Memory Record

Dữ kiện long-term đã được chắt lọc từ event

Vĩnh viễn cho đến khi bị xóa

Long-Term Memory Strategy (LTMS)

Quy tắc trích xuất để tạo memory record

Được cấu hình khi tạo memory

Namespace Template

Kiểm soát cách phân vùng memory record. Mặc định: /strategies/{memoryStrategyId}/actors/{actorId}

Các biến khả dụng: {memoryStrategyId}, {actorId}, {sessionId}

Lưu ý về actorId: Đại diện cho người dùng cuối (ví dụ: alice, user-123), không phải agent. Điều này giúp phân vùng dữ kiện theo từng người dùng.


Thiết lập — Tạo Memory Store

Trước khi sử dụng short-term hoặc long-term memory, bạn cần tạo một Memory store — container cấp cao nhất chứa tất cả event và memory record cho agent của bạn.

Portal

Tạo Memory Store

  1. Mở https://aiplatform.console.greennode.ai/memory

  2. Nhấn "Create Memory"

  3. Điền thông tin:

    • Name: ví dụ customer-support-memory (0–50 ký tự, ^[a-zA-Z0-9._-]*$)

    • Description: tùy chọn

  4. Cấu hình Short-Term Memory:

    • Event Expiry Duration: số ngày trước khi event hội thoại bị tự động xóa (1–365), ví dụ 30 ngày

  5. Thêm một hoặc nhiều Long-Term Memory Strategy (tùy chọn, dành cho long-term memory):

    • Strategy Name: ví dụ semantic-facts

    • Type: SEMANTIC, USER_PREFERENCE, hoặc CUSTOM

    • Namespace Template: mặc định là /strategies/{memoryStrategyId}/actors/{actorId}

    • Auto-generate records: bật/tắt

    • Custom Prompt (chỉ cho loại CUSTOM): prompt trích xuất của bạn

  6. Nhấn Create

Danh sách Memory Store

  1. Mở https://aiplatform.console.greennode.ai/memory

  2. Tất cả memory store được hiển thị với: Name, Status, Description, Event Expiry, Last updated

1774584561868

Xem chi tiết Memory Store

Từ trang danh sách memory → nhấn vào tên memory

1774584650626

Xóa Memory Store

Lưu ý: Việc xóa không thể hoàn tác. Tất cả event, actor, session và memory record sẽ bị xóa vĩnh viễn.

  1. Từ trang chi tiết memory → Delete → xác nhận

1774584735238

RESTful API

�Điều kiện cần: Tất cả các ví dụ API dưới đây sử dụng $TOKEN — một IAM bearer token. Xem Cấu hình xác thực để biết cách lấy token.

Tạo Memory Store

Với strategy SEMANTIC:

Với nhiều strategy:

Phản hồi mẫu:

Danh sách Memory Store

Xem chi tiết Memory Store

Xóa Memory Store


SDK

Tạo Memory Store

Danh sách Memory Store

Xem chi tiết Memory Store

Xóa Memory Store


Bước 2 — Sử dụng Memory trong Agent của bạn

Sau khi Memory Store được tạo, agent của bạn đọc và ghi memory tại runtime. Chọn cách tiếp cận phù hợp với stack của bạn.

Cách tiếp cận
Khi nào sử dụng

A: Agentic Framework

Xây dựng với LangGraph hoặc LangChain — sử dụng checkpointer tích hợp cho short-term + tool cho long-term

B: Trực tiếp SDK / REST API

Bất kỳ stack nào khác, hoặc khi bạn cần toàn quyền kiểm soát thời điểm và cách thức đọc/ghi memory

Header bắt buộc: Agent của bạn nhận X-GreenNode-AgentBase-User-Id (ánh xạ tới actor_id) và X-GreenNode-AgentBase-Session-Id (ánh xạ tới thread_id / session_id) trong mỗi request từ Runtime. Luôn kiểm tra chúng trước khi thực hiện các thao tác memory — không bao giờ sử dụng giá trị mặc định, vì giá trị mặc định ngầm sẽ gây trộn lẫn dữ liệu giữa các người dùng.


Cách A: Agentic Framework (LangGraph / LangChain)

Short-Term Memory — LangGraph Checkpointer

Truyền AgentBaseMemoryEvents làm checkpointer khi biên dịch graph. LangGraph tự động ghi và tải lịch sử hội thoại sử dụng thread_id (được ánh xạ từ session_id).

Long-Term Memory — Cách tiếp cận dựa trên Tool

Định nghĩa rememberrecall làm agent tool được hỗ trợ bởi MemoryClient. actor_idstrategy_id được lấy từ cấu hình runtime — chúng không được để LLM truy cập dưới dạng tham số.

Truyền actor_id qua configurable để tool có thể lấy nó từ get_config(). Không bao giờ để actor_id hoặc strategy_id làm tham số tool mà LLM có thể truy cập.

Ví dụ đầy đủ: LangGraph Agent với cả hai loại Memory


Cách B: Trực tiếp SDK / REST API

Short-Term Memory

Ghi và đọc event hội thoại trực tiếp qua API tại runtime. Mỗi event đại diện cho một lượt hội thoại.

Ghi một event (RESTful API):

Tải lịch sử hội thoại (RESTful API):

Long-Term Memory

Long-term record được tạo từ event hội thoại, sau đó được truy xuất qua semantic search tại runtime.

Tạo record từ một session (RESTful API):

Semantic search (RESTful API):

Phản hồi mẫu:

Tạo record từ một session (SDK):

Semantic search (SDK):


Tham khảo: Duyệt và quản lý dữ liệu Memory

Sử dụng các thao tác này để kiểm tra dữ liệu memory — hữu ích cho việc gỡ lỗi, kiểm toán, hoặc xây dựng công cụ quản trị.

Danh sách Actor

Duyệt Memory Record


Giới hạn dịch vụ Memory (Memory Service Limits)

Tham số
Giá trị
Ghi chú

Phạm vi eventExpiryDuration

1–365 ngày

Đặt khi tạo memory store

Độ dài tối đa tên Memory

50 ký tự

Mẫu: ^[a-zA-Z0-9._-]*$

Phạm vi limit semantic search

5–200

Mỗi request tìm kiếm

scoreThreshold semantic search

0–1 float

Càng cao = càng khớp chính xác

from tối đa cho phân trang event

5000

Dựa trên offset


Xử lý sự cố (Troubleshooting)

Lỗi
Nguyên nhân
Cách khắc phục

401 Unauthorized

IAM token hết hạn

Lấy lại token

Memory not found

Sai memory ID

Kiểm tra bằng danh sách GET /memories

Không có record trả về

Sai namespace hoặc trễ do xử lý bất đồng bộ

Record được tạo bất đồng bộ — chờ và thử lại

Event không hiển thị

Event đã hết hạn

Kiểm tra eventExpiryDuration

Tự động tạo không hoạt động

Strategy bị cấu hình sai

Kiểm tra enableAutomaticMemoryRecordGeneration: true

"Missing required headers"

Request thiếu User-Id hoặc Session-Id

Đính kèm cả hai header trong mọi request sử dụng memory


Last updated