Stateful Graph Orchestration Thực hiện lâu dài và các điểm kiểm soát
Type: Learn + Build
Languages: Python (stdlib)
Prerequisites: Phase 14 · 01 (Agent Loop), Phase 14 · 12 (Workflow Patterns)
Time: ~75 minutes
Mục tiêu học tập
- Mô tả mô hình cốt lõi của LangGraph: máy trạng thái với trạng thái đánh dấu, nút chức năng, cạnh điều kiện và các điểm kiểm tra sau nút.
- Hãy nêu tên bốn khả năng mà các tài liệu nhấn mạnh: thực hiện bền, phát trực tuyến, người trong vòng lặp, bộ nhớ toàn diện.
- Giải thích ba topology dàn xếp LangGraph hỗ trợ: giám sát, peer-to-peer (swarm), bậc phân cấp (năm subgraph).
- Thực hiện biểu đồ trạng thái stdlib với trạng thái nhập, cạnh có điều kiện và chu kỳ kiểm soát/thường hồi.
Vấn đề
Các đại lý và dòng công việc chia sẻ một vấn đề: khi một lần chạy 40 bước thất bại ở bước 38, bạn muốn tiếp tục từ bước 38, chứ không phải bắt đầu lại. Các mô hình trạng thái hạng hai để cho các nhà điều hành hack lại các thử nghiệm xung quanh thư viện giả định chạy mới.
Câu trả lời thiết kế của LangGraph: trạng thái là một đối tượng đánh chữ hạng nhất, đột biến là rõ ràng, và các điểm kiểm soát tồn tại sau mỗi nút.load_state(session_id)gọi.
Khái niệm
Hình đồ
Một biểu đồ được định nghĩa bởi:
- State type.Một lệnh đánh dấu (hoặc mô hình Pydantic) mà mỗi nút đọc và đột biến.
- Nodes.Các chức năng tinh khiết
(state) -> state_updateCác bản cập nhật được hợp nhất thành trạng thái sau khi trở về. - Edges.Chuyển đổi điều kiện hoặc trực tiếp giữa các nút.
- Entry and exit.
STARTvàENDCác nút Sentinel đánh dấu ranh giới.
Ví dụ: một đại lý với classify- refund- bug- sales- donenút một dòng công việc định tuyến như một biểu đồ.
Thực hiện lâu dài
Sau khi mỗi nút trở lại, runtime sẽ xoay quanh trạng thái và viết nó vào một điểm kiểm tra (SQLite, Postgres, Redis, tùy chỉnh).resume(session_id)và bắt đầu từ bước N + 1 với trạng thái chính xác.
Các tài liệu LangGraph rõ ràng nhấn mạnh người dùng sản xuất nơi đây quan trọng: Klarna, Uber, JP Morgan.
Chuyển phát
Mỗi nút có thể tạo ra một phần đầu ra. biểu đồ truyền các sự kiện delta mỗi nút đến người gọi để UI cập nhật khi biểu đồ chạy.
Người trong vòng lặp
Kiểm tra và sửa đổi trạng thái giữa các nút. Thực hiện: tạm dừng trước một nút quan trọng, trạng thái bề mặt cho một con người, chấp nhận sửa đổi, tiếp tục. Điểm kiểm tra làm cho điều này dễ dàng bởi vì trạng thái đã được phân phối theo chuỗi.
Tưởng thức
Giao diện LangGraph tích hợp với các hệ thống bộ nhớ bên ngoài (Mem0, tùy chỉnh) thông qua các công cụ.
Ba topology
- Supervisor.Các bộ định tuyến trung tâm LLM gửi cho các chuyên gia phụ.
create_supervisor()tronglanggraph-supervisor(mặc dù nhóm LangChain vào năm 2026 khuyên nên làm điều này thông qua các công cụ gọi trực tiếp cho sự kiểm soát bối cảnh nhiều hơn). - Swarm / peer-to-peer.Các nhân viên giao thông trực tiếp qua một công cụ chung không có bộ định tuyến trung tâm.
- Hierarchical.Giám sát viên quản lý các giám sát viên phụ, được thực hiện như các hình phụ tổ.
Khi mô hình này đi sai
- Checkpoints too small.Chỉ cần kiểm tra các vòng quay cuộc trò chuyện để lại trạng thái công cụ và bộ nhớ viết không thể phục hồi.
- Non-deterministic nodes.Thử nghiệm lại giả định đầu vào nút tạo ra cùng một cập nhật trạng thái. hạt giống ngẫu nhiên, đồng hồ tường, API bên ngoài phải được chụp.
- Over-use of conditional edges.Một biểu đồ với mọi cạnh điều kiện là một máy trạng thái mà không thể lý luận về.
Hãy xây dựng nó
code/main.pythực hiện biểu đồ trạng thái stdlib:
Statemột lệnh đánh dấu vớimessages-step-route-output-human_approval- Tôi không biết.Nodeđược gọi là nhận trạng thái và trả lại một bản cập nhật lệnh.StateGraphnút + cạnh + cạnh điều kiện + chạy + tiếp tục.SQLiteCheckpointer(trong bộ nhớ giả) tựa trạng thái sau mỗi nút;load(session_id)phục hồi.- Một biểu đồ demo: phân loại -> chi nhánh(chuyển / lỗi / bán hàng) -> cổng con người -> gửi.
Đi đi.
python3 code/main.pyHình ảnh cho thấy lần chạy đầu tiên thất bại ở cổng của con người, kiên trì, sau đó tiếp tục sản xuất sản xuất cuối cùng.
Sử dụng nó
- LangGraph tài liệu tham chiếu, sẵn sàng sản xuất.
create_react_agent-create_supervisor, hoặc xây dựng biểu đồ của riêng bạn. - AutoGen v0.4(Dạy 14) mô hình diễn viên thay thế cho các kịch bản cạnh tranh cao.
- Claude Agent SDK(Dạy 17) quản lý vòng xoáy với cửa hàng phiên tích hợp.
- Custom khi bạn cần kiểm soát chính xác hình dạng trạng thái hoặc backend điểm kiểm tra.
Chuyển nó
outputs/skill-state-graph.mdtạo ra một biểu đồ trạng thái hình LangGraph trong bất kỳ thời gian chạy mục tiêu nào với kiểm tra và tiếp tục được kết nối.
Các bài tập
- Thêm một cạnh điều kiện từ
classifyđếnendkhi sự tin tưởng phân loại dưới ngưỡng.routetay. - Thay đổi các SQLite giống giả với một SQLite thực sự kiểm tra điểm.
- Thực hiện cạnh song song: hai nút chạy đồng thời, hợp nhất bằng một bộ giảm tùy chỉnh.
- Đọc
langgraph-supervisorĐưa đồ chơi vàocreate_supervisorSo sánh hình dạng dấu vết. - Thêm streaming: mỗi nút sẽ có trạng thái một phần trong khi nó chạy. Bác in các delta khi chúng đến.
Các điều khoản chính
| Term | What people say | What it actually means |
|---|---|---|
| State graph | "Agent as state machine" | Typed state + nodes + edges + reducers |
| Checkpointer | "Persistence backend" | Serializes state after every node; enables resume |
| Reducer | "State merger" | Function that combines current state with a node's update |
| Conditional edge | "Branch" | Edge chosen by a function of state |
| Subgraph | "Nested graph" | A graph used as a node inside another graph |
| Durable execution | "Resume from failure" | Restart at the last successful node with exact state |
| Supervisor | "Router LLM" | Central dispatcher for specialist subagents |
| Swarm | "P2P agents" | Agents hand off via shared tools; no central router |
Đọc thêm
- LangGraph overview các tài liệu tham chiếu
- langgraph-supervisor reference API mô hình giám sát
- AutoGen v0.4, Microsoft Research Đổi thay cho người diễn viên-chương mẫu
- Claude Agent SDK overview cửa hàng phiên và các bộ phận phụ
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.