Anthropic ۸۰٪ از پرامپت سیستمی (system prompt) که Claude Code را هدایت میکند، حذف کرد و گزارش داد که هیچ افت عملکردی در توانایی آن برای کدنویسی مشاهده نشده است. این آزمایش نشان میدهد که با افزایش توانمندی مدلهای زبانی بزرگ (LLMs)، توسعهدهندگان میتوانند بدون آسیب رساندن به عملکرد، داربستهای حجیم و سنگینی را که برای کنترل مدلها استفاده میکردند، هرس کنند.
چرا این پرامپت در وهله اول اهمیت داشت
زمانی که Claude Code عرضه شد، پرامپت سیستمی آن دهها قانون را فهرست کرده بود. مهندسان هر زمان که باگی ظاهر میشد، خطوط جدیدی اضافه میکردند اما بهندرت چیزی را که به نظر میرسید کار میکند، حذف میکردند. با گذشت زمان، این پرامپت به یک سند پیچیده و ایستا تبدیل شد.
شکاف مدل در حال بسته شدن است
آن قوانین اضافی، یک «شکاف مدل» (model gap) را پنهان کرده بودند – یعنی تفاوت بین آنچه مدل قادر به انجام آن بود و آنچه اپلیکیشن از آن انتظار داشت. در سال ۲۰۲۴، توسعهدهندگان مجبور بودند محدودیتهای سختگیرانهای را تعیین کنند تا مثلاً از کامنتگذاری بیش از حد کد توسط مدل جلوگیری کنند. امروزه همان مدل میتواند سبک مورد نظر را از یک دستور واحد مانند «مطابق با سبک کد موجود عمل کن» استنباط کند. قوانین از ابزار کمک به عوامل ایجاد نویز تبدیل شدهاند.
تغییرات در مهندسی کانتکست (Context Engineering)
حذفهای Anthropic نشاندهنده یک تغییر گستردهتر در نحوه ساختاردهی پرامپتها توسط توسعهدهندگان است:
- دستورالعملهای حیاتی یکباره – یک قانون را یک بار بیان کنید و اجازه دهید مدل آن را حفظ کند.
- پارامترهای ابزار-محور به جای مثالهای few-shot – شکل ورودی و خروجی را در طرحواره (schema) ابزار توصیف کنید و اجازه دهید مدل آنها را پر کند.
- افشای تدریجی (Progressive disclosure) – فقط کانتکست مورد نیاز برای مرحله فعلی را ارائه دهید و در صورت نیاز، موارد بیشتر را بعداً اضافه کنید.
- انتقال راهنماییهای ایستا به توضیحات ابزار – مواردی مانند «از camelCase برای متغیرها استفاده کن» باید در مشخصات (spec) ابزار باشند، نه در پرامپت سیستمی.
- جایگزینی قوانین سختافزاری با روشهای اکتشافی (heuristics) – اجازه دهید مدل تصمیم بگیرد چه زمانی یک قانون اعمال شود، به جای اینکه آن را بدون قید و شرط اجرا کند.
این تاکتیکها موثر هستند زیرا مدل از پیش بسیاری از قراردادهایی را میداند که قبلاً نیاز به تأکید صریح داشتند.
خطر هرس بیش از حد
همان هرس کردنی که به مدلهای پیشرو (frontier models) سود میرساند، میتواند به مدلهای کوچکتر آسیب بزند. Anthropic خاطرنشان میکند که مدلهایی مانند Haiku هنوز برای حفظ مسیر درست، به پرامپتهای غنیتر متکی هستند. حذف بیش از حد راهنما از یک مدل با توانایی کمتر ممکن است خطاهایی را که پرامپت اصلی سعی در جلوگیری از آنها داشت، دوباره بازگرداند: نامگذاریهای ناسازگار، کامنتهای بیش از حد، یا نادیده گرفتن حالات مرزی (edge cases).
چگونه پرامپتهای خود را ممیزی کنید
اگر یک خط لوله (pipeline) تولید کد را مدیریت میکنید، ممیزی پرامپت میتواند وزنهای اضافی را آشکار کند. یک چکلیست کاربردی به این صورت است:
- بازتنظیم تراکم دستورالعملها – میزان راهنمایی را با مدلی که واقعاً اجرا میکنید مطابقت دهید.
- حذف دستورالعملهای تکراری – اگر قانونی هم در پرامپت سیستمی و هم در توضیحات ابزار ظاهر شده است، آن را فقط یک بار نگه دارید.
- تبدیل مثالهای موفق به طرحوارههای غنیتر – مثالهای عینی را با انواع پارامترهای شمارشی یا enums جایگزین کنید.
- خارج کردن جزئیات موقعیتی – بلوکهای مرجع بزرگ را به فایلهای جداگانهای منتقل کنید که مدل بتواند در صورت نیاز آنها را فراخوانی کند.
- حذف قوانین مربوط به رفتارهای از بین رفته – اگر مدل دیگر کامنتهای ناخواسته اضافه نمیکند، قانون «بدون کامنت» را حذف کنید.
به حس درونی خود تکیه نکنید. از یک «قانون ۳ مرحلهای» ساده استفاده کنید: پنج وظیفه کدنویسی واقعگرایانه را اجرا کنید، نتایج را قبل و بعد از هر حذف مقایسه کنید و هرگونه افت عملکرد (regression) را یادداشت کنید.
- خط پایه (Baseline) – عملکرد را با پرامپت کامل اندازهگیری کنید.
- حذف – یک خط یا بلوک کاندید را حذف کنید.
- اجرای مجدد – همان پنج وظیفه را دوباره اجرا کنید.
اگر خروجی تغییر کرد، خطی را شناسایی کردهاید که هنوز اهمیت دارد. اگر نه، آن خط را میتوان با خیال راحت حذف کرد.
آنچه توسعهدهندگان باید در مرحله بعد زیر نظر بگیرند
در حال حاضر، نتیجهگیری روشن است: پرامپت سیستمی یک سند زنده است. با هر خط به گونهای برخورد کنید که عمر محدودی دارد، بهطور منظم ممیزی کنید و اجازه دهید توانمندی رو به رشد مدل، کارهای سنگین را انجام دهد.
Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9
