Chuyển đến nội dung chính
Hướng dẫn AI

Xây dựng bộ nhớ bền vững cho tác nhân AI với AIrecall

Tìm hiểu cách cài đặt AIrecall, khởi tạo bộ lưu trữ cục bộ bền vững, lưu các cuộc trò chuyện và thông tin hữu ích lâu dài, truy xuất ký ức liên quan, đồng thời kết nối trình truy xuất của AIrecall với một framework tác nhân. Hướng dẫn cũng giải thích về truy xuất kết hợp, tự động tóm tắt, các tùy chọn triển khai và những bước khắc phục sự cố phổ biến.

Xây dựng bộ nhớ bền vững cho tác nhân AI với AIrecall

AIrecall là gì?

AIrecall là một lớp bộ nhớ dài hạn có thể tích hợp trực tiếp cho các tác nhân AI. Công cụ này bảo toàn thông tin hữu ích giữa các phiên làm việc, thay vì buộc tác nhân chỉ dựa vào cửa sổ ngữ cảnh hiện tại. Dự án kết hợp SDK Python, máy chủ bộ nhớ Go, bộ lưu trữ SQLite và một chỉ mục vector trong tiến trình.

AIrecall được thiết kế để giữ cho các prompt tập trung. Thay vì chèn toàn bộ lịch sử tương tác vào mỗi yêu cầu, tác nhân của bạn có thể truy xuất những ký ức phù hợp nhất với lượt hiện tại.

Các loại bộ nhớ và tính năng chính

  • Bộ nhớ tình tiết: Lưu trữ các sự kiện theo thứ tự, bao gồm cuộc trò chuyện, hành động và kết quả.
  • Bộ nhớ ngữ nghĩa: Bảo toàn các sự kiện và tùy chọn lâu dài được chắt lọc từ những tình tiết trước đó.
  • Truy xuất kết hợp: Kết hợp đối sánh từ khóa với độ tương đồng vector trên cả bộ nhớ tình tiết và ngữ nghĩa.
  • Tóm tắt tự động: Định kỳ nén các tình tiết cũ và trích xuất sự kiện lâu dài thay vì chỉ xóa lịch sử.
  • Lưu trữ cục bộ bền vững: Sử dụng SQLite cùng chỉ mục vector trong tiến trình.
  • Vận hành linh hoạt: Máy chủ bộ nhớ có thể chạy cục bộ hoặc dưới dạng sidecar.

AIrecall hoạt động như thế nào?

Trong mỗi lượt, SDK Python gửi truy vấn hiện tại đến AIrecall Core thông qua một lệnh gọi cục bộ hoặc gRPC. Core tìm kiếm bộ nhớ tình tiết và ngữ nghĩa bằng từ khóa và độ tương đồng vector, xếp hạng kết quả, rồi trả về những ký ức liên quan nhất để chèn vào prompt của tác nhân.

Ở chế độ nền, một trình tóm tắt xử lý các tình tiết cũ. Trình này trích xuất thông tin lâu dài vào bộ nhớ ngữ nghĩa và thu gọn phần lịch sử còn lại, giúp các tác nhân chạy lâu dài duy trì kiến thức hữu ích mà không liên tục mở rộng ngữ cảnh đang hoạt động.

Cài đặt và thiết lập

Cài đặt SDK Python

Cài đặt gói được tác nhân Python của bạn import:

pip install airecall-sdk

Khởi tạo bộ nhớ cục bộ

Tạo khung cho kho bộ nhớ SQLite cục bộ bằng giao diện dòng lệnh:

airecall init

Thiết lập này cho phép bạn bắt đầu lưu trữ và truy xuất ký ức ngay lập tức mà không cần một dịch vụ riêng.

Cài đặt hoặc chạy máy chủ bộ nhớ

Nếu muốn máy chủ bộ nhớ Core khả dụng cục bộ hoặc dưới dạng sidecar, hãy cài đặt phần bổ sung máy chủ:

pip install airecall-sdk[server]

Sau đó, bạn có thể chạy máy chủ dưới dạng một tiến trình độc lập:

airecall serve

Bản thân SDK chỉ sử dụng thư viện chuẩn. Theo README của dự án, máy chủ sử dụng một phần phụ thuộc Go thuần.

Cách sử dụng cơ bản

Tạo một phiên bản Memory

Import Memory và gán mã định danh cho tác nhân:

from airecall import Memory

memory = Memory(agent_id="support-bot")

agent_id xác định tác nhân có ký ức được lưu trữ và truy xuất. Hãy sử dụng cùng một mã định danh khi muốn các phiên sau truy cập cùng một tập hợp ký ức.

Lưu trữ bộ nhớ tình tiết

Sử dụng remember để ghi lại điều đã xảy ra trong một tương tác:

memory.remember(
    "User asked about refund policy for order ORD-9921, told 30-day window applies."
)

Đây là bộ nhớ tình tiết vì nó ghi lại một sự kiện cụ thể và kết quả của sự kiện đó.

Truy xuất ngữ cảnh liên quan

Trong một phiên sau đó, gọi recall với câu hỏi hiện tại:

context = memory.recall(
    "what did we tell this user about refunds?"
)

AIrecall tìm kiếm các ký ức đã lưu và trả về tình tiết liên quan được xếp hạng theo mức độ phù hợp. Sau đó, ứng dụng của bạn có thể thêm ngữ cảnh được trả về vào prompt gửi cho mô hình.

Lưu trữ một sự kiện lâu dài

Thông tin cần tiếp tục hữu ích ngoài một sự kiện có thể được chủ động đưa vào bằng remember_fact:

memory.remember_fact(
    key="preferred_contact",
    value="email, not phone"
)

Thao tác này tạo bộ nhớ ngữ nghĩa cho một tùy chọn ổn định thay vì chỉ ghi thêm một tình tiết theo trình tự thời gian.

Sử dụng bộ chuyển đổi LangChain

AIrecall tích hợp một bộ chuyển đổi LangChain có tên MemoryRetriever. Bọc một phiên bản Memory hiện có để tạo trình truy xuất:

from airecall import Memory
from airecall.adapters.langchain import MemoryRetriever

memory = Memory(agent_id="support-bot")
retriever = MemoryRetriever(memory)

README minh họa cách tạo bộ chuyển đổi nhưng không nêu cấu hình bổ sung cho chain hoặc trình truy xuất. Hãy tuân theo API hiện tại của bộ chuyển đổi khi tích hợp đối tượng được tạo vào một ứng dụng LangChain lớn hơn.

Mẫu tích hợp thực tế

  1. Tạo một phiên bản Memory cho tác nhân.
  2. Trước khi tạo phản hồi, gọi recall với truy vấn hiện tại của người dùng.
  3. Chèn những ký ức liên quan được trả về vào prompt của mô hình làm ngữ cảnh hỗ trợ.
  4. Sau tương tác, gọi remember để lưu sự kiện, hành động hoặc kết quả quan trọng.
  5. Sử dụng remember_fact khi ứng dụng xác định một tùy chọn hoặc sự kiện lâu dài cần được lưu giữ một cách rõ ràng.

Mẫu này tránh đưa toàn bộ lịch sử vào mọi prompt, đồng thời vẫn cho phép tác nhân truy cập các quyết định trước đây và tùy chọn của người dùng khi cần.

Mẹo nâng cao

Tách sự kiện khỏi kiến thức lâu dài

Sử dụng bộ nhớ tình tiết cho những gì đã xảy ra trong một tương tác cụ thể. Sử dụng bộ nhớ ngữ nghĩa cho các sự kiện và tùy chọn ổn định. Ví dụ, cuộc thảo luận về hoàn tiền thuộc về một tình tiết, trong khi tùy chọn liên lạc qua email của người dùng là một sự kiện lâu dài.

Giữ mã định danh tác nhân nhất quán

Chọn một agent_id ổn định cho các phiên cần dùng chung bộ nhớ. Việc thay đổi mã định danh sẽ tạo ra một phạm vi bộ nhớ khác theo góc nhìn của ứng dụng.

Chọn Chế Độ Triển Khai Phù Hợp

Đối với quy trình cục bộ đơn giản, hãy khởi tạo kho lưu trữ dựa trên SQLite bằng airecall init. Đối với kiến trúc cần một tiến trình bộ nhớ chuyên dụng, hãy cài đặt phần bổ sung máy chủ và chạy airecall serve cục bộ hoặc dưới dạng sidecar.

Cho Phép Chỉ Mục Khởi Động Hoàn Tất

Nếu truy vấn đầu tiên phát sinh RecallTimeout, chỉ mục vector có thể vẫn đang khởi động. Hãy thử lại sau khi endpoint kiểm tra trạng thái báo cáo status: ready.

Sử Dụng Đường Dẫn Lưu Trữ Đáng Tin Cậy

Nếu bộ nhớ dường như bị thiếu sau khi khởi động lại, hãy kiểm tra đường dẫn storage.backend. Đường dẫn tương đối được phân giải dựa trên thư mục làm việc của tiến trình máy chủ, vì vậy việc khởi chạy máy chủ từ một thư mục khác có thể trỏ máy chủ đến một kho lưu trữ khác. Hãy sử dụng thư mục làm việc hoặc đường dẫn lưu trữ nhất quán.

Kết Luận

AIrecall cung cấp cho các tác nhân AI bộ nhớ dài hạn theo tập và ngữ nghĩa mà không yêu cầu mọi tương tác cũ phải luôn nằm trong lời nhắc. Với API Python nhỏ gọn, bộ lưu trữ dựa trên SQLite, tính năng truy xuất kết hợp và tóm tắt tự động, công cụ này mang đến một cách thiết thực để duy trì ngữ cảnh liên quan giữa các phiên. Bắt đầu bằng airecall init, ghi lại các tập bằng remember, truy xuất chúng bằng recall và lưu kiến thức lâu dài bằng remember_fact.