مهندسی پرامپت: راهنمای جامع از مبتدی تا پیشرفته
مهندسی پرامپت هنر هدایت هوش مصنوعی با کلمات است؛ اینکه چطور سؤال بپرسیم تا دقیقترین، خلاقانهترین و قابلاعتمادترین پاسخ را بگیریم. در این مقاله، از مفاهیم پایه تا پیشرفتهترین تکنیکها مثل Chain of Thought، Tree of Thoughts،ReAct و مهندسی خودکار پرامپت را بهصورت کاربردی و با مثالهای عینی بررسی میکنیم تا بتوانید هوش مصنوعی را از یک «ابزار معمولی» به یک «دستیار حرفهای» در کار و کسبوکار خود تبدیل کنید.
مهندسی پرامپت چیست؟
مهندسی پرامپت (Prompt Engineering) فرایند طراحی و بهینهسازی دستورات ورودی (پرامپتها) است که به مدلهای زبانی بزرگ (LLM) داده میشود تا خروجیهای دقیقتر، مرتبطتر و باکیفیتتری تولید کنند. اگر تا به حال با ChatGPT، Gemini یا Claude کار کردهاید و متوجه شدهاید که با تغییر نحوه پرسش، پاسخ بهتری دریافت میکنید، شما در واقع مهندسی پرامپت انجام دادهاید.
تعریف دقیقتر: مهندسی پرامپت فرایند طراحی پرامپتهای باکیفیت برای هدایت مدلهای زبانی بزرگ به سمت تولید خروجیهای دقیق است. نحوه ساختاردهی پرامپت، کلمات انتخابی، مثالهایی که ارائه میدهید و حتی تنظیمات مدل، همگی بر کیفیت خروجی تأثیر مستقیم دارند.
مدلهای زبانی بزرگ چگونه کار میکنند؟
برای درک مهندسی پرامپت، ابتدا باید بدانیم LLMها چطور عمل میکنند. این مدلها در اصل موتورهای پیشبینی هستند. مدل، متن ورودی (پرامپت شما) را دریافت میکند و بر اساس دادههایی که روی آنها آموزش دیده، پیشبینی میکند که توکن بعدی چه باید باشد.
توکن (Token) تقریباً معادل یک کلمه است (دقیقتر بگوییم، حدود سهچهارم یک کلمه یا کمتر) مدل ابتدا توکن بعدی را پیشبینی میکند، سپس آن را به پرامپت اولیه اضافه میکند و توکن بعد از آن را پیشبینی میکند. این فرایند بارها و بارها تکرار میشود تا مدل تشخیص دهد که خروجی مناسبی تولید شده است.
نکته مهم: مدلهای زبانی یک توکن واحد را پیشبینی نمیکنند، بلکه احتمال هر توکن موجود در واژگان خود را محاسبه میکنند و توکنی با بالاترین احتمال انتخاب میشود.
تنظیمات کلیدی مدل
پیش از ورود به تکنیکهای پرامپتنویسی، لازم است با تنظیمات اصلی مدل آشنا شوید. تنظیم صحیح این پارامترها نقش مهمی در کیفیت خروجی دارد.
طول خروجی (Output Length)
طول خروجی حداکثر تعداد توکنهایی است که مدل در پاسخ به پرامپت شما تولید میکند. نکته مهمی که باید بدانید: کاهش طول خروجی باعث نمیشود مدل پاسخهای مختصرتر و خلاصهتر بدهد. بلکه صرفاً مدل پس از رسیدن به حد تعیینشده، تولید توکن را متوقف میکند، حتی اگر جمله ناقص باشد.
مثال: وقتی طول خروجی در Google AI Studio روی ۵ توکن تنظیم شود و از مدل بخواهید داستانی درباره یک خرس پاندا بنویسد، فقط چند کلمه بیمعنی دریافت میکنید. اما با افزایش به ۵۰۰۰ توکن، داستان کامل نوشته میشود.
دما (Temperature)
دما مهمترین تنظیم در کنترلهای نمونهبرداری است. بهصورت ساده:
- دمای بالا (نزدیک به ۱): خروجیهای خلاقانهتر و متنوعتر → هر بار پاسخ متفاوتی دریافت میکنید
- دمای پایین (نزدیک به ۰): خروجیهای قابل پیشبینی و یکنواختتر → هر بار پاسخ مشابهی دریافت میکنید
بنابراین اگر به دقت و ثبات نیاز دارید (مثلاً استخراج داده)، دما را پایین نگه دارید. اگر به خلاقیت نیاز دارید (مثلاً نوشتن داستان)، دما را بالا ببرید.
Top-K و Top-P
این دو تنظیم نیز بر تنوع خروجی اثر میگذارند:
- Top-K: از بین K توکن با بالاترین احتمال، یکی انتخاب میشود. هرچه K بیشتر باشد، خروجی خلاقانهتر است.
- Top-P: مجموعه واژگان قابل انتخاب را بر اساس احتمال تجمعی محدود میکند.
مقادیر پیشنهادی بهعنوان نقطه شروع: دمای ۰.۲، Top-P برابر ۰.۹۵ و Top-K برابر ۳۰.
بسیاری از این پارامترها در حالت عادی قابل تغییر نیستند، برای تنظیم این پارامترها باید در بخش تنظیمات چتبات مورد نظر کمی جستجوکنید. اما در سرویسهایی مثل Google AI Studio یا ابزارهای تخصصی مثل Studio LLM میتوانید همه پارامتریهای مورد نظر را به طور کامل کنترل کنید.

تکنیکهای پرامپتنویسی
۱. پرامپت Zero-Shot (بدون مثال)
سادهترین نوع پرامپتنویسی است. شما فقط توصیف وظیفه را به مدل میدهید بدون اینکه هیچ نمونهای ارائه کنید. کلمه «Shot» به معنای «مثال» است، پس Zero-Shot یعنی صفر مثال.
مثال:
نظر زیر را به عنوان مثبت، خنثی یا منفی طبقهبندی کن:
«این فیلم یک شاهکار بود و کاش فیلمهای بیشتری مثل این ساخته شود.»
احساس:
این روش برای وظایف ساده مثل طبقهبندی متن یا نوشتن داستان معمولاً کافی است.
۲. پرامپت One-Shot وFew-Shot (با مثال)
در این روش، یک یا چند مثال از ورودی و خروجی مطلوب را به مدل ارائه میدهید تا الگوی مورد نظرتان را بفهمد :
- One-Shot: یک مثال
- Few-Shot: دو مثال یا بیشتر (توصیه: حداقل ۳ تا ۵ مثال)
چرا Few-Shot مؤثر است؟ وقتی میخواهید خروجی در قالب خاصی باشد (مثلاً JSON)، ارائه مثال به مدل کمک میکند ساختار دقیق مورد نظر شما را رعایت کند. بدون مثال، مدل ممکن است هر بار ساختار متفاوتی تولید کند.
مثال عملی (از ویدیو): تبدیل سفارش پیتزا به JSON
سفارش مشتری را به JSON معتبر تبدیل کن.
مثال ورودی: «یک پیتزا کوچک با پنیر، سس گوجه و پپرونی میخوام.»
مثال خروجی:
{
“size”: “small”,
“type”: “pepperoni”,
“ingredients”: [“cheese”, “tomato sauce”, “pepperoni”]
}
حالا این سفارش را تبدیل کن:
«یک پیتزا بزرگ میخوام که نصفش پنیر و موزارلا باشه و نصف دیگه سس گوجه، ژامبون و آناناس.»
مدل با دیدن مثال، دقیقاً همان ساختار JSON را رعایت میکند.
تعداد مثالهای مورد نیاز به این عوامل بستگی دارد :
- پیچیدگی وظیفه
- کیفیت مثالها
- توانمندی مدل مورد استفاده
۳. پرامپت سیستمی (System Prompting)
پرامپت سیستمی بافت کلی و هدف مدل را تعیین میکند. مثلاً مشخص میکنید که مدل باید مترجم باشد یا طبقهبندی کننده متن؛ در ابزارهایی مثل Google AI Studio، بخشی به نام «System Instructions» وجود دارد که میتوانید دستورالعملهای کلی را در آن وارد کنید.
۴. پرامپت متنی (Contextual Prompting)
در این روش، اطلاعات زمینهای و جزئیات مرتبط را به مدل ارائه میدهید تا پاسخ دقیقتری تولید کند.
مثال:
زمینه: شما برای یک وبلاگ درباره بازیهای ویدیویی آرکید دهه ۸۰ مینویسید.
وظیفه: سه موضوع برای مقاله پیشنهاد بده و هر کدام را در چند خط توضیح بده.
در اینجا، زمینه (بازیهای آرکید دهه ۸۰) از وظیفه اصلی جدا شده و مدل میداند پاسخ باید در چه حوزهای باشد.
۵. پرامپت نقشمحور (Role Prompting)
این یکی از قدرتمندترین تکنیکها پرامپتنویسی است و به مدل یک نقش یا هویت میدهید. مثلاً «به عنوان یک توسعهدهنده ارشد عمل کن» یا «نقش یک راهنمای سفر را بازی کن». مدل با دریافت نقش، رفتارها و دانش مرتبط با آن نقش را شبیهسازی میکند.
مثال:
میخوام به عنوان یک راهنمای سفر عمل کنی؛ من محل خودم را مینویسم و تو سه مکان دیدنی نزدیک من پیشنهاد بده.
من در آمستردام هستم و فقط میخوام موزهها رو ببینم.
این تکنیک بهویژه در فریمورکهای ایجنتیک مثل CrewAI بهشدت استفاده میشود، جایی که هر ایجنت دارای نقش (Role)، هدف (Goal) و پیشینه (Backstory) است.

۶. پرامپت گامبهعقب (Step-Back Prompting)
تکنیکی نسبتاً جدید که از مدل میخواهد ابتدا یک سؤال کلیتر مرتبط با وظیفه اصلی را پاسخ دهد و سپس از آن پاسخ برای حل مسئله اصلی استفاده کند.
این تکنیک در دو مرحله انجام میشود:
- انتزاع (Abstraction): یک سؤال سطح بالاتر مطرح میشود
- استدلال (Reasoning): از پاسخ سؤال عمومی برای پاسخ به سؤال اصلی استفاده میشود
مثال عملی :
به جای اینکه مستقیماً بگویید: « یک داستان تکپاراگرافی برای مرحله جدید یک بازی تیراندازی اول شخص بنویس»، ابتدا بپرسید: «بر اساس بازیهای اکشن اول شخص محبوب، ۵ محیط داستانی کلیدی چیست که به یک مرحله چالشبرانگیز کمک میکند؟»
سپس خروجی این سؤال را بهعنوان زمینه به پرامپت اصلی بدهید.
نتیجه: خروجی خلاقانهتر و دقیقتر نسبت به پرامپت مستقیم. طبق تحقیقات، این روش بهبود ۷ تا ۲۷ درصدی نسبت به Chain of Thought دارد.
۷. زنجیره تفکر (Chain of Thought — CoT)
تکنیکی که مدلهای زبانی بزرگ را بهطور اساسی متحول کرد. ایده ساده اما بسیار قدرتمند: از مدل بخواهید گامبهگام فکر کند و مراحل استدلال خود را نشان دهد.
کافی است عبارت «گام به گام فکر کن» (Think step by step) را به انتهای پرامپت اضافه کنید تا کیفیت خروجی بهشکل چشمگیری افزایش یابد.
مثال:
وقتی ۳ ساله بودم، همسرم سه برابر سن من سال داشت.
الان ۲۰ سالمه. همسرم چند سالهست؟
گام به گام فکر کن.
بدون CoT: مدل ممکن است پاسخ اشتباه ۶۳ بدهد.
با CoT: مدل مراحل را مینویسد اختلاف سن ۶ سال → پاسخ صحیح ۲۶.
امروزه بسیاری از مدلهای پیشرو (مدلهای thinking) این قابلیت را بهصورت داخلی دارند. اما برای مدلهای کوچکتر یا قدیمیتر، استفاده دستی از CoT همچنان بسیار مؤثر است.
ترکیب CoT با Few-Shot: میتوانید مثالهایی ارائه دهید که هر کدام مراحل تفکر را نشان میدهند و سپس سؤال جدید بپرسید. مدل همان الگوی تفکر را تقلید میکند.
CoT برای این حوزهها بسیار مؤثر است:
- ریاضیات و علوم
- منطق و استدلال
- حل مسئله پیچیده
- برنامهنویسی
۸. خودسازگاری (Self-Consistency)
این تکنیک محدودیتهای CoT را با استفاده از نمونهبرداری و رأی اکثریت برطرف میکند.
نحوه کار:
- یک پرامپت با CoT بنویسید
- آن را چندین بار (مثلاً ۵ تا ۳۰ بار) اجرا کنید
- پاسخ نهایی هر اجرا را استخراج کنید
- فراوانی هر پاسخ را بشمارید
- پاسخی که بیشترین تکرار را دارد بهعنوان پاسخ نهایی انتخاب کنید
۹. درخت تفکر (Tree of Thoughts — ToT)
تکنیک پیشرفتهای که CoT و Self-Consistency را ترکیب میکند. برخلاف CoT که فقط یک مسیر خطی استدلال را دنبال میکند، ToT مسیرهای متعدد استدلال را همزمان کاوش میکند.
نحوه کار:
- ورودی دریافت میشود
- در هر مرحله، چندین گزینه مختلف بررسی میشود
- بهترین گزینه انتخاب شده و به مرحله بعد منتقل میشود
- این فرایند تکرار میشود تا به خروجی نهایی برسد
ساختار درختی امکان جستجوی عمقی (Deep-First) و سطحی (Breadth-First) را فراهم میکند. این تکنیک برای مسائل پیچیدهای که نیاز به کاوش و ارزیابی چندین مسیر دارند بسیار مناسب است.
نکته عملی: پیادهسازی ToT بهصورت دستی (تایپ در چت) عملی نیست. معمولاً باید با کد یا فریمورکهای مخصوص انجام شود.

۱۰. استدلال + عمل (ReAct)
ReAct مخفف Reason and Act است و یک پارادایم برای حل وظایف پیچیده با ترکیب استدلال زبان طبیعی و ابزارهای خارجی (جستجوی وب، اجرای کد و غیره) است.
نحوه کار:
- مدل درباره مسئله فکر (Thought) میکند
- یک اقدام (Action) انجام میدهد (مثلاً جستجو در وب)
- نتیجه را مشاهده (Observation) میکند
- بر اساس مشاهده، دوباره فکر میکند و اقدام بعدی را انجام میدهد
ReAct در واقع همان مفهوم ایجنتها (Agents) است. بسیاری از مدلهای امروزی مثل Gemini 2.5 Pro این قابلیت را بهصورت داخلی دارند (با ابزارهایی مثل جستجوی گوگل، اجرای کد و فراخوانی تابع).
مثال:
پرامپت: «اعضای گروه متالیکا در مجموع چند فرزند دارند؟»
مدل با ReAct:
- فکر: متالیکا ۴ عضو دارد → باید برای هر کدام جستجو کنم
- اقدام: جستجو → جیمز هتفیلد چند فرزند دارد؟ → ۳
- اقدام: جستجو → لارس اولریش چند فرزند دارد؟ →…
- جمعبندی نتایج
برای پیادهسازی ReAct، فریمورکهایی مثل LangChain و CrewAI ابزارهای آمادهای ارائه میدهند.
قاعده کلی:
- از ToT استفاده کنید اگر مسئله نیاز به بررسی مسیرهای متعدد دارد
- از ReAct استفاده کنید اگر وظیفه به بازخورد بلادرنگ و اقدام گامبهگام نیاز دارد
۱۱. مهندسی خودکار پرامپت (Automatic Prompt Engineering)
به جای نوشتن دستی پرامپتهای پیچیده، از خود هوش مصنوعی برای نوشتن پرامپت استفاده کنید.
روش عملی Matthew Berman :
- یک توصیف چندجملهای از چیزی که میخواهید بنویسید
- از مدل بخواهید یک PRD (سند نیازمندیها) کامل بنویسد
- PRD را به مدل دیگری بدهید و بخواهید بر اساس آن کد یا محتوا تولید کند
همچنین میتوانید بگویید :«این پرامپت ساده من است. آن را با تکنیک Chain of Thought بازنویسی کن» و مدل پرامپت پیشرفتهتری برایتان مینویسد.
در سطح پژوهشی، فریمورک APE (Automatic Prompt Engineer) توسط محققان معرفی شده که بهصورت خودکار پرامپتهای مختلف تولید و ارزیابی میکند و بهترین را انتخاب میکند.
۱۲. پرامپت با کد (Code-Based Prompting)
یک تکنیک هوشمندانه؛ به جای اینکه مستقیماً از مدل بخواهید به سؤال پاسخ دهد، از آن بخواهید کد بنویسد و اجرا کند.
مثال کلاسیک:
به جای:
«چند حرف R در کلمه Strawberry وجود دارد؟»
بنویسید:
«کدی بنویس که تعداد حرف R در یک کلمه دادهشده را بشمارد.
با کلمه Strawberry شروع کن و کد را اجرا کن»
چرا؟ چون توانایی مدل در نوشتن کد صحیح بسیار بیشتر از تواناییاش در شمارش دقیق حروف است. این تکنیک تضمین میکند که تا زمانی که کد درست باشد، پاسخ هم درست خواهد بود.
جدول مقایسه تکنیکهای پرامپتنویسی
| تکنیک | پیچیدگی | بهترین کاربرد | محدودیت اصلی |
| Zero-Shot | ساده | وظایف عمومی و ساده | دقت کمتر در وظایف پیچیده |
| Few-Shot | متوسط | خروجی با قالب مشخص | نیاز به مثالهای باکیفیت |
| Role Prompting | ساده | تخصصیسازی پاسخ | وابسته به دانش مدل از نقش |
| Step-Back | متوسط | مسائل نیازمند دانش پسزمینه | نیاز به دو مرحله پرامپت |
| Chain of Thought | متوسط | ریاضی، منطق، استدلال | کندتر و پرهزینهتر |
| Self-Consistency | بالا | وظایف نیازمند دقت بالا | هزینه و تأخیر زیاد |
| Tree of Thoughts | بالا | مسائل پیچیده چندمسیره | نیاز به پیادهسازی کدی |
| ReAct | بالا | وظایف نیازمند ابزار خارجی | پیچیدگی پیادهسازی |
| Automatic PE | متوسط | بهینهسازی پرامپت | نیاز به ارزیابی نتایج |
بهترین شیوهها (Best Practices)
بر اساس راهنمای گوگل، این اصول را رعایت کنید:
مثال ارائه دهید
هر جا ممکن است، مثال بدهید بهویژه وقتی خروجی باید در قالب مشخصی باشد.
با سادگی شروع کنید
ابتدا سادهترین نسخه پرامپت را بنویسید. فقط در صورت نیاز، جزئیات و دستورالعملهای بیشتر اضافه کنید.
خروجی مورد انتظار را مشخص کنید
اگر JSON میخواهید، بگویید JSON. اگر لیست بولتی میخواهید، مشخص کنید. هر چه خروجی مورد انتظار دقیقتر تعریف شود، نتیجه بهتر خواهد بود.
دستورالعمل بدهید، نه محدودیت
به جای گفتن «این کار را نکن»، بگویید «این کار را بکن». دستورالعملهای مثبت مؤثرتر از محدودیتهای منفی هستند.
طول توکن خروجی را مدیریت کنید
بهویژه در کاربردهای تولیدی (Production)، مدیریت طول خروجی برای بهینهسازی هزینه و تأخیر ضروری است.
از متغیرها استفاده کنید
در پرامپتهای تکرارشونده، از متغیر استفاده کنید تا بتوانید بهصورت برنامهای مقادیر مختلف را جایگزین کنید.
مثال:
متغیرها: {city} = “تهران”
پرامپت: تو یک راهنمای سفر هستی. یک حقیقت جالب درباره شهر {city} بگو.
بهروز بمانید
مدلهای جدید دائماً منتشر میشوند و هر کدام قابلیتها و محدودیتهای متفاوتی دارند. شناخت مدل مورد استفاده به شما کمک میکند پرامپتهای مؤثرتری بنویسید.
آزمایش و تکرار کنید
مهندسی پرامپت یک فرایند تکراری است. پرامپت اولیه بنویسید، نتیجه را ارزیابی کنید، و سپس بهبود دهید. مستندسازی نسخههای مختلف پرامپتها نیز توصیه میشود.
مهندسی پرامپت میتواند دقت هوش مصنوعی را تا ۴۰ تا ۶۰ درصد نسبت به پرامپتهای پایه افزایش دهد و توهمات مدل را کاهش دهد. با یادگیری و تمرین این تکنیکها، میتوانید بیشترین بهره را از ابزارهای هوش مصنوعی ببرید چه یک توسعهدهنده باشید، چه یک تولیدکننده محتوا، یا هر فردی که بهطور روزمره با LLMها کار میکند.
مطالب مرتبط:
راهنمای گام به گام نوشتن پرامپت نویسی برای هوش مصنوعیراهنمای گام به گام نوشتن پرامپتهای مؤثر برای هوش مصنوعیمهندسی پرامپت را از نزدیک بشناسید