فاز 14 · درس 12

الگوهای جریان کاری Anthropic: اولویت سادگی بر پیچیدگی

نوع
مفهومی و ساختنی
زمان
حدود 60 دقیقه
زبان‌ها
Python (stdlib)
پیش‌نیاز
فاز 14 · درس 01 (حلقه‌ی ایجنت)
یک صفحه کنترل دقیق چوبی و فلزی که پنج مسیر و اهرم هدایت مجزا را به سوی خروجی‌های معین نمایش می‌دهد.
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفاهیم پایه
  4. جریان‌های کاری در برابر ایجنت‌ها
  5. مدل زبانی تقویت‌شده (Augmented LLM)
  6. پنج الگو
  7. جریان‌های کاری کجا از ایجنت‌ها جلو می‌زنند؟
  8. ایجنت‌ها کجا از جریان‌های کاری جلو می‌زنند؟
  9. مکمل ضروری: مهندسی بافتار
  10. پیاده‌سازی از صفر
  11. استفاده از ابزارهای واقعی
  12. خروجی این درس
  13. تمرین‌ها
  14. اصطلاحات کلیدی
  15. برای مطالعه‌ی بیشتر

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

مقاله دسامبر 2024 شرکت Anthropic مرز مشخصی میان «جریان کاری» (Workflow) و «ایجنت» (Agent) ترسیم می‌کند. در جریان کاری، گراف اجرا دست مهندس است و مسیرها از قبل تعیین شده‌اند؛ در حالی که در ایجنت، هدایت ابزارها به شکل پویا به مدل واگذار می‌شود. درک این تمایز به شما کمک می‌کند قبل از افتادن در دام فریم‌ورک‌های سنگین، 5 الگوی پایه را بشناسید و متناسب با مسئله انتخاب کنید.

چون در این درس منطق الگوها با کتابخانه استاندارد پایتون پیاده‌سازی می‌شود، نیازی به کارت گرافیک مجزا یا منابع پردازشی سنگین ندارید. همچنین اگر در ادامه بخواهید این الگوها را روی APIهای واقعی اجرا کنید، می‌توانید با تغییر base_url و کلید دسترسی، بدون تغییر در منطق الگوها از گیت‌وی‌های ارائه‌دهنده یا مدل‌های محلی استفاده کنید.

شلانتز و ژانگ (از Anthropic، دسامبر 2024) جریان‌های کاری (مسیرهای از‌پیش‌تعریف‌شده) را از ایجنت‌ها (استفاده‌ی پویا از ابزار) تفکیک می‌کنند. پنج الگوی جریان کاری بیشترِ سناریوها را پوشش می‌دهند. همیشه کار را با فراخوانی‌های مستقیم API شروع کنید؛ فقط زمانی سراغ ایجنت‌ها بروید که نتوان مراحل کار را از قبل پیش‌بینی کرد.

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

  • نام بردن پنج الگوی جریان کاری Anthropic: زنجیره‌سازی پرامپت (prompt chaining)، مسیریابی (routing)، موازی‌سازی (parallelization)، هماهنگ‌کننده-کارگرها (orchestrator-workers) و ارزیاب-بهینه‌ساز (evaluator-optimizer).
  • توضیح تفاوت ایجنت و جریان کاری و هزینه‌ی مهندسی هر کدام.
  • تشخیص زمان مناسب برای انتخاب جریان کاری به‌جای ایجنت (و برعکس).
  • پیاده‌سازی هر پنج الگو در کتابخانه‌ی استاندارد (stdlib) در برابر یک LLM اسکریپت‌شده.

صورت مسئله

تیم‌های فنی معمولاً برای مسائلی که فقط به یک فراخوانی تابع ساده نیاز دارند، سراغ فریم‌ورک‌های چندایجنت می‌روند. این کار هزینه‌ی سنگینی دارد: فریم‌ورک‌ها لایه‌هایی اضافه می‌کنند که پرامپت‌ها را کدر، جریان کنترل برنامه را پنهان و پیچیدگیِ زودهنگام به سیستم تحمیل می‌کنند. مقاله‌ی دسامبر 2024 شلانتز و ژانگ، پرارجاع‌ترین pushback صنعت در برابر این رویکرد است: ساده شروع کنید و فقط وقتی پیچیدگی را بالا ببرید که ارزش هزینه‌اش را داشته باشد.

مفاهیم پایه

جریان‌های کاری در برابر ایجنت‌ها

  • جریان کاری (Workflow): مدل‌های زبانی و ابزارهایی که در مسیرهای کدی از‌پیش‌تعریف‌شده هدایت می‌شوند. در اینجا کنترل گراف در دست مهندس است.
  • ایجنت (Agent): مدل‌های زبانی خودشان ابزارهایشان را به‌شکل پویا هدایت می‌کنند و مراحل بعدی را پیش می‌برند. در اینجا کنترل گراف در دست مدل است.

هر دو رویکرد جایگاه خودشان را دارند. جریان‌های کاری ارزان‌تر، سریع‌تر و برای اشکال‌زدایی ساده‌ترند. ایجنت‌ها قفل مسائل باز و اکتشافی را باز می‌کنند، اما تحلیل حالت‌های شکست (failure modes) آن‌ها بسیار دشوارتر است.

مدل زبانی تقویت‌شده (Augmented LLM)

سنگ بنای هر پنج الگو: یک مدل زبانی که سه قابلیت در آن تعبیه شده است: جستجو (بازیابی اطلاعات)، ابزارها (اقدامات) و حافظه (پایداری وضعیت). هر فراخوانی API می‌تواند از این‌ها بهره ببرد.

پنج الگو

  1. زنجیره‌سازی پرامپت (Prompt chaining): خروجی فراخوانی 1 ورودی فراخوانی 2 می‌شود. این الگو مناسب مسائلی است که می‌توان آن‌ها را به‌صورت خطی و تمیز به چند مرحله تفکیک کرد. در صورت نیاز، می‌توان بین مراحلْ گیت‌های بررسی برنامه‌نویسی قرار داد.

  2. مسیریابی (Routing): یک LLM دسته‌بند مشخص می‌کند کدام مدل یا ابزارِ بعدی فراخوانی شود. برای ورودی‌هایی کاربرد دارد که ماهیت متفاوتی دارند و هر کدام باید به‌شکلی مجزا پردازش شوند (پشتیبانی سطح 1 در برابر بازگشت وجه، ثبت باگ یا فروش).

  3. موازی‌سازی (Parallelization): اجرای هم‌زمان N فراخوانی مدل و سپس تجمیع نتایج. دو حالت دارد: بخش‌بندی (پردازش تکه‌های مختلف) و رأی‌گیری (ارسال پرامپتی یکسان در N اجرا و سپس استخراج اکثریت یا ترکیب خروجی‌ها).

  4. هماهنگ‌کننده-کارگرها (Orchestrator-workers): یک LLM هماهنگ‌کننده به‌شکل پویا تصمیم می‌گیرد چه کارگرهایی (که آن‌ها هم LLM هستند) اجرا شوند و خروجی آن‌ها را ترکیب می‌کند. شبیه حلقه‌های ایجنت (agent loops) است، اما هماهنگ‌کننده وارد حلقه‌ی بی‌پایان نمی‌شود.

  5. ارزیاب-بهینه‌ساز (Evaluator-optimizer): یک LLM پاسخی را پیشنهاد می‌دهد و LLM دیگری آن را ارزیابی می‌کند. این چرخه تا زمانی که ارزیاب پاسخ را تأیید کند تکرار می‌شود. این ساختار در واقع حالت تعمیم‌یافته‌ی الگوی Self-Refine (درس 05) است.

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

  • کارهای قابل پیش‌بینی: اگر می‌توانید مراحل را بشمارید و مشخص کنید، باید حتماً همین کار را بکنید.
  • کارهایی با بودجه‌ی هزینه‌ای محدود: تعداد گام‌های جریان‌های کاری کران‌دار است؛ اما ایجنت‌ها ممکن است وارد چرخه‌های هزینه‌بر و بی‌پایان شوند.
  • کارهای نیازمند انطباق و نظارت قانونی (Compliance): بازرسان سیستم می‌خواهند خود گراف را بخوانند و بررسی کنند، نه این‌که مسیرها را از روی ردپای اجرای مدل استنتاج کنند.

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

  • پژوهش‌های باز و اکتشافی: زمانی که گام بعدی کاملاً به خروجی گام قبل وابسته باشد.
  • کارهایی با طول متغیر: کارهایی از چند دقیقه تا چند ساعت که تعداد گام‌های آن‌ها از ابتدا معلوم نیست.
  • دامنه‌های جدید و ناشناخته: زمانی که هنوز جریان کاری درست را نمی‌دانید؛ ابتدا باید کاوش کنید و بعد مسیر را به کد تبدیل کنید.

مکمل ضروری: مهندسی بافتار

مقاله‌ی «مهندسی بافتار مؤثر برای ایجنت‌های هوش مصنوعی» (Anthropic، سال 2025) این تخصص جانبی را قاعده‌مند می‌کند: پنجره‌ی 200 هزار توکنی یک بودجه است، نه ظرفی که هر چیزی را درونش بریزید. چه مواردی را وارد بافتار کنیم، چه زمانی آن را فشرده کنیم و چه زمانی بگذاریم رشد کند. این مبحث به‌صورت مفصل در درس فشرده‌سازی بافتار در فاز 14 (درس 06 قبل از شماره‌گذاری مجدد) بررسی شده است.

زنجیره‌سازی پرامپتهر فراخوانی ورودی مرحله بعد است
PROMPT CHAININGThe simplest workflow: a fixed linear path of model calls where each output is the next input, with optional programmatic gates between steps. Engineers own the graph, so it is cheap to debug and predictable to run. Reach for an agent only when the steps cannot be known in advance.INPUTفراخوانی 1GATEفراخوانی 2OUTPUTخروجی هر فراخوانی، ورودی فراخوانی بعدی می‌شود
ساده‌ترین گردش‌کار: یک مسیر خطی ثابت از فراخوانی‌های مدل که در آن خروجی هر مرحله ورودی مرحله‌ی بعدی است، همراه با گیت‌های برنامه‌نویسی اختیاری میان مراحل. گراف کاملاً در اختیار مهندسان است، بنابراین دیباگ آن کم‌هزینه و اجرای آن قابل پیش‌بینی است. فقط زمانی به سراغ ایجنت بروید که مراحل از قبل قابل پیش‌بینی نباشند.

پیاده‌سازی از صفر

فایل code/main.py هر پنج الگوی جریان کاری را در برابر یک ScriptedLLM پیاده‌سازی می‌کند:

  • prompt_chain(input, steps) — متوالی.
  • route(input, classifier, handlers) — دسته‌بندی و ارسال به بخش مربوطه.
  • parallel_vote(prompt, n, aggregator) — اجرای N فراخوانی و تجمیع نتایج.
  • orchestrator_workers(task, workers) — هماهنگ‌کننده کارگرها را انتخاب می‌کند.
  • evaluator_optimizer(task, proposer, evaluator, max_iter) — تکرار حلقه تا زمان تأیید نهایی.

اجرای برنامه:

python3 code/main.py

هر الگو ردگیری محاسبات (trace) خود را چاپ می‌کند. تعداد خطوط کد هر الگو حدود 10 تا 15 خط است؛ در حالی که هزینه‌ی استفاده از فریم‌ورک‌ها با هزاران خط کد سنجیده می‌شود.

استفاده از ابزارهای واقعی

  • برای بیشتر تسک‌ها از فراخوانی مستقیم API استفاده کنید.
  • فقط زمانی سراغ فریم‌ورک بروید که الگو واقعاً به وضعیت پایدار (Durable state در LangGraph)، هم‌زمانی مبتنی بر مدل اکتور (AutoGen v0.4) یا قالب‌بندی نقش‌ها (CrewAI) نیاز داشته باشد.
  • هر زمان که به ساختار بستر آزمایشی (harness) در Claude Code نیاز پیدا کردید ولی نمی‌خواستید آن را از صفر بسازید، سراغ Claude Agent SDK بروید.

خروجی این درس

سند outputs/skill-workflow-picker.md برای شرح هر تسک، الگوی مناسب را مشخص می‌کند؛ همراه با منطق تصمیم‌گیری و مسیر بازنویسی به ایجنت در صورتی که جریان‌های کاری پاسخگوی نیاز نباشند.

تمرین‌ها

  1. قابلیت مسیریابی را با یک آستانه‌ی (threshold) اطمینان پیاده‌سازی کنید؛ به‌طوری‌که اگر اطمینان کمتر از آستانه بود، به اپراتور انسانی ارجاع داده شود. این آستانه برای سناریوی پشتیبانی سطح 1 باید روی چه مقداری تعیین شود؟
  2. یک مهلت زمانی (timeout) به تابع parallel_vote اضافه کنید. اگر یکی از فراخوانی‌ها معلق بماند چه می‌شود؟ تجمیع خروجی‌ها را با وجود آرای غایب چگونه انجام می‌دهید؟
  3. ساختار evaluator_optimizer را به یک مدل راهزن (bandit) تبدیل کنید: در طول تکرارها، 2 خروجی برتر را نگه دارید تا اگر در دورهای پایانی خروجی بدی تولید شد، جایگزین نتیجه‌ی خوب قبلی نشود.
  4. زنجیره‌سازی پرامپت را با مسیریابی ترکیب کنید؛ به‌طوری‌که یک مسیریاب یکی از سه زنجیره را انتخاب کند. هزینه‌ی توکن آن را در مقایسه با روش جایگزینی که از یک پرامپت تکی و بزرگ استفاده می‌کند بسنجید.
  5. یکی از قابلیت‌های محیط عملیاتی خود را انتخاب کنید. گراف جریان کاری آن را رسم کنید. مراحل را بشمارید. آیا واقعاً حضور یک ایجنت در این سناریو عملکرد بهتری ایجاد می‌کند؟

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

اصطلاح در گفت‌وگوهای عامیانه معنای دقیق مهندسی
جریان کاری (Workflow) «جریان از‌پیش‌تعریف‌شده» گرافی از فراخوانی‌های LLM و ابزار که توسط مهندس کنترل می‌شود
ایجنت (Agent) «هوش مصنوعی خودمختار» گرافی که کنترل آن دست مدل است؛ هدایت پویای ابزارها
مدل تقویت‌شده (Augmented LLM) «مدل زبانی با ابزار» مدل زبانی + جستجو + ابزار + حافظه؛ کوچک‌ترین واحد مستقل پردازشی
زنجیره‌سازی پرامپت (Prompt chaining) «فراخوانی‌های متوالی» خروجی فراخوانی N ورودی فراخوانی N+1 می‌شود
مسیریابی (Routing) «ارسال مبتنی بر دسته‌بند» تعیین این‌که کدام زنجیره یا مدل ورودی را پردازش کند
موازی‌سازی (Parallelization) «انشعاب پردازش‌ها» اجرای هم‌زمان N فراخوانی؛ تجمیع با روش بخش‌بندی یا رأی‌گیری
هماهنگ‌کننده-کارگرها (Orchestrator-workers) «ایجنت ارسال‌کننده» LLM هماهنگ‌کننده که LLMهای متخصص را به‌شکل پویا انتخاب می‌کند
ارزیاب-بهینه‌ساز (Evaluator-optimizer) «پیشنهاد‌دهنده + داور» تکرار مراحل تا تأیید ارزیاب؛ ساختار تعمیم‌یافته‌ی Self-Refine

برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسAnthropic چگونه گردش‌کار (workflow) را از ایجنت (agent) متمایز می‌کند؟
  2. پیش از درسسه قابلیت LLM ارتقایافته (augmented LLM) که پایه‌ی هر پنج الگو هستند کدامند؟
  3. حین درسکدام مورد جزو پنج الگوی گردش‌کار Anthropic نیست؟
  4. حین درسموازی‌سازی به چه دو صورتی پیاده‌سازی می‌شود؟
  5. حین درسکدام الگوی گردش‌کار، حالت تعمیم‌یافته‌ی Self-Refine است؟
  6. پس از درسطبق این درس، چه زمانی گردش‌های کار بر ایجنت‌ها برتری دارند؟
  7. پس از درسنقطه‌ی شروع پیش‌فرض توصیه‌شده در این درس چیست؟

سؤالات متداول

تفاوت بنیادین جریان کاری (Workflow) با ایجنت (Agent) در چیست؟

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

پنج الگوی اصلی جریان کاری Anthropic کدامند؟

این پنج الگو عبارتند از: زنجیره‌سازی پرامپت (Prompt chaining)، مسیریابی (Routing)، موازی‌سازی (Parallelization)، هماهنگ‌کننده-کارگرها (Orchestrator-workers) و ارزیاب-بهینه‌ساز (Evaluator-optimizer).

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

تنها زمانی که سیستم واقعاً نیازمند وضعیت پایدار (Durable state)، هم‌زمانی مبتنی بر مدل اکتور یا مدیریت نقش‌های پیچیده باشد؛ برای اکثر کارهای روتین فراخوانی مستقیم API و کد ساده کافی است.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.