AI và LLMAgent

Checkpoint LangGraph và bộ nhớ dài hạn

Lưu bền vững các agent LangGraph trên HotKV. Tạm dừng, tiếp tục và du hành thời gian qua trạng thái đồ thị, và giữ bộ nhớ dài hạn có thể tìm theo ý nghĩa.

bài kiểm tra tuân thủ đã vượt qua
81
bộ lưu
Đồng bộ + bất đồng bộ
cần giấy phép
Không
Bước 1 trên 6
Cài đặt

Một gói cho cả checkpointer và store. Python 3.10 trở lên.

Phiên ví dụplaying
# Cài đặt
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

Một hướng dẫn minh họa động với các lệnh HotKV thật và phản hồi ví dụ. Nhấn vào bất kỳ bước nào để nhảy tới đó. Lệnh và phản hồi giữ nguyên bằng tiếng Anh, đúng như bạn gõ và thấy trong HotKV.

Vấn đề

Một agent LangGraph giữ trạng thái trong bộ nhớ tiến trình sẽ mất tất cả khi khởi động lại. Các bước phê duyệt có người tham gia không thể chờ qua đêm, các lần chạy thất bại không thể tiếp tục, và không điều gì agent đã học được sống sót đến cuộc hội thoại sau.

HotKV xử lý như thế nào

langgraph-checkpoint-hotkv lưu các checkpoint của mỗi đồ thị trong HotKV. Một đồ thị có thể bị ngắt và tiếp tục, hoặc tua lại tới bất kỳ bước nào trước đó và rẽ nhánh từ đó. Store đi kèm giữ bộ nhớ dài hạn xuyên các thread, được tìm theo namespace, theo bộ lọc hoặc, với một mô hình embedding, theo ý nghĩa.

Từng bước một

Điều gì xảy ra, từng lệnh một

  1. 01

    Cài đặt

    Một gói cho cả checkpointer và store. Python 3.10 trở lên.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Biên dịch với checkpointer HotKV

    Giờ mỗi bước của đồ thị đều được lưu trong HotKV.

    graph = builder.compile(checkpointer=HotKVSaver(hotkv.from_url("hotkv://localhost:6379")), interrupt_before=["refund"])
  3. 03

    Chạy cho đến khi cần phê duyệt

    Đồ thị đi qua các bước của nó, lưu một checkpoint sau mỗi bước, và dừng trước khi hoàn tiền.

    graph.invoke({"messages": [("user", "Refund order 1182")]}, {"configurable": {"thread_id": "t-81"}})
  4. 04

    Vài giờ sau, sau khi khởi động lại

    Tiến trình đã khởi động lại qua đêm. Trạng thái vẫn còn trong HotKV, chờ ở cùng bước đó.

    graph.get_state({"configurable": {"thread_id": "t-81"}}).next
  5. 05

    Phê duyệt và tiếp tục

    Người phê duyệt đồng ý và đồ thị tiếp tục từ checkpoint đã lưu.

    graph.invoke(None, {"configurable": {"thread_id": "t-81"}})
  6. 06

    Ghi nhớ xuyên các thread

    Bộ nhớ dài hạn nằm trong store và được tìm lại trong bất kỳ cuộc hội thoại nào sau đó.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Phù hợp ở đâu

Các tình huống thực tế

Quy trình có con người tham gia

Hoàn tiền, thay đổi hợp đồng và triển khai production chờ một người phê duyệt, trong vài phút hoặc vài ngày, mà không phải giữ một tiến trình mở.

Agent nghiên cứu chạy lâu

Một lần chạy thất bại ở bước 40 tiếp tục từ bước 40 thay vì bắt đầu lại.

Gỡ lỗi và đánh giá

Quay lại bất kỳ checkpoint nào trước đó, đổi đầu vào và rẽ nhánh, để xem agent sẽ hành xử thế nào.

Tích hợp sẵn

Bạn nhận được gì

Checkpointer

HotKVSaver và AsyncHotKVSaver giữ trạng thái đồ thị giữa các lần chạy, với ngắt, tiếp tục và du hành thời gian.

Store dài hạn

HotKVStore giữ các mục xuyên các thread, tìm được theo namespace, bộ lọc hoặc ý nghĩa, với thời hạn tùy chọn.

Đã kiểm thử tuân thủ

Vượt qua bộ kiểm tra tuân thủ checkpointer của chính LangGraph, 81 bài kiểm tra trong 8 khả năng, cho cả hai bộ lưu.

Không module, không giấy phép

Dùng các kiểu dữ liệu lõi của HotKV và chỉ mục vector của nó, và hoạt động có hoặc không có giấy phép enterprise.

Checkpointer và store

python
from langgraph.checkpoint.hotkv import HotKVSaver

with HotKVSaver.from_conn_string("hotkv://localhost:6379") as checkpointer:
    graph = builder.compile(checkpointer=checkpointer)
    graph.invoke({"messages": [("user", "hi")]}, {"configurable": {"thread_id": "1"}})

Câu hỏi thường gặp

Tôi có cần giấy phép enterprise không?

Không. Checkpointer và store dùng các kiểu dữ liệu lõi và chỉ mục vector của HotKV, và hoạt động trên máy chủ có hoặc không có giấy phép.

Có hỗ trợ bất đồng bộ không?

Có. AsyncHotKVSaver và AsyncHotKVStore hoạt động với ainvoke và astream.

Nhiều ứng dụng có thể dùng chung một máy chủ không?

Có. Mọi thứ được lưu dưới một tiền tố khóa, mặc định là langgraph, bạn có thể đổi theo từng ứng dụng hoặc môi trường.

Trường hợp sử dụng liên quan

Thử trên khối lượng công việc của chính bạn

HotKV nói giao thức Redis, nên bạn có thể trỏ một client hiện có tới nó và chạy chính những lệnh này.