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

Xây dựng bộ nhớ tác nhân AI bền vững, có kiểu dữ liệu với loci

Tìm hiểu cách cài đặt loci, lưu trữ và truy xuất thông tin bền vững về người dùng, chèn bộ nhớ được xếp hạng vào lời nhắc, cũng như lựa chọn giữa các phương thức tích hợp MCP, Hermes và Python trực tiếp.

Xây dựng bộ nhớ tác nhân AI bền vững, có kiểu dữ liệu với loci

loci là gì?

loci là một lớp bộ nhớ dài hạn có kiểu dành cho các tác nhân AI. Nó trích xuất các dữ kiện bền vững từ cuộc hội thoại, lưu trữ chúng trong SQLite, xếp hạng để có thể truy hồi sau này và loại bỏ những thông tin không còn hữu ích.

Dự án dựa trên ý tưởng rằng bộ nhớ cần cả địa điểm lẫn cấu trúc. Thay vì coi mọi phát biểu được lưu như nhau, loci phân biệt các tùy chọn, thời hạn, mục tiêu, mối quan hệ và những loại thông tin khác để chúng có thể tuân theo các vòng đời phù hợp.

loci được chuyển thể từ hệ thống bộ nhớ đang được Lima sử dụng trong môi trường production và được viết lại để không phụ thuộc vào bất kỳ ứng dụng máy chủ cụ thể nào.

Hệ thống bộ nhớ hoạt động như thế nào

Bộ nhớ có kiểu

Mỗi bộ nhớ thuộc một trong tám danh mục:

  • routine
  • study
  • preferences
  • finance
  • goals
  • relationships
  • constraints
  • ephemeral

Bộ nhớ cũng có bốn mức độ quan trọng và một vòng đời trạng thái. Cấu trúc này cho phép hệ thống xử lý một tùy chọn lâu dài khác với một thời hạn tạm thời hoặc một dữ kiện tồn tại trong thời gian ngắn.

Hai quy trình trích xuất

Việc trích xuất kết hợp hai cơ chế. Bộ trích xuất dựa trên mô hình đọc một lượt trao đổi để hiểu ý nghĩa, trong khi các heuristic biểu thức chính quy phát hiện những cách diễn đạt được hỗ trợ rõ ràng. Các kết quả được hợp nhất, trong đó đầu ra của mô hình được ưu tiên.

Quy trình biểu thức chính quy vẫn có thể tiếp tục chạy khi nhà cung cấp mô hình không khả dụng. Các lệnh gọi mô hình, SDK của nhà cung cấp và khóa API được cố ý để cho ứng dụng máy chủ đảm nhiệm, ứng dụng này có thể inject một ModelExtractor.

Lọc, xếp hạng và suy giảm

Bộ lọc ghi ngăn tâm trạng nhất thời và những phát biểu ngắn hạn tương tự trở thành dữ liệu hồ sơ vĩnh viễn. Ví dụ, một phát biểu như “Hôm nay mệt” có thể đúng trong vài giờ nhưng gây hiểu lầm vài tháng sau.

Khi bộ nhớ được thêm vào ngữ cảnh của mô hình, loci giới hạn kết quả ở mười hai dữ kiện. Nó xếp hạng chúng theo mức độ quan trọng, sau đó xem xét thời gian còn lại đến hạn và độ mới. Giới hạn này ngăn prompt tăng trưởng không giới hạn.

Việc hợp nhất và suy giảm hằng ngày giúp kho lưu trữ luôn hữu ích:

  • Các bản sao trùng khớp hoàn toàn được hợp nhất.
  • Những phỏng đoán chưa được xác nhận cuối cùng sẽ hết hạn.
  • Dữ kiện tạm thời có thời gian tồn tại 24 giờ.
  • Mục tiêu đã hoàn thành sẽ hết hạn sau 90 ngày.

Chọn một phương thức tích hợp

loci cung cấp một lõi dùng chung và hai bộ điều hợp.

Máy chủ MCP

Bộ điều hợp MCP hoạt động với mọi ứng dụng khách MCP tương thích. Nó cung cấp ba công cụ: remember, recall và forget.

MCP hoạt động theo mô hình yêu cầu và phản hồi, vì vậy không có hook tự động ở cuối lượt. Tác nhân phải chủ động gọi remember. Bộ nhớ có thể được truy hồi và inject vào ngữ cảnh theo yêu cầu.

Plugin Hermes

Bộ điều hợp Hermes cung cấp cùng ba công cụ đó, đồng thời hỗ trợ trích xuất tự động và inject ngữ cảnh trước mỗi lần gọi. Điều này có thể thực hiện vì Hermes cung cấp hook post_llm_call, cho phép kiểm tra một lượt trao đổi sau khi mô hình phản hồi.

Tích hợp Python trực tiếp

Sử dụng trực tiếp thư viện lõi khi bạn kiểm soát vòng lặp của tác nhân và muốn tự quyết định thời điểm diễn ra việc trích xuất, lưu trữ, truy hồi và inject ngữ cảnh.

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

Cài đặt gói lõi

pip install mowave-loci

Cài đặt hỗ trợ MCP

pip install mowave-loci[mcp]

Sau khi cài đặt phần bổ sung MCP, hãy thêm loci vào cấu hình ứng dụng khách MCP:

{
  "mcpServers": {
    "loci": {
      "command": "python",
      "args": ["-m", "loci.adapters.mcp_server.server"]
    }
  }
}

Khởi động lại hoặc tải lại ứng dụng khách để ứng dụng phát hiện các công cụ remember, recall và forget.

Cài đặt plugin Hermes

hermes plugins install <you>/loci
hermes plugins enable loci

Thay <you>/loci bằng kho plugin hoặc nguồn phù hợp với bản cài đặt của bạn.

Cấu hình bộ nhớ lưu trữ

Theo mặc định, loci lưu bộ nhớ trong cơ sở dữ liệu SQLite tại ~/.loci/memory.db. Đặt biến môi trường LOCI_DB để sử dụng một tệp khác.

export LOCI_DB=/path/to/memory.db

Không cần máy chủ cơ sở dữ liệu riêng.

Sử dụng cơ bản trong Python

Quy trình cốt lõi là tạo một kho lưu trữ, trích xuất các bộ nhớ tiềm năng, lọc chúng, lưu các bộ nhớ được chấp nhận và thêm các bộ nhớ đang hoạt động vào system prompt.

from loci import Store, extract, should_persist, context_block

store = Store()

for memory in extract(
    "eu prefiro respostas curtas",
    assistant_text=reply,
):
    if should_persist(memory):
        store.upsert(memory)

system_prompt += "\n\n" + context_block(store.active())

Trong ví dụ này, reply đại diện cho nội dung của trợ lý đi kèm với lượt trao đổi. Tin nhắn tiếng Bồ Đào Nha của người dùng có nghĩa là người dùng thích các câu trả lời ngắn.

  1. Store() mở kho bộ nhớ SQLite đã cấu hình.
  2. extract(...) tạo ra các bộ nhớ tiềm năng từ lượt trao đổi.
  3. should_persist(memory) áp dụng bộ lọc ghi.
  4. store.upsert(memory) chèn hoặc cập nhật bộ nhớ được chấp nhận.
  5. store.active() truy xuất các bộ nhớ đang hoạt động.
  6. context_block(...) định dạng các bộ nhớ đó để inject vào prompt.

Sử dụng các công cụ MCP

Sau khi máy chủ MCP được cấu hình, tác nhân được kết nối có thể sử dụng ba thao tác:

  • remember: chủ động lưu một thông tin cần được duy trì.
  • recall: truy xuất thông tin đã lưu khi thông tin đó liên quan.
  • forget: xóa thông tin không nên tiếp tục được lưu giữ.

Vì bộ điều hợp MCP không tự động trích xuất ký ức, hướng dẫn tác nhân cần nêu rõ khi nào tác nhân phải gọi remember. Đừng mặc định rằng mọi lượt hội thoại đã hoàn tất đều sẽ được kiểm tra và lưu lại.

Mẹo tích hợp nâng cao

Giữ logic của nhà cung cấp bên ngoài lõi

Lõi loci chỉ sử dụng thư viện chuẩn của Python. Ứng dụng của bạn chịu trách nhiệm gọi mô hình, khóa API và các SDK của nhà cung cấp. Nếu việc trích xuất ngữ nghĩa cần đến mô hình, hãy truyền vào một ModelExtractor từ máy chủ thay vì thêm các phần phụ thuộc của nhà cung cấp vào lõi.

Chạy các tác vụ vòng đời từ máy chủ

loci định nghĩa cấu trúc bộ nhớ, hành vi hợp nhất và suy giảm, nhưng không lập lịch công việc hằng ngày. Hãy sử dụng cron, s6, systemd hoặc bộ lập lịch tương đương của máy chủ để kích hoạt các tác vụ hằng ngày.

Duy trì giới hạn ngữ cảnh

Tránh bỏ qua khối ngữ cảnh đã xếp hạng bằng cách thêm toàn bộ cơ sở dữ liệu vào mọi lời nhắc. Giới hạn mười hai thông tin tồn tại để kiểm soát mức tăng của ngữ cảnh, đồng thời ưu tiên thông tin quan trọng, kịp thời và mới nhất.

Sử dụng bộ điều hợp phù hợp

  • Chọn MCP khi khả năng di động giữa các ứng dụng khách MCP là quan trọng và các thao tác bộ nhớ tường minh được chấp nhận.
  • Chọn Hermes khi bạn muốn tự động trích xuất sau các lần gọi mô hình và chèn bộ nhớ trước mỗi lần gọi.
  • Chọn API Python trực tiếp khi ứng dụng của bạn quản lý vòng lặp tác nhân và cần kiểm soát chính xác việc lưu trữ cũng như xây dựng lời nhắc.

Để máy chủ quản lý lớp truyền tải và các phiên

Vòng lặp tác nhân, điều phối công cụ, các phiên, lớp truyền tải và xác thực nằm ngoài phạm vi trách nhiệm của lõi. Các máy chủ như Hermes, OpenClaw hoặc Claude Code quản lý môi trường chạy xung quanh, trong khi các bộ điều hợp xử lý lớp truyền tải và xác thực dành riêng cho từng máy chủ.

Chạy bộ kiểm thử

pytest -q

Dự án bao gồm 92 bài kiểm thử chạy trên một kho SQLite thực trong một tệp tạm thời. Bản thân kho không được mô phỏng, nhờ đó giúp xác minh hành vi trên cùng công nghệ lưu trữ được sử dụng trong các lần triển khai thực tế.

Kết luận

loci cung cấp cho các tác nhân AI một lớp bộ nhớ gọn nhẹ, có kiểu dữ liệu và bền vững mà không cần máy chủ riêng. Lõi dùng chung xử lý cấu trúc và vòng đời bộ nhớ, còn MCP, Hermes hoặc tác nhân Python của riêng bạn cung cấp môi trường chạy xung quanh. Hãy bắt đầu với bộ điều hợp phù hợp với máy chủ của bạn, xác định rõ trách nhiệm trích xuất và lập lịch, đồng thời sử dụng tính năng chèn ngữ cảnh đã xếp hạng để ngăn bộ nhớ lấn át lời nhắc.