LLM Engineers
2.01K subscribers
107 photos
6 videos
3 files
167 links
A highly technical blog tailored for LLM engineers.

Contact me:
linkedin.com/in/mshojaei77
Download Telegram
🚀 موج جدید مدل‌های هوش مصنوعی متن‌باز (فوریه تا آوریل ۲۰۲۶)

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

Gemma 4 (Google DeepMind - ۲ آوریل)
سایزها: ۲.۳B تا ۳۱B
زمینه ۲۵۶K
چندوجهی
لایسنس Apache-2.0
قوی در استدلال عمومی و چندرسانه‌ای

Qwen 3.6 Series (Alibaba - آوریل)
سایزها: ۲۷B Dense و ۳۵B MoE
بنچمارک MMLU-Pro تا ۸۶.۲٪
سرعت بالا با int4
پشتیبانی از تصویر

DeepSeek V4 (DeepSeek AI - ۲۴ آوریل)
سایز V4-Pro: ۱.۶T (۴۹B فعال)
سایز V4-Flash: ۲۸۴B (۱۳B فعال)
زمینه ۱ میلیون توکن
بسیار قوی در کدنویسی و استدلال پیچیده
لایسنس MIT

Kimi K2.6 (Moonshot AI - ۲۰ آوریل)
سایز ۱T (۳۲B فعال) MoE
زمینه ۲۵۶k
عالی در استدلال و کدنویسی
جامعه: «نزدیک‌ترین مدل متن‌باز به Claude 4.5»

MiniMax M2.5 (۱۲ فوریه)
سایز ۲۲۹B (۱۰B فعال) MoE
سرعت بالا و هزینه خیلی کم
بهترین عملکرد در عامل‌های هوشمند و SWE-Bench (۸۰.۲٪)

GLM-5 / GLM-5.1 (Zhipu AI - فوریه و مارس)
سایز ۷۴۴B (۴۰B فعال)
زمینه ۲۰۰k
قوی در کدنویسی و کارهای agentic
لایسنس MIT

Nemotron-Cascade 2 (NVIDIA - ۱۹ مارس)
سایز ۳۰B (۳B فعال) MoE
زمینه ۱M
مدال طلا در IMO و IOI
بنچمارک LiveCodeBench ۸۷.۲٪

---

خلاصه عملکرد:
- بهترین استدلال عمومی: Qwen 3.6-27B و Gemma 4-31B
- بهترین کدنویسی: MiniMax M2.5 و Nemotron-Cascade 2
- قوی‌ترین مدل‌های بزرگ: DeepSeek V4-Pro و Kimi K2.6
- بهترین برای اجرا محلی و سرعت: Gemma و Qwen 3.6-MoE

همه مدل‌ها وزن‌های باز روی Hugging Face دارند و اکثرشان تحت لایسنس Apache یا MIT هستند (استفاده تجاری آزاد).
8
سلام رفقا، ارادت.
این مدت که توییتر، لینکدین و ردیت رو بالا و پایین می‌کردم، می‌خواستم ببینم اوضاع فریم‌ورک‌های ساخت Agent تو این میانه ۲۰۲۶ چطوریه. خلاصه داستان اینه که هنوز هیچ استاندارد واحدی تو بازار نداریم. یعنی این‌طوری نیست که بگی فلان ابزار شاه‌کلیده؛ همه‌چیز کاملاً به جنس پروژه، نیاز پروداکشن، میزان پیچیدگی و ترجیح خودتون بستگی دارد.
اگر بخوام یه رتبه‌بندی از محبوب‌ترین ابزارهای این روزها بهتون بدم، اول از همه باید از LangGraph اسم ببرم که به نظرم پادشاه محیط‌های پروداکشنه. این ابزار برای مدیریت State، قابلیت Checkpointing و پیاده‌سازی Human-in-the-Loop بی‌رقیبه و وقتی جفت می‌شه با LangSmith، یک نظارت و کنترل فوق‌العاده روی سناریوهای پیچیده بهتون میده.

گزینه بعدی CrewAI هست که اگر دنبال سیستم‌های Multi-Agent و کارهای سریع و Prototype هستید، حرف اول رو می‌زنه. تعریف نقش‌ها و وظایف تو این فریم‌ورک به‌شدت ساده و خواناست، سرعت توسعه بالایی داره و کلاً کامیونیتی خیلی فعالی پشتش شکل گرفته.

اما انتخاب سوم که راستش انتخاب خود من هم هست، OpenAI یا Claude Agent SDKهای بومی هستن. این روزها خیلی از مهندس‌ها ترجیح می‌دن بی‌خیال لایه‌های ابستراکشن سنگین بشن و مستقیم با لایه نازک و SDK خام کار کنن تا کنترل صددرصدی روی پروسه داشته باشن و از پیچیدگی‌های پنهان فریم‌ورک‌ها فرار کنن.

البته ابزارهای دیگه‌ای مثل LlamaIndex، AutoGen/AG2، Pydantic AI و Semantic Kernel هم هنوز تو زمین بازی هستن. ولی اگه بپرسید ترند غالب چیه، می‌گم الان بیشتر مهندس‌ها دارن می‌رن سمت ساخت Harness شخصی خودشون و تمرکز اصلی بازار روی Evaluation، بحث Observability و مدیریت Memory ایجنت‌هاست.

حالا شما بگید؛ این روزها برای ساخت Agentهاتون دارید از چه فریم‌ورکی استفاده می‌کنید و از چی بیشتر جواب گرفتید؟ توی کامنت‌ها بنویسید.
👍114
خانواده مدل‌های Nex-N2 بر پایه Qwen 3.5 توسعه داده شدن و هدف اصلی‌شون حل چالش‌های عملیاتی در سیستم‌های Agentic هست. این مدل‌ها به جای تمرکز روی چت جنرال، روی Code Implementation و Tool-use بهینه‌سازی شدن تا در لوپ‌های طولانی‌مدت (Long-horizon tasks) پایدار بمونن. مدل Nex-N2-Pro از معماری MoE با ۳۹۷ میلیارد پارامتر کلی و ۱۷ میلیارد پارامتر فعال استفاده می‌کنه که کانتکست Window آن ۲۶۲ هزار توکن است.

مکانیزم فنی Adaptive Thinking در این مدل، طول زنجیره استدلال (Reasoning Chain) رو بر اساس سختی سوال تغییر می‌ده. این یعنی در تسک‌های ساده، توکن اضافی برای فکر کردن هدر نمیره و طبق ادعای تیم توسعه، حدود ۲۰ درصد مصرف توکن بدون کاهش دقت پایین اومده. در تسک‌های پیچیده مثل SWE-bench که نیاز به تغییر در سورس‌کد واقعی دارن، مدل از سیستم Coherent Thinking استفاده می‌کنه تا بین مرحله سرچ، کدنویسی و تست، پارادایم منطقی یکسانی رو حفظ کنه و دچار ناسازگاری نشه.

تجربه‌های واقعی تسترها در کامیونیتی LocalLLaMA و X نشون می‌ده که مدل توی کدنویسی پایتون و ساخت اپلیکیشن‌های تک‌صفحه‌ای عملکردی مشابه GPT-4o و حتی در مواردی بهتر از آن داشته. با این حال، گزارش‌هایی مبنی بر گیر کردن در Repetition Loop در مواجهه با لینک‌های خراب یا ارورهای ۴۰۴ وجود داره. یعنی مدل وقتی با مانع محیطی غیرمنتظره برخورد می‌کنه، گاهی به جای تغییر استراتژی، روی تسک قبلی اصرار می‌کنه که نشان‌دهنده نیاز به Tuning بیشتر در بخش Error Handling هست.

به نظر من، این مدل یک ابزار تخصصی برای برنامه‌نویس‌ها و توسعه‌دهنده‌های Agent هست و نباید به عنوان جایگزین مدل‌های جنرال برای نوشتن متن یا تحقیق‌های ساده استفاده بشه. تمرکز اصلی روی Actionable Output هست و اگر دنبال اتومیشن در ترمینال یا دیباگ خودکار کد هستید، ارزش تست کردن رو داره، مخصوصاً با توجه به لایسنس Apache 2.0 که اجازه استفاده تجاری رو می‌ده.

🤗 مدل Nex-N2-Pro در Hugging Face:
https://huggingface.co/nex-agi/Nex-N2-Pro

▫️دسترسی رایگان در OpenRouter:
https://openrouter.ai/nex-agi/Nex-N2-Pro:free

🛠 Join @LLMEngineers Community
👍1
دوران تولید توکن به توکن (Autoregressive) با معرفی DiffusionGemma وارد فاز جدیدی شده که تمرکزش روی سرعت وحشتناک و پردازش موازیه. این مدل که بر پایه Gemma 4 ساخته شده، یک 26B MoE هست که در لحظه استنتاج فقط حدود ۴ میلیارد پارامتر فعال داره. برخلاف مدل‌های کلاسیک که خروجی رو دانه به دانه می‌سازن، این مدل از مکانیزم Diffusion برای تولید و اصلاح همزمان یک بلوک ۲۵۶ توکنی استفاده می‌کنه. این یعنی گلوگاه مدل از پهنای باند حافظه (Memory Bandwidth) به توان محاسباتی (Compute) منتقل شده و روی سخت‌افزارهای مدرن مثل RTX 5090 یا H100، سرعتی بین ۷۰۰ تا ۱۰۰۰ توکن بر ثانیه میده که عملاً با سرویس‌های ابری گرون‌قیمت مثل Groq رقابت می‌کنه.

کاربرد عملی این مدل در حال حاضر بیشتر در تسک‌هایی مثل Fill-in-the-Middle (کامل کردن کد در وسط فایل)، اصلاح خطاهای OCR و Data Augmentation هست. به دلیل ماهیت Bidirectional یا دوطرفه بودن، مدل می‌تونه کل بلوک متن رو همزمان ببینه و برخلاف مدل‌های AR که وقتی توکنی رو نوشتن دیگه راه برگشت ندارن، اینجا مدل قابلیت Self-correction داره. یعنی اگه در مراحل اولیه تولید (Denoising) اشتباهی رخ بده، در گام‌های بعدی اصلاحش می‌کنه. برای تسک‌های غیرخطی مثل حل جدول یا معماهای منطقی که نیاز به دید کلی دارن، این معماری بسیار کارآمدتر از مدل‌های خطیه.

معماری Uniform State Diffusion در این مدل به این صورته که ابتدا یک بوم (Canvas) از توکن‌های تصادفی ساخته می‌شه و طی چندین مرحله عملیات Denoising، توکن‌ها شفاف و قطعی می‌شن. برای متن‌های طولانی‌تر از ۲۵۶ توکن، مدل از روش Block Autoregressive استفاده می‌کنه؛ یعنی هر بلوک رو موازی می‌سازه، در KV Cache ذخیره می‌کنه و سراغ بلوک بعدی میره. این ترکیب باعث شده پایداری مدل‌های سنتی با سرعت مدل‌های نان-اتورگرسیو ترکیب بشه.

تجربه کاربری و بنچمارک‌های اولیه نشون میده که DiffusionGemma در کنار سرعت بالا، افت کیفیت محسوسی نسبت به نسخه استاندارد Gemma 4 داره. در واقع شما سرعت رو با هوش معامله می‌کنید. برای تسک‌های پیچیده استدلالی یا نوشتن متون خلاقانه طولانی، مدل ممکنه دچار تناقض بشه یا منطق ضعیف‌تری نشون بده. اما برای خط لوله‌های (Pipelines) پردازش داده که نیاز به سرعت بالا دارن و هوش در حد Qwen 3.5 9B براشون کافیه، این مدل یک گزینه بی‌رقیبه. با کوانتایز کردن، مدل در ۱۸ گیگابایت VRAM جا می‌شه که یعنی روی کارت‌های گرافیک کانسومر مثل RTX 3090/4090 به راحتی قابل اجراست.

به نظر من، DiffusionGemma شروع یک تغییر پارادایم در مدل‌های لوکال هست. اهمیت این مدل در اینه که از ظرفیت بلااستفاده Tensor Coreها در کارت‌های گرافیک استفاده می‌کنه. اگه پروژه شما نیاز به استخراج موجودیت (Entity Extraction)، خلاصه‌سازی سریع یا ویرایش در لحظه متن داره، حتماً سمت این مدل برید. اما برای چت‌بات‌های عمومی که نیاز به دقت بالا دارن، هنوز مدل‌های Autoregressive گزینه مطمئن‌تری هستن. پشتیبانی از این مدل در vLLM و SGLang اضافه شده و به راحتی با کتابخانه‌های Transformers هم قابل استفاده‌ست.

🤗 وزن‌های مدل در Hugging Face:
https://huggingface.co/google/diffusiongemma-26B-A4B-it


🛠 Join @LLMEngineers Community
👍5🔥1
مفهوم Prompt Engineering دیگه داره به پایان عمرش می‌رسه و جای خودش رو به Loop Engineering میده. به جای اینکه دستی برای ایجنت پرامپت بنویسید، خروجی بگیرید و ارورها رو دوباره به خورد مدل بدید، یک سیستم طراحی می‌کنید که خودش کار رو پیدا کنه، انجام بده، با ابزارهای واقعی تست کنه و در صورت خطا خودش رو اصلاح کنه. این تغییر پارادایم، باتل‌نک توسعه رو از سرعت تایپ انسان به طراحی سیستم‌های خودکار و مستقل منتقل کرده.

پیاده‌سازی لوپ‌ها روی کاغذ جذابه اما تو واقعیت به شدت پرهزینه است. یک لوپ ساده برای یک تسک برنامه‌نویسی می‌تونه به راحتی بین ۵۰ تا ۲۰۰ هزار توکن مصرف کنه. اگه محدودیت نذارید و از مدل‌های گرون‌قیمت استفاده کنید، تو چند روز کل بودجه API شما نابود میشه. دلیل اینکه این روزها پیاده‌سازی لوپ منطقی شده، ظهور مدل‌های ارزون‌قیمت با کانتکست بالا (مثل سری DeepSeek V4) هست که اجازه میدن ایجنت‌ها بدون نگرانی از هزینه، بارها خطا کنن و خودشون رو دیباگ کنن.

معماری یک لوپ مهندسی‌شده و پایدار از ۶ بخش اصلی تشکیل میشه که باید دقیق کنار هم چیده بشن:
بخش Automations: یک سیستم زمان‌بندی (کرون جاب یا هوک) که لوپ رو بیدار می‌کنه. به جای اجرای دستی، سیستم هر روز صبح ایشوها رو چک می‌کنه.
مفهوم Worktrees: وقتی چند ایجنت موازی کار می‌کنن، نباید فایل‌های هم رو خراب کنن. استفاده از قابلیت worktree تو گیت باعث میشه هر ایجنت تو دایرکتوری ایزوله خودش کار کنه.
فایل‌های Skills: ایجنت‌ها حافظه ندارن. باید فایل‌هایی مثل VISION.md یا SKILL.md تعریف بشه تا کانونشن‌های پروژه رو یک‌بار بخونن و هر بار از صفر شروع نکنن.
پروتکل Connectors: استفاده از MCP برای اتصال ایجنت به دنیای واقعی. ایجنت باید بتونه تیکت جیرا رو آپدیت کنه یا تو اسلک پیام بده، نه اینکه فقط روی فایل سیستم بچرخه.
معماری Sub-agents: مدلی که کد رو می‌نویسه، نباید خودش رو ارزیابی کنه. همیشه باید یک ایجنت برای تولید (Maker) و یک ایجنت ایزوله با دستورالعمل‌های سخت‌گیرانه‌تر برای تایید (Checker) داشته باشید.
مدیریت State: یک فایل ساده STATE.md که لاگ کارهای انجام شده و ارورها رو نگه می‌داره تا لوپ در اجرای بعدی بدونه کجا متوقف شده و دوباره از صفر اختراع نکنه.

بزرگترین اشتباه در ساخت لوپ، نبودن یک گیت اعتبارسنجی سفت و سخته. اگر معیار پایان کار، نظر خود ایجنت باشه، لوپ شما توهم می‌زنه و کار رو نصفه رها می‌کنه. یک لوپ واقعی به محض توقف، باید به صورت خودکار تست‌ها یا Linter رو اجرا کنه (مثلا با اجرای دستورات تست در پس‌زمینه). اگر خروجی خطا داشت، لاگ ارور به صورت خودکار به کانتکست برمی‌گرده و ایجنت مجبور به رفع اون میشه. برای جلوگیری از گیر کردن در لوپ بی‌نهایت، حتما باید یک Hard limit (مثلا حداکثر ۵ بار تلاش) براش تعریف بشه تا اگر نتونست حلش کنه، تسک رو به انسان بسپاره.

بدهی درک کد (Comprehension debt) خطرناک‌ترین عارضه این سیستمه. وقتی لوپ‌ها با سرعت بالا کد می‌زنن و مرج می‌کنن، فاصله بین چیزی که تو ریپو هست و چیزی که شما از معماری می‌فهمید به شدت زیاد میشه. این سیستم قرار نیست شما رو از چرخه مهندسی حذف کنه. اگر لوپ روی کدهای حساسی مثل منطق Auth یا سیستم پرداخت رها بشه، فاجعه امنیتی و منطقی به بار میاد. بهترین نقطه شروع، اتوماتیک کردن رسیدگی به خطاهای CI، آپدیت Dependencyها و رفع باگ‌های مشخص و تکراریه.

به نظر من، کسایی که هنوز دارن روی تکنیک‌های پرامپت‌نویسی وقت می‌ذارن، دارن روی مهارت اشتباهی سرمایه‌گذاری می‌کنن. طراحی لوپ‌های بسته (Closed Loops) که تسک‌های مشخص رو با ابزارهای تست خودکار هندل می‌کنن، چیزیه که تفاوت یک توسعه‌دهنده سینیور و یک کاربر ساده رو در آینده نزدیک مشخص می‌کنه. قبل از ساخت لوپ، مطمئن بشید که تسک شما حداقل هفته‌ای یک‌بار تکرار میشه و تست خودکار براش وجود داره، در غیر این صورت همون پرامپت زدن دستی کاملا منطقی‌تره.

🛠 Join @LLMEngineers Community
10🔥1
معماری Agent Skills در واقع یک فرمت استاندارد و سبک برای بسته‌بندی دانش تخصصی و جریان‌های کاری (Workflows) است تا ایجنت‌های هوشمند بتوانند فراتر از چت کردن ساده، کارهای واقعی و تکرارپذیر انجام دهند. مشکل اصلی ایجنت‌ها این است که مثل ماهی قرمز حافظه کوتاه‌مدت دارند و کانتکست پروژه را بین جلسات مختلف فراموش می‌کنند. استاندارد Agent Skills که توسط Anthropic معرفی شده، این دانش را در قالب یک پوشه شامل دستورالعمل‌ها، اسکریپت‌ها و فایل‌های مرجع پکیج می‌کند تا ایجنت هر بار چرخ را از اول اختراع نکند.

ساختار فنی یک Skill بسیار ساده و در عین حال قدرتمند است. یک پوشه حاوی فایل حیاتی SKILL.md که شامل Metadata (نام و توضیحات) و دستورالعمل‌های گام‌به‌گام است. در کنار آن، پوشه‌های اختیاری مثل scripts برای کدهای اجرایی پایتون یا بش، references برای مستندات فنی و assets برای تمپلیت‌ها قرار می‌گیرند. این یعنی شما دانش دامنه (Domain Expertise) خودتان را، مثلاً نحوه بازبینی کدهای امنیتی یا تحلیل داده‌های مالی، به صورت Version-controlled در کنار سورس‌کد پروژه نگه می‌دارید.

مکانیزم Progressive Disclosure یا افشای تدریجی، برگ برنده این استاندارد برای مدیریت هزینه و کانتکست است. ایجنت در مرحله اول (Discovery) فقط نام و توضیحات اسکیل را می‌خواند تا بداند چه ابزارهایی در اختیار دارد. تنها زمانی که تسک کاربر با توضیحات یک اسکیل مطابقت داشته باشد، مرحله Activation رخ می‌دهد و کل محتوای دستورالعمل‌ها وارد Context Window مدل می‌شود. این روش باعث می‌شود ایجنت بتواند صدها مهارت مختلف داشته باشد بدون اینکه توکن‌های ارزشمند را با اطلاعات غیرضروری هدر دهد.

تفاوت Skill با Plugin در این است که اسکیل فرمت نگارش و توسعه (Authoring) است، در حالی که پلاگین فرمت توزیع و بسته‌بندی (Shipping) محسوب می‌شود. وقتی شما چند اسکیل و کانکتور را برای بقیه هم‌تیمی‌ها بسته‌بندی می‌کنید، در واقع یک پلاگین ساخته‌اید. این تفکیک باعث می‌شود توسعه‌دهنده روی منطق کار (Logic) تمرکز کند و درگیر پیچیدگی‌های استقرار نشود.

به نظر من، بزرگترین مزیت Agent Skills این است که ایجنت را از حالت "حدس زدن" (Confident Guessing) خارج می‌کند. وقتی ایجنت وارد یک سشن جدید می‌شود، هیچ ایده‌ای از کانونشن‌های تیم یا حوادث قبلی پروژه ندارد. با نوشتن یک اسکیل دقیق، شما "قوانین بازی" را یک‌بار می‌نویسید و ایجنت در هر اجرا موظف به رعایت آن‌هاست. این یعنی خروجی ایجنت دیگر وابسته به شانس یا پرامپت‌های تصادفی نیست، بلکه پیرو یک متدولوژی مهندسی‌شده است.

📃 مستندات Agent Skills:
https://agentskills.io


🛠 Join @LLMEngineers Community
4
مفهوم Harness Engineering کلید گمشده تولید نرم‌افزار با ایجنت‌ها در سال ۲۰۲۶ است. فرمول ساده‌ست:
Agent = Model + Harness.
هارنس یعنی هر چیزی که مدل نیست؛ از محدودیت‌ها و ابزارها گرفته تا لوپ‌های فیدبک و فایل‌های استیت. اگر مدل را CPU در نظر بگیریم، هارنس نقش Operating System را بازی می‌کند که منابع را مدیریت می‌کند، کارهای تکراری را Schedule می‌کند و اجازه نمی‌دهد مدل در Context Window خودش غرق شود. واقعیت این است که در پروژه‌های بزرگ، محیطی که مدل در آن کار می‌کند، بسیار مهم‌تر از خود مدل است.

فایل‌های AGENT.md یا CLAUDE.md ابزارهای اصلی این معماری در مخازن کد هستند. این‌ها فایل‌های Markdown هستند که در ریشه پروژه قرار می‌گیرند تا ایجنت در شروع هر سشن بدونه کجاست، کانونشن‌های تیم چیست و معماری فعلی چه وضعیتی دارد. جالب اینجاست که برای رهگیری پیشرفت (Progress Tracking)، استفاده از فایل‌های JSON بسیار پایدارتر از Markdown عمل می‌کند؛ چون ایجنت‌ها در سشن‌های طولانی کمتر تمایل دارند ساختار JSON را تصادفی خراب کنند. این فایل‌ها در واقع RAM ایجنت هستند که بین ری‌استارت‌های مختلف سشن، ثابت می‌مانند.

جدا کردن مرحله Planning از Execution یک اصل حیاتی در Harness Engineering است. ایجنتی که همزمان نقشه می‌کشد و کد می‌زند، خروجی غیرقابل اعتمادی دارد. در هارنس‌های سینیور، ابتدا یک Sprint Contract بسته می‌شود؛ یعنی یک ایجنت (Planner) پیشنهاد می‌دهد که چه تغییری می‌خواهد بدهد و ایجنت دوم (Evaluator) آن را نقد می‌کند. فقط بعد از توافق، مرحله پیاده‌سازی شروع می‌شود. این یعنی Context beats Instructions؛ نشان دادن نقشه راه و وضعیت فعلی فایل‌ها به ایجنت، صد برابر بهتر از نوشتن پرامپت‌های طولانی و انتزاعی جواب می‌دهد.

پدیده Harness Decay واقعیتی است که باید به آن عادت کنیم. هر قطعه در هارنس، در واقع فرضیه‌ای است درباره اینکه مدل چه کاری را نمی‌تواند انجام دهد. با آپدیت شدن مدل‌ها (مثلاً از Opus 4.5 به 4.8)، بخش‌هایی از هارنس که قبلاً ضروری بودند تبدیل به Overhead می‌شوند چون مدل خودش هوشمندتر شده و می‌تواند آن مرحله را حذف کند. به نظر من، مهندسی که هارنس می‌سازد باید با ذهنیت Build to delete کار کند؛ یعنی هر قطعه را جوری طراحی کند که به محض قوی‌تر شدن مدل، بتوان آن را حذف کرد تا هزینه توکن بیهوده بالا نرود.

هزینه اجرای یک لوپ کامل با هارنس مهندسی شده ممکن است ۲۰ برابر بیشتر از یک پرامپت ساده باشد، اما خروجی یک نرم‌افزار واقعی با UI تمیز و منطق درست است، نه یک دموی شکسته که فقط در اسکرین‌شات خوب به نظر می‌رسد. مهندس هوش مصنوعی واقعی در سال ۲۰۲۶ کسی نیست که پرامپت‌های زیباتری می‌نویسد، بلکه کسی است که بهترین Runtime را برای هوش طراحی می‌کند تا ایجنت بتواند در یک محیط ایزوله (Sandbox)، کد بزند، تست بگیرد و در صورت خطا، خودش را اصلاح کند.

📃 مستندات Anthropic درباره ارزیابی ایجنت‌ها:
https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents

📃 مقاله OpenAI درباره لوپ‌های ایجنتی Codex:
https://openai.com/index/unrolling-the-codex-agent-loop/

📃 چارچوب کاری Harness Engineering در arXiv:
https://arxiv.org/abs/2605.13357

به نظر من، دوران کل‌کل سر اینکه کدام مدل بهتر است تمام شده. برنده کسی است که هارنس قوی‌تری بسازد. اگر دیتابیس یا مخزن کد شما شلخته باشد، حتی قوی‌ترین مدل دنیا هم خروجی آشغال تحویل می‌دهد. سرمایه‌گذاری روی خوانایی کد برای ایجنت (Harnessability)، ارزشمندترین کاری است که یک تیم فنی می‌تواند انجام دهد.

🛠 Join @LLMEngineers Community
7👍1
هرمس ایجنت (Hermes Agent) یک Agent Harness از تیم Nous Research است که مدل‌های زبانی رو در یک پکیج عملیاتی از ابزارها، حافظه و کنترلرهای محیطی محصور می‌کنه. برخلاف دستیارهای معمولی که فقط به سوالات جواب میدن، هرمس به عنوان یک Runtime عمل می‌کنه که قابلیت‌هایی مثل کنترل ترمینال و مرورگر، اجرای Cron Job، مدیریت Subagents و اتصال به پیام‌رسان‌هایی مثل تلگرام و اسلک رو به صورت پیش‌فرض درون خودش داره. در واقع هرمس اون "چسب" یا Glueای هست که شما رو از سرهم‌بندی دستی LangGraph، داکر، سیستم‌های زمان‌بندی و دیتابیس‌های حافظه بی‌نیاز می‌کنه.

تفاوت اصلی هرمس در مفهوم Harness Engineering نهفته است. هدف اینجا این نیست که مدل رو با پرامپت‌های طولانی‌تر باهوش‌تر کنیم، بلکه مهندسی کردن محیطی (Environment) است که مدل در آن فعالیت می‌کنه. هرمس این کار رو با لایه‌بندی دقیق انجام میده: لایه ابزارها (Web search, Terminal, Home Assistant)، لایه اجرا (Docker, SSH, Modal) و لایه حافظه (Persistent Memory). یکی از نقاط قوت فنی هرمس، سیستم Skillهاست؛ مهارت‌ها به صورت اسناد دانش (Markdown) در مسیر ~/.hermes/skills/ ذخیره میشن و فقط در صورت نیاز بارگذاری میشن تا مصرف توکن بیهوده بالا نره. این یعنی ایجنت با گذشت زمان و یادگیری از تسک‌های قبلی، پخته‌تر میشه و عملاً با شما رشد می‌کنه.

یکی از جذاب‌ترین بخش‌های هرمس، Compounding Workflows یا جریان‌های کاریِ تجمیعی هست. هرمس از تجربه‌های قبلی اسکیل می‌سازه، اون‌ها رو در حین استفاده اصلاح می‌کنه و یک مدل ذهنی از کاربر و پروژه در سشن‌های مختلف ایجاد می‌کنه. این دقیقاً همون چیزیه که هرمس رو از ابزارهایی مثل Claude Code یا Cursor متمایز می‌کنه. هرمس بیشتر شبیه به یک Junior Operator است که همیشه روی سرور (VPS) شما بیداره، از طریق تلگرام در دسترسه، کارهای روتین رو با Cron انجام میده و تاریخچه تمام تعاملاتش رو برای استفاده در آینده ایندکس می‌کنه.

کاربردهای واقعی هرمس فراتر از کدنویسی ساده‌ست. شما می‌تونید هرمس رو روی یک سرور خونگی یا VPS بالا بیارید و از طریق تلگرام بهش دستور بدید. مثلاً می‌تونید براش تعریف کنید که هر روز صبح اخبار خاصی رو مانیتور کنه، خلاصه‌سازی کنه و براتون بفرسته، یا اینکه مخازن گیت شما رو چک کنه و در صورت وجود آپدیت، یک گزارش تغییرات (Changelog) بنویسه. قدرت واقعی هرمس وقتی مشخص میشه که تسک‌های تکراری پروژه رو به Skill تبدیل کنید؛ کارهایی مثل "ایجاد PR برای ریفکتورینگ" یا "اجرای چک‌لیست ریلیز" که نیاز به دسترسی به ترمینال، گیت و مستندات دارن، با هرمس به تسک‌های خودکار تبدیل میشن.

نکته فنی که نباید ازش غافل شد، امنیت و پایداری در تسک‌های طولانی‌مدت (Long-horizon) هست. اجرای ایجنت‌هایی که دسترسی به Shell دارن و همیشه آنلاین هستن، ریسک‌های امنیتی بزرگی مثل Sleeper Channels رو به همراه داره؛ جایی که ورودی‌های غیرقابل اعتماد می‌تونن به عنوان حافظه یا اسکیل در سیستم ذخیره بشن و بعداً کدهای مخرب اجرا کنن. همچنین، گزارش‌های جدید از شکست‌هایی مثل Channel Fracture در سیستم‌های چند ایجنتی هرمس خبر میدن که نشان‌دهنده چالش‌های جدی در پایداری تحویل پیام‌ها و تزریق حافظه در کارهای سنگین هست. هرمس هنوز یک ابزار تجربی محسوب میشه و نباید بدون ایزولاسیون کامل (Containerization) و لایه‌های تایید انسانی روی سیستم‌های حساس رها بشه.

در نهایت، هرمس برای چه کسی مناسبه؟ اگر تسک‌های شما ماهیت تکرارپذیر دارن (مثل مانیتورینگ روزانه، نگهداری CI/CD، یا مدیریت دانش در ابزاری مثل Obsidian)، هرمس بهترین انتخابه. اما اگر فقط برای یک‌بار کدنویسی یا پرسیدن سوال به هوش مصنوعی نیاز دارید، ابزارهایی مثل Claude Code یا Cursor به دلیل سادگی و تمرکز بر IDE گزینه‌های منطقی‌تری هستن. هرمس زمانی ارزش خودش رو نشون میده که بخواهید یک "سیستم‌عامل برای هوش" بسازید که حافظه، اسکیل و زمان‌بندی رو به صورت یکپارچه مدیریت کنه.

📃 وب‌سایت رسمی هرمس ایجنت:
https://hermes-agent.nousresearch.com

🛠 Join @LLMEngineers Community
🔥4👍2
بزرگترین نشتی توکن در ایجنت‌های برنامه‌نویسی، پرامپت‌ها نیستند، بلکه خروجی ابزارها (Tool Outputs) هستند. لاگ ترمینال، نتایج سرچ طولانی، گزارش‌های تست و درختی از Dependencyها که معمولاً بدون فیلتر وارد کانتکست LLM میشن. ابزار RTK (Rust Token Killer) دقیقاً برای حل همین مشکل ساخته شده. این ابزار به عنوان یک Proxy محلی بین ایجنت و ترمینال قرار می‌گیره، خروجی رو فیلتر و فشرده می‌کنه و ادعا می‌کنه بین ۶۰ تا ۹۰ درصد در مصرف توکن‌های مربوط به دستورات کدنویسی صرفه‌جویی می‌کنه. ایده اصلی اینه: مدل نباید خروجی خام رو ببینه مگه اینکه واقعاً بهش نیاز داشته باشه.

از نظر معماری فنی، RTK یک فایل اجرایی نوشته شده با Rust هست که یک Hook در مسیر ابزارهای AI (مثل Claude Code یا Cursor) نصب می‌کنه. وقتی ایجنت دستوری مثل git status یا pytest میده، RTK قبل از اجرا اون رو به rtk git status تبدیل می‌کنه. سپس دستور واقعی رو اجرا کرده، فقط بخش‌های مهم (مثل خطاهای تست یا نام فایل‌های تغییر یافته) رو استخراج می‌کنه و به مدل برمی‌گردونه. نکته مهم اینه که RTK از LLM برای خلاصه‌سازی استفاده نمی‌کنه، بلکه با استفاده از Regexو ورودی‌های ساختاریافته (مثل JSON) و یک State Machine متنی، به صورت کاملاً Deterministic خروجی رو تمیز می‌کنه.

یکی از بهترین ترفندهای مهندسی در RTK، روش "Tee Recovery" هست. به جای اینکه ۱۰۰۰۰ خط لاگ بیلد خراب شده رو به مدل بده، فقط خطاهای اصلی رو نشون میده و می‌نویسه: "لاگ کامل در فلان مسیر ذخیره شد". اینطوری اگه مدل واقعاً به لاگ کامل نیاز داشت، می‌تونه اون فایل رو بخونه، در غیر این صورت هزاران توکن الکی مصرف نمیشه. برای دستوراتی که قابلیت JSON شدن دارن RTK مستقیماً JSON رو می‌خونه و فشرده می‌کنه که ضریب خطاش به صفر می‌رسه.

البته این ابزار بدون ریسک نیست. پارس کردن دستورات Shell کار پیچیده‌ایه و RTK به درستی دستورات مرکب مثل Pipeها، Redirectها و Heredocها رو دستکاری نمی‌کنه تا رفتار سیستم تغییر نکنه. همچنین، استراتژی امنیتی اون بر اساس مدل Deny > Ask > Allow > Default طراحی شده و در حالت Default هیچ دستوری رو به صورت خودکار اجازه (Allow) نمیده. با این حال، فشرده‌سازی بیش از حد ممکنه باعث بشه ایجنت یه جزئیات مهم رو در دیباگ از دست بده، برای همین گزینه‌هایی مثل -v یا --no-compact برای بازگشت به حالت خام وجود داره.

به نظر من، ایده پشت RTK همون چیزیه که آینده Agent Harnessها رو شکل میده. این ابزار به جای اینکه مدل رو باهوش‌تر کنه، محیط اطرافش رو ایزوله و تمیز می‌کنه (Context Engineering for Terminal). اگر تیم شما داره روی یک محصول بر پایه ایجنت کار می‌کنه، نیازی نیست حتماً از RTK استفاده کنید، اما معماری اون (فیلتر کردن لاگ‌ها، ذخیره خروجی خام در فایل، و برگرداندن فقط سیگنال‌های مهم) یک الگوی بی‌نقص برای پیاده‌سازی در پروژه‌های سطح بالاست.

🛠 Join @LLMEngineers Community
1👍1