۱۲ اصل برای ساختن ایجنتهایی که واقعاً تو پروداکشن کار میکنن
خلاصهٔ کاملتر
دکستر هورتی، سازندهٔ HumanLayer، میگه تقریباً همهٔ فریمورکهای ایجنت رو امتحان کرده و با دهها بنیانگذار حرف زده، و به یه نتیجهٔ غافلگیرکننده رسیده: بیشتر محصولاتی که خودشون رو «ایجنت AI» مینامن، خیلی هم agentic نیستن. عمدتاً کد قطعیان با چند مرحلهٔ LLM که دقیقاً سر جای درست پاشیده شدن تا تجربه جادویی به نظر برسه.
به گفتهٔ نویسنده، وعدهٔ اولیهٔ ایجنتها این بود که DAG رو دور بندازی: بهجای اینکه مهندس هر گام و حالت لبهای رو کد کنه، به مدل یه هدف و یه سری انتقال میدی و خودش مسیر رو پیدا میکنه. حلقهٔ کلاسیکش هم همینه:
initial_event = {"message": "..."}
context = [initial_event]
while True:
next_step = await llm.determine_next_step(context)
context.append(next_step)
if next_step.intent == "done":
return next_step.final_answer
result = await execute_step(next_step)
context.append(result)مشکل اینه که این الگو اونقدرها که دوست داریم جواب نمیده. نویسنده مسیر تکراریای که تو بیش از ۱۰۰ تیم SaaS دیده رو اینطور خلاصه میکنه: تصمیم میگیری ایجنت بسازی، برای سرعت یه فریمورک برمیداری، تا کیفیت ۷۰-۸۰ درصد جلو میری، میفهمی ۸۰ درصد برای یه فیچر مشتریرو کافی نیست، و بعد میبینی برای رد شدن از این سقف باید فریمورک و پرامپتها و جریانش رو مهندسی معکوس کنی — پس از صفر شروع میکنی.
حرف اصلی مقاله همینه: سریعترین راهی که دیده تا تیمها نرمافزار AI باکیفیت به دست مشتری برسونن، برداشتن مفاهیم کوچیک و ماژولار از دنیای ایجنت و جا دادنشون تو محصول موجوده، نه بازنویسی کامل روی یه فریمورک. مزیتش اینه که این مفاهیم رو هر مهندس بلد هم میتونه پیاده کنه، حتی بدون پیشینهٔ AI.
اون ۱۲ اصل اینهان: تبدیل زبان طبیعی به فراخوانی ابزار؛ مالکیت پرامپتها؛ مالکیت پنجرهٔ کانتکست؛ ابزارها فقط خروجی ساختاریافتهان؛ یکی کردن state اجرا و state کسبوکار؛ اجرا/توقف/ازسرگیری با APIهای ساده؛ تماس با انسان از راه فراخوانی ابزار؛ مالکیت جریان کنترل؛ فشرده کردن خطاها تو کانتکست؛ ایجنتهای کوچیک و متمرکز؛ قابلیت تریگر از هر جا؛ و در نهایت ایجنت بهشکل یه reducer بدون حالت.
نخ مشترک بین این اصول واضحه: چیزهایی که معمولاً به فریمورک واگذار میشن — پرامپت، کانتکست، جریان کنترل — همونهان که کیفیت نهایی رو تعیین میکنن، پس باید خودت مالکشون باشی. نویسنده تأکید میکنه این حرفها بههیچوجه کوبیدن فریمورکها یا آدمهای باهوش پشتشون نیست؛ امیدش اینه که سازندههای فریمورک هم از این تجربهها یاد بگیرن.
نکتهٔ بستهٔ ماجرا هم اینه که حتی اگه مدلها نمایی قویتر شن، باز یه سری تکنیک مهندسی هستهای باقی میمونن که نرمافزار مبتنی بر LLM رو قابلاتکاتر، مقیاسپذیرتر و راحتتر برای نگهداری میکنن.
نکات کلیدی:
- ایجنتهای خوب عمدتاً نرمافزار معمولیان با چند نقطهٔ LLM حسابشده
- الگوی «پرامپت + ابزار + حلقه تا هدف» معمولاً روی سقف ۷۰-۸۰ درصد گیر میکنه
- پرامپت، پنجرهٔ کانتکست و جریان کنترل باید مال خودت باشن
- ایجنتهای کوچیک و متمرکز از یه ایجنت غولپیکر قابلاتکاترن
- ایجنت رو مثل یه reducer بدون حالت طراحی کن تا اجرا/توقف/ازسرگیری ساده شه




