A highly technical blog tailored for AI engineers.
Chat: @AI_LLMs
Personal blog: mshojaei77.github.io/
Contact me: @realshojaeii
Post #335
1.69K
بزرگترین نشتی توکن در ایجنتهای برنامهنویسی، پرامپتها نیستند، بلکه خروجی ابزارها (Tool Outputs) هستند. لاگ ترمینال، نتایج سرچ طولانی، گزارشهای تست و درختی از Dependencyها که معمولاً بدون فیلتر وارد کانتکست LLM میشن. ابزار RTK (Rust Token Killer) دقیقاً برای حل همین مشکل ساخته شده. این ابزار به عنوان یک Proxy محلی بین ایجنت و ترمینال قرار میگیره، خروجی رو فیلتر و فشرده میکنه و ادعا میکنه بین ۶۰ تا ۹۰ درصد در مصرف توکنهای مربوط به دستورات کدنویسی صرفهجویی میکنه. ایده اصلی اینه: مدل نباید خروجی خام رو ببینه مگه اینکه واقعاً بهش نیاز داشته باشه.
از نظر معماری فنی، RTK یک فایل اجرایی نوشته شده با Rust هست که یک Hook در مسیر ابزارهای AI (مثل Claude Code یا Cursor) نصب میکنه. وقتی ایجنت دستوری مثل
یکی از بهترین ترفندهای مهندسی در RTK، روش "Tee Recovery" هست. به جای اینکه ۱۰۰۰۰ خط لاگ بیلد خراب شده رو به مدل بده، فقط خطاهای اصلی رو نشون میده و مینویسه: "لاگ کامل در فلان مسیر ذخیره شد". اینطوری اگه مدل واقعاً به لاگ کامل نیاز داشت، میتونه اون فایل رو بخونه، در غیر این صورت هزاران توکن الکی مصرف نمیشه. برای دستوراتی که قابلیت JSON شدن دارن RTK مستقیماً JSON رو میخونه و فشرده میکنه که ضریب خطاش به صفر میرسه.
البته این ابزار بدون ریسک نیست. پارس کردن دستورات Shell کار پیچیدهایه و RTK به درستی دستورات مرکب مثل Pipeها، Redirectها و Heredocها رو دستکاری نمیکنه تا رفتار سیستم تغییر نکنه. همچنین، استراتژی امنیتی اون بر اساس مدل Deny > Ask > Allow > Default طراحی شده و در حالت Default هیچ دستوری رو به صورت خودکار اجازه (Allow) نمیده. با این حال، فشردهسازی بیش از حد ممکنه باعث بشه ایجنت یه جزئیات مهم رو در دیباگ از دست بده، برای همین گزینههایی مثل
به نظر من، ایده پشت RTK همون چیزیه که آینده Agent Harnessها رو شکل میده. این ابزار به جای اینکه مدل رو باهوشتر کنه، محیط اطرافش رو ایزوله و تمیز میکنه (Context Engineering for Terminal). اگر تیم شما داره روی یک محصول بر پایه ایجنت کار میکنه، نیازی نیست حتماً از RTK استفاده کنید، اما معماری اون (فیلتر کردن لاگها، ذخیره خروجی خام در فایل، و برگرداندن فقط سیگنالهای مهم) یک الگوی بینقص برای پیادهسازی در پروژههای سطح بالاست.
🛠 Join @LLMEngineers Community
از نظر معماری فنی، 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
- 👍 5
- ❤ 2
- 🔥 1



