هارنسِ هوشمندی که مدلِ ارزون رو قوی میکنه
خلاصهٔ کاملتر
نویسنده Dirge رو معرفی میکنه؛ یه هارنسِ ایجنتیِ کدنویسی که با Rust نوشته شده و به یه باینریِ کوچیکِ ~۳۰ مگابایتی کامپایل میشه. برخلافِ ابزارهایی مثلِ OpenCode که بیکار هم ~۳۰۰ مگابایت رم میگیرن، Dirge موقعِ بیکاری فقط ~۸ و موقعِ کار ~۱۵ مگابایت لازم داره؛ یعنی میتونی بیست نسخهشو به قیمتِ یه OpenCode اجرا کنی.
ولی حرفِ اصلیِ نویسنده اندازه نیست. اون میگه باورِ رایج اینه که «هوش تو مدله و هارنس فقط لولهکشیه»، ولی تجربهش با مدلهایی مثلِ DeepSeek و Qwen نظرشو عوض کرده: خیلی از چیزی که یه ایجنت رو کارآمد میکنه، تو اینه که هارنس چقدر خوب انتظارِ مدل رو برآورده کنه. با یهکم سرمایهگذاری رو هارنس، یه مدلِ ارزونِ متنباز شبیهِ مدلِ خیلی گرونتر رفتار میکنه.
نویسنده میگه شکافِ کیفیت تو سه بازهی زمانی ظاهر میشه و Dirge رو هرسه سرمایهگذاری کرده. لایهی اول هدایت و ترمیم ـه که هر نوبت رو سرِپا نگه میداره: هدایتِ مدلآگاه، مثالهای درونمتنیِ tool call، و مهمتر از همه استفاده از tree-sitter برای بررسیِ گرامرِ کد قبل از نوشتن روی دیسک، تا کدِ نحویخراب با خطای دقیقِ خط و ستون رد بشه. یه «کلیدِ قطع» هم جلوِ حلقههای تکراری رو میگیره و مدل رو وادار به تأملوچرخش میکنه.
لایهی دوم پیوستگیِ کارِ طولانیه. بهجای خلاصهسازیِ یکجای گفتگو (که درست وقتی کانتکست پره و توانِ مدل ته کشیده انجام میشه)، Dirge تاریخچهی قدیمی رو بهتدریج و در پسزمینه تو یه checkpointِ ساختاریافته تا میکنه و درخواستِ اصلی رو بهعنوانِ لنگر نگه میداره تا هدف منحرف نشه. لایهی سوم یادگیری ـه: دانشِ هر نشست تو یه دیتابیسِ SQLite (با جستوجوی تماممتنِ FTS5) ذخیره میشه تا نشستِ بعدی از صفر شروع نکنه.
روی همهی اینها یه سیستمِ افزونه نشسته که با زبانِ Lispِ سبکِ Janet نوشته میشه و به هر بخشِ حلقهی ایجنت دست میده. یه افزونهی کوچیک میتونه هر tool call رو رهگیری، مسدود یا جایگزین کنه:
(defn on-prompt [ctx]
(when (string/find "security" (ctx :prompt))
(harness/notify "running with security mindset" :info)))Dirge با OpenRouter، OpenAI، Anthropic، DeepSeek و Ollama کار میکنه، مسیریابیِ نقشمحورِ مدل داره و متنبازِ GPL-3.0 ـه.
نکات کلیدی:
- Dirge با Rust نوشته شده و فقط ~۸ تا ۱۵ مگابایت رم میگیره
- ایدهی محوری: بخشِ زیادی از کارآمدیِ ایجنت تو هارنسه، نه فقط مدل
- بررسیِ گرامر با tree-sitter قبلِ نوشتن، جلوِ ذخیرهی کدِ خراب رو میگیره
- چکپوینتِ ساختاریافته و لنگرِ درخواستِ اصلی، جلوِ انحرافِ هدف تو کارِ طولانی رو میگیره
- حافظهی بینِ نشستها تو SQLite ذخیره میشه و سیستمِ افزونه با زبانِ Janet قابلِگسترشه




