هارنس ایجنت هوش مصنوعی: بدهی فنی که نمیبینیش
خلاصهٔ کاملتر
اگه در یه سال اخیر داشتی روی محصولات ایجنتی کار میکردی، احتمالاً حجم زیادی از کدت رفته روی چیزی که بهش میگن هارنس: سیستم پرامپت، ابزارهای رپرشده، حلقههای planner-executor، سیاستهای retry، فشردهسازی کانتکست، و فیلترهای ورودی-خروجی. تلخترین خبر اینه که بخش زیادی از این کدها با نسل بعدی مدلها منسوخ میشن — و تیمهایی که هارنس رو یه محصول دائمی میبینن، ممکنه یه سال تمام رو صرف دمونتاژش کنن.
هارنس ایجنت همون لایهی ارکستراسیونیه که بین مدل و محیط عملیاتیش قرار میگیره. یه تعریف کاربردی اینه که بگیم: ایجنت = هارنس + مدل پایه. آنالوگ خوب اینه که مدل رو مثل CPU یه کامپیوتر ببینیم؛ هارنس همون سیستمعامله که وقفهها و اینترفیسها رو مدیریت میکنه، پردازشها رو هماهنگ میکنه و توهم حافظهی بینهایت رو به کاربر میده.
هارنس از اجزای مختلفی تشکیل میشه که هر کدوم نقش مشخصی دارن:
- سیستم پرامپت و پرسونا — دستورالعملهای ثابت که رفتار مدل رو در تمام تورنها جهتدهی میکنن.
- سطح ابزار (Tool Surface) — مجموعهی توابع قابل فراخوانی به همراه schema و توضیحاتشون.
- پروتکل اجرا — شکل حلقهای که مدل درونش کار میکنه: تکتورن، چندتورن، ReAct، plan-and-execute و غیره.
- مدیریت کانتکست — چه چیزی بین تورنها نگه داشته میشه، چه چیزی فشرده یا خلاصه میشه.
- حافظه — اسکرچپدهای کوتاهمدت، فایلهای پیشرفت، و حافظههای بلندمدت قابل بازیابی.
- گاردریلها و دروازهها — فیلترها، لیستهای مجاز، درگاههای تأیید، و خطوط قرمز رفتاری.
- ورفایرها و قضات — اونچیزی که تشخیص میده یه قدم موفق بوده یا نه.
تفکیک جالبی که Birgitta Böckeler مطرح میکنه اینه که هارنس دو نوع داره: هارنس داخلی که سازندهی مدل میشیپش (مثل Claude Agent SDK یا Cursor's Auto) و هارنس خارجی که کاربر روی اون سوار میکنه (مثل AGENTS.md، سرورهای MCP، یا اسکریپتهای سازمانی). این دو روی ساعتهای متفاوتی تکامل پیدا میکنن و بدهی فنی متفاوتی هم انباشته میکنن.
یه نکتهی کمتر بحثشده اینه که هارنس پروداکشن و هارنس آموزشی یه چیز نیستن و اصلاً نباید باشن. در پروداکشن، هارنس یه سطح محدودیت ه: لیست محدود ابزارها، کردنشالهای scoped، درگاههای تأیید برای عملیات نوشتن، فیلتر prompt injection، سیاست retry ایمن، حداکثر زمان اجرا، لاگ حسابرسی، و کلید قطع اضطراری. در آموزش، همین هارنس باید به مدل فضا بده تا کشف کنه — نه اینکه هر مسیر اشتباه رو از پیش ببنده.
نکات کلیدی:
- هارنس = لایهی واسط بین مدل و محیط؛ سیستمعامل ایجنت هوش مصنوعی
- ایجنت به عنوان یه موجودیت = هارنس + مدل پایه
- هارنس داخلی (ساخت لب) و هارنس خارجی (ساخت کاربر) روی چرخههای تکاملی متفاوت عمل میکنن
- هارنس پروداکشن باید سفت و محدودکننده باشه؛ هارنس آموزشی باید آزاد و اکتشافی
- بیشتر کدهای هارنسی که امروز مینویسیم جبران محدودیتهای موقتِ مدلهای فعلیان، نه ضرورتهای همیشگی




