
Phương pháp trang bị bộ nhớ cho tác tử AI (AI agent)
Tìm hiểu phương pháp trang bị bộ nhớ dài hạn cho các tác nhân AI bằng việc sử dụng OpenAI Agents SDK, Mem0 và MCP, nhằm ghi nhớ các tùy chọn cá nhân, ngữ cảnh cùng các thông tin quan trọng qua nhiều phiên làm việc.
-->
Phương pháp tích hợp bộ nhớ cho tác nhân AI - KDnuggets
-->
Nhật ký trực tuyến (Blog)
Bài viết hàng đầu
Giới thiệu
Chủ đề
AI
Lời khuyên nghề nghiệp
Thị giác máy tính
Kỹ thuật dữ liệu
Khoa học dữ liệu
Mô hình ngôn ngữ
Học máy
MLOps
Xử lý ngôn ngữ tự nhiên (NLP)
Lập trình
Python
SQL
Tập dữ liệu
Sự kiện
Tài nguyên
Tài liệu tổng hợp nhanh (Cheat Sheets)
Đề xuất
Bản tin tóm tắt công nghệ
Quảng cáo
Đăng ký nhận bản tin
Phương pháp tích hợp bộ nhớ cho tác nhân AI
Tìm hiểu phương pháp thiết lập bộ nhớ dài hạn cho các tác nhân AI thông qua OpenAI Agents SDK, Mem0 và MCP nhằm lưu giữ tùy chọn, ngữ cảnh cùng các thông tin quan trọng qua nhiều phiên làm việc.
Tác giả: Abid Ali Awan, Trợ lý Biên tập KDnuggets, ngày 6/11/2026, chuyên mục Trí tuệ nhân tạo
-->
Các tác nhân AI sở hữu khả năng lập luận, sử dụng công cụ và xử lý các tác vụ phức tạp. Tuy nhiên, một hạn chế lớn là phần lớn các tác nhân đều xóa sạch dữ liệu sau khi kết thúc phiên làm việc.
Điều này đồng nghĩa với việc mỗi phiên hội thoại mới đều phải bắt đầu lại từ đầu.
Bộ nhớ tác nhân cung cấp phương thức giúp hệ thống AI lưu giữ các thông tin hữu ích qua nhiều phiên, điển hình như các tùy chọn cá nhân, quyết định trước đó, mục tiêu hoặc ngữ cảnh quan trọng.
Nội dung sau đây hướng dẫn quy trình xây dựng một tác nhân AI có bộ nhớ dài hạn bằng OpenAI Agents SDK và Mem0. Sau đó, hệ thống bộ nhớ này sẽ được kết nối với OpenCode nhằm giúp tác nhân lập trình có thể ghi nhớ thông tin qua các phiên làm việc.
Cơ chế hoạt động của bộ nhớ tác nhân AI
Một hệ thống bộ nhớ tác nhân cơ bản vận hành theo chu trình khép kín: người dùng gửi thông điệp, tác nhân tìm kiếm ngữ cảnh liên quan trong bộ nhớ, ứng dụng thông tin thu được vào quá trình lập luận và tiến hành lưu lại dữ liệu hữu ích phục vụ các tương tác tương lai.
Bộ nhớ được chia thành hai dạng chính:
Bộ nhớ ngắn hạn: Thông tin từ cuộc hội thoại hoặc tác vụ hiện tại, bao gồm các tin nhắn gần nhất và trạng thái tạm thời.
Bộ nhớ dài hạn: Thông tin được duy trì qua nhiều phiên làm việc, bao gồm các tùy chọn, quyết định, mục tiêu và trải nghiệm trước đó.
Khâu then chốt là quá trình truy xuất. Thay vì bổ sung toàn bộ lịch sử trò chuyện vào câu lệnh gợi ý (prompt), tác nhân sẽ tiến hành tra cứu trong bộ nhớ và chỉ trích xuất những thông tin thực sự liên quan đến yêu cầu hiện tại.
Giải pháp này vừa tối ưu hóa dung lượng ngữ cảnh, vừa bảo đảm tác nhân duy trì được khả năng ghi nhớ các tương tác trước đó.
Xây dựng tác nhân sở hữu bộ nhớ dài hạn
Phần này hướng dẫn xây dựng một tác nhân cơ bản có khả năng tìm kiếm, lưu trữ và tái sử dụng thông tin qua các phiên hội thoại.
Trước hết, tiến hành cài đặt OpenAI Agents SDK và Mem0:
pip install openai-agents mem0ai
Tiếp theo, thiết lập các khóa API:
export OPENAI_API_KEY="your-openai-key"
export MEM0_API_KEY="your-mem0-key"
Sau đó, nhập các lớp cần thiết và khởi tạo đối tượng Mem0 client:
from agents import Agent, Runner, function_tool
from mem0 import MemoryClient
memory = MemoryClient()
USER_ID = "abid"
Đối tượng MemoryClient cho phép tác nhân truy cập vào Mem0, trong khi USER_ID thông báo cho Mem0 về chủ thể người dùng cần lưu trữ và truy xuất dữ liệu. Việc phân định định danh riêng cho từng người dùng giúp bảo đảm tính độc lập của bộ nhớ.
Khởi tạo công cụ tìm kiếm bộ nhớ
Hệ thống cần được trang bị phương thức tra cứu các thông tin liên quan từ các phiên trò chuyện trước.
Điều này được thực hiện thông qua việc thiết lập công cụ search_memory nhằm chuyển truy vấn hiện thời tới Mem0 và tiếp nhận lại các phần bộ nhớ được lưu trữ có độ tương thích cao nhất.
@function_tool
def search_memory(query: str) -> str:
"""Search for relevant memories about the user."""
results = memory.search(
query=query,
filters={"user_id": USER_ID},
top_k=5,
)
memories = results.get("results", [])
if not memories:
return "No relevant memories found."
return "\n".join(
f"- {item['memory']}"
for item in memories
)
Mem0 sử dụng phương thức tìm kiếm ngữ nghĩa, do đó câu chữ không nhất thiết phải trùng khớp hoàn toàn. Miễn là ý nghĩa tương đồng, tác tử (agent) vẫn có thể truy xuất chính xác thông tin ghi nhớ.
Xây dựng công cụ ghi nhớ
Tiếp theo, cần thiết lập phương thức để tác tử lưu trữ các thông tin hữu ích cho các cuộc hội thoại trong tương lai.
Nhiệm vụ này được thực hiện thông qua công cụ save_memory nhằm chuyển các dữ kiện, tùy chọn ưu tiên hoặc quyết định quan trọng tới Mem0.
@function_tool
def save_memory(content: str) -> str:
"""Save useful long-term information about the user."""
memory.add(
messages=[
{
"role": "user",
"content": content,
}
],
user_id=USER_ID,
)
return "Memory saved."
Mem0 sau đó có thể xử lý thông tin và lưu trữ các nội dung hữu ích dưới dạng bộ nhớ dài hạn, thay vì lưu toàn bộ cuộc hội thoại thành một khối dữ liệu lớn.
Khởi tạo tác tử
Hệ thống được kết nối toàn diện bằng việc khởi tạo tác tử và cấp quyền truy cập vào cả hai công cụ bộ nhớ nêu trên.
Tác tử được chỉ dẫn kiểm tra các dữ liệu ghi nhớ liên quan trước khi trả lời, đồng thời lưu lại các thông tin hữu ích cần ghi nhớ về sau.
agent = Agent(
name="Memory Assistant",
model="gpt-5.6-luna",
instructions="""
You are a personal assistant with long-term memory.
Always call search_memory before answering, even for general questions.
When a relevant memory is found, acknowledge it naturally at the start,
for example: "Oh, I remember you prefer...", then use it.
Save durable preferences, goals, and facts; confirm each save in one
sentence. Skip greetings, temporary info, and duplicates.
""",
tools=[
search_memory,
save_memory,
],
)
Tại đây, các chỉ dẫn đóng vai trò điều phối cách tác tử vận hành bộ nhớ. Hệ thống chỉ dẫn xác định rõ thông tin cần truy xuất, thông tin cần lưu trữ và những dữ liệu cần bỏ qua.
Cuối cùng, thiết lập hàm chat() để vận hành tác tử:
def chat(message):
result = Runner.run_sync(
agent,
message,
)
return result.final_output
Mỗi khi hàm chat() được gọi, thông điệp sẽ được gửi tới tác tử và tác tử có thể sử dụng các công cụ bộ nhớ trong quá trình phản hồi.
Kiểm thử bộ nhớ
Tiến hành xác minh khả năng lưu giữ thông tin của tác tử qua các phiên tương tác.
Trước hết, cung cấp một thông tin ưu tiên cần lưu trữ:
print(chat(
"Remember that I prefer Python and use uv "
"for managing my projects."
))
Kết quả:
I'll remember that you prefer Python and use `uv` to manage your projects.
Tiếp theo, đưa ra một câu hỏi liên quan
Nguồn tin: KDnuggets — Tác giả: Abid Ali Awan. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.