Thực hànhNâng cao

Checkpoint và phục hồi agent sau gián đoạn

Lưu trạng thái cần thiết để tiếp tục công việc, đồng thời xử lý kết quả công cụ và quyền đã thay đổi.

Trong bài viết này

Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.

Một agent đã đọc hai mươi tài liệu, tạo bản nháp và đang chờ duyệt thì tiến trình khởi động lại. Nếu ứng dụng chỉ giữ lịch sử trong RAM, nó có thể mất toàn bộ tiến độ. Nếu chỉ lưu hội thoại, nó vẫn có thể không biết thao tác tạo bản nháp đã thực sự hoàn tất hay chưa.

Tiên quyết: đọc state machine và hiểu idempotency. Bài này dùng một tác vụ tổng hợp tài liệu giả để phân biệt lưu trí nhớ với phục hồi thực thi.

Checkpoint là ảnh chụp trạng thái thực thi

Tài liệu persistence của LangGraph phân biệt checkpoint thuộc một thread với store dùng cho dữ liệu dài hạn qua nhiều thread. Phân biệt này hữu ích ngay cả khi bạn tự viết bộ điều phối: tiến độ của một công việc không phải sở thích lâu dài của người dùng.

Một checkpoint minh họa chứa các trường sau:

run_id, schema_version, state_version
phase, completed_steps, pending_step
artifact_ids, source_versions
operation_ids, verification_results
budget_remaining, authorization_reference

Không cần sao chép mọi tài liệu vào mỗi checkpoint. Có thể lưu định danh cùng phiên bản hoặc hash để tải lại đúng dữ liệu. Nhưng nếu nguồn chỉ tồn tại tạm thời, tham chiếu đơn thuần sẽ không giúp phục hồi; cần chính sách lưu bản chụp phù hợp với quyền và thời hạn dữ liệu.

Chọn điểm lưu theo ranh giới tác dụng phụ

Lưu sau mỗi token thường quá tốn kém và không giúp nhiều cho công việc nghiệp vụ. Lưu trước khi thực thi một thao tác có tác dụng phụ, ghi mã thao tác, rồi lưu kết quả xác nhận sau đó. Khoảng giữa hai lần lưu là nơi cần cơ chế đối soát.

Giả sử checkpoint cuối ghi CREATE_DRAFT_STARTED, nhưng tiến trình chết trước khi lưu draft_id. Khi tiếp tục, hệ thống tra cứu theo operation_id. Nếu bản nháp đã tồn tại, dùng lại nó; nếu chưa có và dịch vụ hỗ trợ retry an toàn, gửi lại cùng khóa. Không suy luận từ đoạn hội thoại “đang tạo bản nháp”.

Nhìn để hiểuAgent: hành động, quan sát, kiểm tra

Agent dùng trạng thái hiện tại để chọn công cụ, đọc kết quả thực thi và kiểm tra tiến độ. Vòng lặp tiếp tục trong giới hạn được đặt trước hoặc kết thúc với kết quả đã xác minh.

Vòng lặp có điều kiện dừng của agentAgent quan sát trạng thái, gọi công cụ, đọc kết quả thực thi rồi kiểm tra mục tiêu và giới hạn. Sơ đồ minh họa một tác vụ sắp xếp thư mục. Khi đã đạt mục tiêu hoặc chạm giới hạn, vòng lặp phải dừng; kết quả do công cụ xác nhận, không chỉ do mô hình tuyên bố.MỤC TIÊUSắp xếp thư mụcQuan sátGọi công cụĐọc danh sáchKết quả thậtKiểm traĐạt / giới hạn?Dừng

↔ Vuốt ngang để xem toàn bộ sơ đồ.

  1. 01 / Quan sát

    Agent nhận mục tiêu, trạng thái hiện tại và kết quả của các bước trước.

  2. 02 / Gọi công cụ

    Mô hình đề xuất công cụ và đầu vào; ứng dụng kiểm tra quyền trước khi thực thi.

  3. 03 / Đọc kết quả

    Agent nhận dữ liệu trả về, bao gồm thành công, dữ liệu rỗng hoặc lỗi.

  4. 04 / Kiểm tra và dừng

    Kiểm tra mục tiêu đã đạt chưa. Dừng khi hoàn thành, thiếu quyền hoặc chạm giới hạn; nếu cần thì tiếp tục.

Minh họa một vòng lặp agent đơn giản. Công cụ chỉ được thực hiện thao tác trong quyền đã cấp; lời mô hình nói không thay thế kết quả thực thi.

Vòng lặp minh họa việc quan sát rồi hành động. Checkpoint bổ sung khả năng lưu và khôi phục vòng lặp; sơ đồ không tự đảm bảo các thao tác chỉ diễn ra một lần.

Phục hồi phải kiểm tra môi trường hiện tại

Một checkpoint hợp lệ hôm qua chưa chắc đủ quyền hôm nay. Trước khi tiếp tục, kiểm tra phiên còn hiệu lực, người dùng vẫn có quyền với nguồn và bản đề xuất chưa thay đổi. Lưu tham chiếu quyền để truy vết, nhưng không coi việc từng được phép là giấy phép vĩnh viễn.

Phiên bản mã cũng là vấn đề. Nếu checkpoint cũ có trạng thái WAITING, còn mã mới chỉ hiểu AWAITING_APPROVAL, việc tải thẳng có thể chạy sai nhánh. Gắn phiên bản schema và viết phép chuyển đổi rõ ràng; trường hợp không chuyển được cần dừng với lý do có thể xử lý.

Checkpoint thường xuyên giảm lượng công việc phải làm lại nhưng tăng ghi dữ liệu và lưu trữ. Checkpoint thưa tiết kiệm tài nguyên nhưng làm khoảng không chắc chắn lớn hơn. Ưu tiên điểm thay đổi quyền, hoàn tất công cụ đắt và trước bước phải chờ con người, thay vì chỉ dùng một khoảng thời gian cố định.

Chứng minh khả năng phục hồi bằng cách gây gián đoạn

Bài tập: tạo tác vụ ba bước gồm đọc nguồn, tạo bản nháp và kiểm tra bản nháp. Dừng tiến trình ở bốn vị trí: trước gọi công cụ, sau tác dụng phụ, sau lưu kết quả và trong lúc chờ duyệt. Khởi động lại từ checkpoint cho từng trường hợp.

Tự kiểm: không có bản nháp trùng; bước đã hoàn tất không tốn thêm lượt gọi không cần thiết; ngân sách không được đặt lại; quyền hết hạn chặn bước ghi; phiên bản nguồn được ghi nhận. Thêm một checkpoint có schema cũ để kiểm tra đường di trú hoặc thông báo không tương thích.

Không cần chứng minh mọi kiểu hỏng ngay từ đầu. Cần biết chính xác những điểm đã thử và tình huống nào còn phải đối soát thủ công. Đọc tiếp observability để nối lần chạy trước và sau gián đoạn thành một lịch sử có thể điều tra.

Bạn muốn hiểu điều gì?

Khám phá tất cả bài viết esc để đóng