الگوهای قابلیت اطمینان برای جریانهای عامل
توسعه عاملهای هوشمند (Agentic Ai) با Langchain و Langgraph
- Apply retries, timeouts, fallbacks, idempotent task design, and recursion limits.
- Separate side effects into checkpointable tasks.
- Design failure states that preserve diagnostic information.
چرا گردشکار قابل اعتماد؟
```mermaid
flowchart LR
A["درخواست"] --> B["اجرای ابزار"]
B -->|موفق| C["ثبت نتیجه"]
B -->|موقتاً ناموفق| D["Retry با حد"]
B -->|طولانی| E["Timeout"]
D -->|موفق| C
D -->|باز هم ناموفق| F["Fallback یا شکست تشخیصی"]
E --> F
C --> G["ادامه گردشکار"]
```
Retry و Timeout با حد
**محاسبه زمان کل**
- زمان ابزار: \(3\times5=15\text{ s}\)
- زمان انتظار: \(1+2=3\text{ s}\)
- زمان کل: \(15+3=18\text{ s}\)
**شرط استفاده**
Retry برای خطای موقت و عملیات idempotent است؛ خطای دائمی را تکرار نکنید.
Fallback و حالت شکست
**مثال آبوهوا**
- پس از تلاش سوم، Failure State ثبت میشود.
- مسیر جایگزین cached_weather را میخواند.
- خروجی با برچسب \(stale\) برمیگردد تا کیفیت آن روشن باشد.
**ساختار شکست**
\(S_{fail}=(status, failed\_step, attempts, last\_error, recoverable)\)
اثر جانبی و Idempotency
```mermaid
flowchart LR
A["شناسه یکتا"] --> B["بررسی checkpoint یا وضعیت نهایی"]
B -->|انجام شده| C["بازگرداندن نتیجه قبلی"]
B -->|انجام نشده| D["اجرای اثر جانبی"]
D --> E["ثبت نتیجه"]
```
طرح نهایی گردشکار
**یک اجرای نمونه**
- timeout موقت است، پس Retry محدود مجاز است.
- پاسخ تلاش دوم ثبت و checkpoint میشود.
- Resume از checkpoint ادامه میدهد و task موفق را تکرار نمیکند.
**آزمون کوتاه**
- خروجی cache با برچسب کیفیت مانند stale، همراه با Failure State یا ثبت تشخیصی مناسب.
بازگشت به دوره