Phase 14: Agent Engineering

گروه بندی نمودار دولتی اجرای پایدار و نقاط بازرسی

عامل یک دستگاه حالت است؛ گره ها عملکرد هستند؛ حاشیه ها انتقال هستند؛ حالت پس از هر گره کنترل می شود. از هر شکست در آخرین نقطه کنترل موفق بازگردانید. LangGraph مرجع 2026 برای این مدل آرکیستراسیون حالت دار سطح پایین است.

Type: Learn + Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 01 (Agent Loop), Phase 14 · 12 (Workflow Patterns)

Time: ~75 minutes

اهداف یادگیری

  • مدل اصلی LangGraph را توصیف کنید: ماشین حالت با حالت تایپ شده، گره های عملکرد، حاشیه های مشروط و نقاط بازرسی پس از گره.
  • چهار قابلیت که در اسناد برجسته شده است را نام دهید: اجرای پایدار، پخش، انسان در حلقه، حافظه جامع.
  • سه توپولوژی های ارتقایی که لانگ گراف پشتیبانی می کند را توضیح دهید: نظارت کننده، همتایی (سوارم) ، سلسله مراتبی (سبرگراف های سرپوش)
  • یک نمودار حالت stdlib را با حالت تایپ شده، حاشیه های مشروط و یک چرخه چک پوند / رزومه اجرا کنید.

مشکل

عوامل و جریان های کار یک مشکل مشترک دارند: وقتی یک اجرا 40 مرحله در مرحله 38 شکست می خورد، شما می خواهید از مرحله 38 شروع کنید، نه از نو شروع کنید. مدل های حالت درجه دوم باعث می شوند اپراتورها دوباره در یک کتابخانه که اجرا تازه را فرض می کند، هک کنند.

پاسخ طراحی LangGraph: حالت یک شی درجه اول تایپ شده است، جهش ها صریح هستند و نقاط بازرسی پس از هر گره باقی می مانند.load_state(session_id)تماس بگیر

مفهوم

نمودار

یک نمودار توسط:

  • State type.یک دیکت تایپ شده (یا مدل پیدانتیک) که هر گره می خواند و جهش می کند.
  • Nodes.عملکرد خالص(state) -> state_updateتازه ها بعد از بازگشت به ایالت ادغام می شوند.
  • Edges.انتقال مشروط یا مستقیم بین گره ها
  • Entry and exit. STARTوENDگرهاي نگهباني مرز رو نشان ميده

مثال: یک نماینده باclassify،refund،bug،sales،doneگره ها یک جریان کار روتینگ به عنوان یک نمودار.

اجرای پایدار

پس از بازگشت هر گره، زمان اجرا حالت را سریال می کند و آن را به یک چک پوائنتر (SQLite، Postgres، Redis، سفارشی) می نویسد. در صورت شکست در مرحله N، زمان اجرا می تواند resume(session_id)و از مرحله N+1 با حالت دقیق شروع کنید.

اسناد لانگ گراف به طور صریح کاربران تولید را که در آن این موضوع اهمیت دارد برجسته می کند: کلارنا، اوبر، ج. پی. مورگان. ادعای شکل نمودار نیست؛ این است که شکل نمودار به علاوه چکپینینگ بازیابی را ارزان تر می کند.

پخش

هر گره می تواند بخش از خروجی را به ارقام دهد. نمودار جریانات هر گره-دلتا را به تماس گیرنده می رساند تا UI ها در طول اجرا نمودار به روز شوند.

انسان در حال انجام کار

بررسی و تغییر حالت بین گره ها. پیاده سازی: توقف قبل از یک گره مهم، حالت سطح به یک انسان، پذیرش تغییرات، ادامه. چک پوائنتر این کار را آسان می کند زیرا حالت قبلاً سریال شده است.

حافظه

کوتاه مدت (در یک تاریخچه مکالمه در حالت اجرا) و بلند مدت (برابر اجرا) از طریق چک پوائنتر و یک فروشگاه طولانی مدت جداگانه دوام می آورد. LangGraph از طریق ابزارها با سیستم های حافظه خارجی (Mem0 ، سفارشی) ادغام می شود.

سه توپولوژی

  1. Supervisor.روتر مرکزی LLM به افراد متخصص ارسال می شود.create_supervisor()درlanggraph-supervisor(اگرچه تیم LangChain در سال 2026 توصیه می کند که این کار را از طریق ابزار به طور مستقیم برای کنترل بیشتر زمینه انجام دهد).
  2. Swarm / peer-to-peer.ماموران از طریق یه سطح ابزار مشترک به طور مستقیم بهشون کمک می کنن.
  3. Hierarchical.نظارت کنندگان که نظارت فرعی را مدیریت می کنند، به عنوان زیرگراف های سرشار اجرا می شوند.

جایی که این الگوی اشتباه می شود

  • Checkpoints too small.فقط چک پوائنت مکالمه رو میذاره و حالت ابزار رو میذاره که قابل بازیابی نیست
  • Non-deterministic nodes.رزومه فرض می کند ورودی های گره همان بروزرسانی حالت را تولید می کنند. تخم های تصادفی، ساعت دیواری، API های خارجی باید ضبط شوند.
  • Over-use of conditional edges.یک نمودار با هر لبه مشروط یک ماشین حالت است که نمی توان درباره آن استدلال کرد. ترجیح می دهیم زنجیره های خطی با شاخه های گاه به گاه داشته باشیم.

آن را بسازید

code/main.pyیک نمودار حالت stdlib را اجرا می کند:

  • State یک نوشته با تایپmessages،step،route،output،human_approval. .
  • Node تماس گرفتن وضعیت و بازگشت یک دستور تازه
  • StateGraph گره + حواشی + حواشی مشروط + اجرا + ادامه مطلب.
  • SQLiteCheckpointer(در حافظه جعلی) بعد از هر گره ای حالت را سریالیز می کند. load(session_id)بازگردانده می شود.
  • یک نمودار دمو: طبقه بندی -> شاخه(بازدید / خطا / فروش) -> دروازه انسانی -> ارسال.

اجرا کن

python3 code/main.py

رد نشان می دهد که اولین مسابقه در دروازه ی انسانی شکست خورده است، استقامت، سپس تولید محصول نهایی را دوباره شروع می کند.

ازش استفاده کن

  • LangGraph مرجع، آماده تولید. استفاده create_react_agent،create_supervisor، یا نقشه ی خودت رو بساز
  • AutoGen v0.4(درسی 14) مدل بازیگر جایگزین برای سناریوهای با رقابت بالا.
  • Claude Agent SDK(درسی 17) استفاده از هارد با فروشگاه جلسات داخلی
  • Custom وقتی به کنترل دقیق شکل حالت یا پس زمینه چک پوائنتر نیاز دارید.

-باده

outputs/skill-state-graph.mdیک نمودار حالت به شکل LangGraph را در هر زمان اجرا هدف با چک پوائنٹنگ و ادامه کار به کار می گیرد.

تمرینات

  1. یک لبه مشروط از اضافه کنیدclassifyبهendوقتی اعتماد به نفس طبقه بندی زیر یک حد قرار می گیرد، ادامه مسابقه بعد از یک مجموعه انسانیrouteدستي
  2. جعلي مثل SQLite رو با یک چک پوائنتر SQLite واقعی عوض کن
  3. لبه های موازی را پیاده سازی کنید: دو گره همزمان اجرا می شوند، با یک کم کننده سفارشی ترکیب می شوند. حالت نامتعدی در اینجا چه چیزی را می خرید؟
  4. بخونlanggraph-supervisor.حرفه بازي رو بهcreate_supervisor. شکل هاي رد و رد را مقایسه کن
  5. اضافه کردن جریان: هر گره حالت جزئی را در طول اجرا می دهد. دلتاها را در هنگام ورود چاپ کنید.

اصطلاحات کلیدی

TermWhat people sayWhat 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

خواندن بیشتر

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.