nabuguidesبازگشت به راهنماها ←
AI · ORCHESTRATION · HUMAN-IN-THE-LOOP

LangGraph؛ وقتی ایجنت باید مکث کنه

برای یه سؤال و جواب ساده اصلاً بهش احتیاج نداری. ولی وقتی ایجنتت چند مرحله داره، ممکنه وسط کار به مشکل بخوره یا قبل از یه کار حساس منتظر تأیید آدم بمونه، اون‌وقته که LangGraph به درد می‌خوره.

حدود ۷ دقیقه مطالعهتوضیح خیلی سادهبا مثال‌های واقعی
نقشهٔ دوشاخهٔ یک workflow با مسیر امن و مسیر نیازمند تأیید انسان
ایجنت همیشه نباید جلو بره.مسیر رو نگه دار، مکث کن و فقط وقتی لازم شد از انسان بپرس.

یه ایجنت واقعی همیشه از نقطهٔ A صاف نمی‌ره به B. ممکنه بین چندتا ابزار بچرخه، وسط کار قطع بشه، نتیجهٔ مرحلهٔ قبلی رو لازم داشته باشه یا برای یه تصمیم حساس منتظر تأیید بمونه. LangGraph نقشه و حافظهٔ این مسیره؛ نه مغز مدله، نه اجازهٔ نهایی اجرا.

LangGraph دقیقاً چیه؟

اگه بخوام خیلی ساده بگم، LangGraph یه ابزار برای ساختن مسیر کار ایجنت‌های چندمرحله‌ایه. کار رو به شکل یه نقشه می‌چینی: هر بخش یه وظیفه داره، مسیر می‌تونه دوشاخه بشه و ایجنت هم یادش می‌مونه تا کجای کار رفته.

توی داکیومنت‌ها بهش می‌گن runtime و framework سطح‌پایین برای workflowهای stateful. فعلاً درگیر این اسم‌ها نشو؛ مهم اینه که می‌تونی دقیق مشخص کنی ایجنت کجا بره جلو، کجا برگرده و کجا وایسه.

خیلی ساده: مثل یه بازی که خودش سیو می‌شه

فرض کن توی یه بازی چندتا مسیر داری. مسیر بی‌خطره؟ برو جلو. رسیدی به یه مرحلهٔ حساس؟ بازی وایمیسته و از یه آدم می‌پرسه. برق هم قطع بشه، لازم نیست از اول شروع کنی. LangGraph تقریباً همین کار رو برای ایجنت انجام می‌ده.

شش تا کلمه که کارت رو راه می‌ندازه

State

دفترچهٔ ایجنت

پیام‌ها، جواب ابزارها و تصمیم‌هایی که تا اینجا گرفته رو توش نگه می‌داره.

Node

یه مرحله از کار

مثلاً سرچ‌کردن، حساب‌کردن، صداکردن یه ابزار یا نوشتن جواب.

Edge

مسیر مرحلهٔ بعد

می‌گه بعد از این مرحله کجا برو؛ بعضی وقت‌ها هم با توجه به شرایط مسیر رو عوض می‌کنه.

Checkpoint

دکمهٔ سیو

جای فعلی کار رو ذخیره می‌کنه تا اگه چیزی قطع شد، از همون‌جا ادامه بدی.

Interrupt

یه مکث حساب‌شده

ایجنت رو عمداً نگه می‌داره تا یه آدم یا سیستم مجاز جواب بده.

Resume

ادامه از همون‌جا

بعد از تأیید، لازم نیست همه‌چی دوباره اجرا بشه؛ کار از همون نقطه ادامه پیدا می‌کنه.

تأیید آدم وسط کار چطوریه؟

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

کارهای عادی که توی محدودهٔ مجازن، از مسیر سبز رد می‌شن. کار پرریسک می‌ره روی مسیر زرد، مکث می‌کنه و منتظر بررسی می‌مونه.

گراف LangGraph با مسیر امن خودکار و مسیر پرریسک شامل interrupt و تأیید یا رد انسان
LangGraph یادش می‌مونه کجا وایساده: تأییدش کنی ادامه می‌ده؛ ردش کنی همون‌جا تموم می‌شه.
یه نکتهٔ مهم

Human-in-the-loop یعنی آدم فقط جایی وارد کار بشه که واقعاً به قضاوتش نیاز داریم؛ نه اینکه برای هر قدم یه دکمهٔ تأیید بزنیم.

سه تا مثال که قضیه رو روشن می‌کنه

۱
پس‌دادن پول مشتری

مبلغ زیر ۳۰ دلاره و همه‌چی عادیه؟ خودش انجام بده. مبلغ بیشتره یا یه چیزی مشکوکه؟ وایسا تا یه نفر نگاه کنه.

۲
ایجنت تحقیق و انتشار

سرچ و پیش‌نویس رو خودش انجام بده؛ ولی اگه یه ادعای حساس داشت، قبل از انتشار بفرستش برای بررسی.

۳
یه کار onchain

ایجنت می‌گه این swap رو انجام بدیم. گراف می‌تونه قبلش مکث کنه، ولی کلید و اجازهٔ آخر نباید دست نرم‌افزار باشه.

ولی یه مکث نرم‌افزاری هنوز «مرز سخت» نیست

LangGraph می‌تونه کار رو نگه داره، اطلاعات رو قابل‌فهم کنه و چک کنه که با قانون‌های نرم‌افزار جور درمیاد یا نه. همهٔ اینا لازمن، ولی هنوز دارن توی همون محیط نرم‌افزاری اجرا می‌شن.

اگه خود مدل یا اپ به کلید دسترسی داشته باشه، یه باگ یا پرامپت خراب ممکنه همهٔ این چک‌ها رو دور بزنه. پس نرم‌افزار باید کار رو آماده کنه؛ نه اینکه اختیار آخر رو هم دستش بگیریم.

مقایسهٔ توانایی نرم‌افزار با اختیار انحصاری سخت‌افزار برای نگه‌داری کلید، نمایش قصد و اجرای تصمیم نهایی
بلدبودن با اجازه‌داشتن فرق داره: نرم‌افزار کار رو آماده می‌کنه؛ سخت‌افزار کلید و تصمیم آخر رو نگه می‌داره.
قانون سادهٔ ما

ایجنت پیشنهاد می‌ده. LangGraph مسیر رو می‌چینه و اگه لازم باشه نگهش می‌داره. آدم نظارت می‌کنه. سخت‌افزار حرف آخر رو می‌زنه.

اصلاً کی به LangGraph نیاز داری؟

احتمالاً به دردت می‌خوره اگه…

  • کارت چند مرحله و چندتا مسیر داره
  • ممکنه ساعت‌ها طول بکشه
  • بعد از خراب‌شدن باید از همون‌جا ادامه بدی
  • وسط کار به تأیید آدم نیاز داری

احتمالاً الکی پیچیده‌ش می‌کنی اگه…

  • فقط یه پرامپت می‌فرستی و یه جواب می‌گیری
  • یه ابزار ساده فقط یه بار اجرا می‌شه
  • حافظه و ادامه‌دادن برات مهم نیست
  • هیچ مسیر دوشاخه یا تأییدی نداری

چه جور تیم‌هایی ازش استفاده می‌کنن؟

تیم‌هایی که دستیار پشتیبانی، ایجنت تحقیق، گردش کار اسناد، اتوماسیون‌های طولانی یا اپ‌های حساس می‌سازن. خود LangChain هم ایجنت‌های آماده‌ش رو روی LangGraph اجرا می‌کنه، چون وقتی کار جدی‌تر می‌شه، ادامه‌دادن بعد از قطع‌شدن، دیدن روند اجرا و آوردن آدم وسط تصمیم مهم می‌شن.

منابع رسمی

LangGraph overview ↗Interrupts and human-in-the-loop ↗Persistence and checkpoints ↗