ایجنت بساز، نه pipeline
خلاصهٔ کاملتر
نویسنده با یه دوگانهی ساده شروع میکنه: برای استفاده از LLMها توی یه برنامه فقط دو راه هست. یا جریان کنترل برنامه رو توی کد مینویسی (pipeline)، یا به مدل ابزار میدی و میذاری خودش جریان کنترل رو مدیریت کنه (agent). مثلاً یه برنامهی سادهی «اطلاعات رو خلاصه کن و برام ایمیل کن» بهشکل pipeline اینطوریه:
context = gather_context(various, data, sources)
llm_response = llm_summarize(context)
summary = parse(llm_response)
email_me(summary, my_email)و همون کار بهشکل ایجنت اینطوری میشه:
read_data_tool = build_read_data_tool(various, data, sources)
email_tool = build_email_tool(my_email)
run_agent(tools: [read_data_tool, email_tool])این درست مثل تفاوت کتابخونه و فریمورکه: با کتابخونه ساختار برنامه دست خودته، با فریمورک ساختار اصلی توی فریمورکه و اون کد تو رو صدا میزنه. حرف اصلی مقاله اینه که pipelineها قابلپیشبینیترن ولی ایجنتها منعطفتر. توی ایجنت، کار وقتی تموم میشه که مدل فکر کنه تموم شده؛ این میتونه از چند نوبت تا صدها نوبت طول بکشه و هزینهاش از چند سنت تا چند دلار فرق کنه — که برای سیستمهای مقیاسبزرگ کابوسه. در عوض، ایجنتها باهوشترن، چون میتونن بیشتر حلقه بزنن و بعد از فکرکردن، اطلاعات بیشتری جمع کنن؛ برای همینه که ابزارهای موفقی مثل Claude Code و Cursor همه ایجنتان، چون کدنویسی با pipeline اصلاً جواب نمیده.
بخش مهم بعدی جمعآوری context هست. توی ایجنت، اگه مدل بفهمه دادهی بیشتری لازم داره، خودش میره میگیره؛ ولی توی pipeline همهی داده باید از قبل توی context باشه چون مدل فقط یکبار اجرا میشه. برای یه ایجنت کدنویسی کافیه یه ابزار grep و read file بدی و خودش بفهمه کدوم بخش کد مرتبطه. نویسنده میگه RAG هم این مشکل رو حل نکرد، چون «پیداکردن اینکه چه اطلاعاتی مرتبطه» اغلب بهاندازهی خودِ حل مسئله سخته و embedding و شباهت کسینوسی برای این کار بهاندازهی کافی قوی نیستن.
البته pipeline مزیتهایی هم داره: میتونی از مدلهای مختلف برای کارهای مختلف استفاده کنی (هرچند نویسنده به این هم مشکوکه)، و مهمتر، میتونی با context کوچیکتر و در نتیجه با مدلهای محلی کار کنی، چون ایجنتها معمولاً context رو در هر نوبت بزرگتر میکنن و این برای مدل محلی که زیر ۳۲هزار توکن میمونه مشکلسازه. در نهایت نویسنده میگه ایجنتها آیندهنگرترن چون مدلها دارن مخصوصاً برای ایجنتبودن بهتر میشن. توصیهی نهایی: pipeline رو برای محدودیت سفتوسخت context، کنترل دقیق هزینهی GPU و مدل محلی انتخاب کن؛ و ایجنت رو وقتی که مطمئن نیستی میتونی همهی context رو یکجا جمع کنی یا مسئله سخته. «وقتی شک داری، ایجنت رو انتخاب کن.»
نکات کلیدی:
- دو راه استفاده از LLM: pipeline (کنترل در کد) یا ایجنت (مدل با ابزارها کنترل میکنه)، مثل کتابخونه در برابر فریمورک
- pipeline قابلپیشبینی و ارزونتره؛ ایجنت باهوشتر و منعطفتره
- جمعآوری context با ایجنت راحته (grep و read file)؛ RAG این مشکل رو حل نکرد
- pipeline برای context کوچیک و مدل محلی؛ در غیر این صورت وقتی شک داری ایجنت رو انتخاب کن




