Đừng coi LangGraph là một chuỗi (chain) dài hơn
Đừng xem LangGraph như một phiên bản LangChain với nhiều bước hơn. Sai lầm đó sẽ dẫn đến các agent bị lỗi.
LangGraph dành cho các quy trình làm việc (workflows) yêu cầu state, các nhánh (branches), gọi công cụ (tool calls) và sự phê duyệt của con người. Nó dành cho các agent phải có khả năng phục hồi sau lỗi mà không cần khởi động lại.
Nếu bạn sử dụng nó, trước tiên bạn phải xác định ba thứ: state, interrupts và recovery.
Ranh giới đầu tiên: State Schema
Đối với một prompt đơn lẻ, ranh giới là văn bản. Đối với LangGraph, ranh giới là State schema. Bạn phải quyết định:
- Những trường (fields) nào được chuyển giữa các node.
- Những trường nào sẽ được một node cập nhật.
- Cách các nhánh song song hợp nhất (merge) các giá trị.
- Những giá trị nào được đưa vào một checkpoint.
- Những giá trị nào tuyệt đối không được lưu lại (persist).
Reducers đóng vai trò cực kỳ quan trọng ở đây. Nếu bạn không thiết lập một quy tắc phù hợp để nối thêm (append) các tin nhắn, các tác vụ song song của bạn sẽ làm mất dữ liệu.
Hãy bắt đầu từ những thứ nhỏ nhất. Xây dựng một đồ thị (graph) với một schema, một node và một reducer. Nếu bạn không thể làm cho điều đó hoạt động, việc thêm các công cụ (tools) sẽ chỉ làm che lấp các lỗi của bạn mà thôi.
Ranh giới Runtime
Trước khi bạn gọi compile(), đồ thị của bạn chỉ là một bản mô tả. Sau khi gọi compile(), runtime sẽ tiếp quản.
Khi một đồ thị gặp lỗi, đừng chỉ nhìn vào node. Hãy kiểm tra bốn điều sau:
- State schema có cho phép node ghi key đó không?
- Node có trả về một trường State hợp lệ không?
- Reducer có hợp nhất dữ liệu một cách chính xác không?
- Conditional edge có đường thoát (exit path) không?
Con người trong vòng lặp (Human In The Loop)
Đừng coi việc phê duyệt của con người là một tính năng UI. Hãy coi đó là một hợp đồng của đồ thị (graph contract).
Một mô hình đáng tin cậy sẽ trông như thế này:
- Model đề xuất một lệnh gọi công cụ (tool call).
- Đồ thị tạo ra một interrupt.
- Con người phê duyệt hoặc chỉnh sửa hành động.
- Đồ thị tiếp tục chạy từ chính điểm đó.
Điều này giúp các agent có khả năng phục hồi thay vì chỉ mang tính phản ứng (reactive).
Danh sách kiểm tra nhanh (Smoke Checklist)
Trước khi đưa vào môi trường production, hãy chạy thử bài kiểm tra này:
- Sử dụng một thư mục tạm thời không chứa dữ liệu production.
- Định nghĩa một State tối giản.
- Viết một node chỉ trả về các trường hợp lệ.
- Sử dụng một reducer cho các hành động nối thêm (append).
- Thêm một interrupt trước một hành động sử dụng công cụ.
- Thêm một checkpointer.
- Cố tình gây ra lỗi và xác minh hành vi tiếp tục (resume).
Nếu quy trình này thất bại, đừng thêm nhiều công cụ hơn. Vấn đề nằm ở ranh giới runtime của bạn.
LangGraph không dành cho các lệnh gọi model đơn lẻ. Hãy sử dụng nó khi AI của bạn cần thực hiện các công việc đa bước có thể kiểm tra (inspectable), tạm dừng (pausable) và xem xét (reviewable).
Optional learning community: https://t.me/GyaanSetuAi
