مسج ها، سیستم پرامپت و Reasoning Tokens
توضیح جمع و جور از مفاهیم messages، system prompt و reasoning tokens در LLM ها

سلام سلام حال شما؟ خب من یه چند روزیه که نشستم دارم کار با LLM هارو از first principle یاد میگیرم. ( جان مادرتون سر لغات انگلیسی گیر ندید، یه سری لغات رو ترجمه میکنی اصلا بدتر میشن، همین فرست پرینسیپل رو من هرجور ترجمه کنم یه چیز تخیلی از آب در میاد ).
در این راستا بنظرم بهترین جا برای یادگیری پلتفرم AI Hero از مت پوکاک دوست داشتنی هست. اگر کد تایپ اسکریپت میزنید حتما پلتفرم Total Typescript هم چک کنید که همین مت پوکاک ساخته و واقعا زندگی منو متحول کرد.
خب ایشون یک سری مقالاتی داخل سایتش میذاره که خیلی مختصر و آموزنده هست، منم هر روز میشینم اینارو میخونم و سعی میکنم هرچی یاد گرفتمو به زبان خودم براتون بازگو کنم.
منبع هر متنم اون پایین براتون میذارم که حالا اگه زبانتون خوبه یا از من خوشتون نمیاد برید همون متن اصلی رو بخونید و منو دعا بکنید.
حالا بریم سر اصل مطلب و دور هم چهار تا چیز یاد بگیریم.
کاربر و LLM Messages
داستان ازین قراره که معمولا شما یه مسجی میفرستی سمت LLM و بعد LLM یه مسجی میفرسته سمت شما، درسته؟ ازین ساده تر نمیشه گفت:

در این موقعیت بالا، provider که حالا میتونه claude یا openai و اینا باشه، به شما یه دسترسی به اون LLM داده و شما هم نشستی باهاش حرف میزنی و خب اون LLM یه رفتار general از خودش نشون میده و جواب شمارو میده.
ولی ما معمولا میخوایم که رفتار اون LLM رو کاستومایز کنیم و یک رفتار مشخصی رو ازش بیرون بکشیم یا اونو از یه رفتاری منع بکنیم، اینجاس که system prompt وارد داستان میشه.
پرامپت سیستمی یعنی چه؟
حالا system prompt یک مسجی هست که همون اول اول history میشینه و معمولا کاربر خودش نمیتونه اونو ببینه، و فقط LLM میتونه system prompt رو بخونه.
و خب این پرامپت یه قدرت پشم ریزونی داره چرا که اگر LLM بین چیزی که کاربر ازش میخواد و چیزی که سیستم پرامپت ازش میخواد به اختلاف بخوره، system prompt رو اولویت قرار میده و از اون پیروی میکنه.
مثلا بر فرض مثال اگه ما توی system prompt از LLM بخوایم که تحت هر شرایطی فقط با مورس کد جواب بده، LLM دیگه خدارو بنده نیست و کاربر هرچقدر بهش بگه که آقا مثل آدم جواب بده، LLM زیر بار نخواهد رفت.

حالا اینا در حد صحبته که شما تئوری رو متوجه بشی وگرنه راه برای jailbreak هست، و jailbreak که میگن یعنی همینکه که شما بتونی کاری کنی که LLM بیخیال system prompt بشه.
توکن های استدلالی :)))))
خیلی ازین مدل ها میان و به شما reasoning token برمیگردونن ( اینکه خود توکن چیه رو به زودی تو یک داکیومنت جدا مینویسم ).
حالا این reasoning token یعنی چه؟ این یعنی که مدل قبل ازینکه جواب بده، میاد و رو output خودش یه بررسی میزنه.
مثلا دیدی یه موقع به چت جی پی تی میگی سلام چطوری، بعد اون پایین یکم کمرنگ مینویسه که:
- کاربر الان از من سلام کرد و داره میپرسه حالم چطوره، حالم خوبه پس بهش جواب میدم که حالم خوبه
- سلام 👋 حالم خوبه مرسی
این همون reasoning token هست که باعث میشه LLM به شما جواب بهتر و دقیق تری بده.

حالا این در عمل خیلی کاربرد زیادی داره، مثلا شما شاید فایل یا عکس به مسجت اتچ بکنی، بعد ازونور LLM با استفاده از همین reasoning tokens میاد و یه عکس دیگه به شما برمیگردونه و غیره.
ابزار ها ( Tools )
شما میتونی به LLM به یک سری ابزار دسترسی بدی و اون میاد یک سری کارهارو براتون انجام میده. ( البته در صورتی که LLM هم قابلیت tool calling رو داشته باشه ).
مثلا تو همین عکس، کاربر میره به LLM میگه که حاجی برو یه todo.md واسم بنویس و LLM هم میره یه Tool Call میزنه به ابزار writeFile و کارو در میاره:

حالا خود اون Tool Call هم یه آی دی داره هم یک سری اینستراکشن روش هست که بهش میگه چجوری فایل ایجاد کنه و داخلش چیزی بنویسه و این حرفا.
بعد نتیجه Tool Call به همراه id برمیگرده سمت LLM و بعد LLM میاد نتیجه اون Tool Call رو بررسی میکنه، در نهایت به ما یه Summary میده که آره همه چی با موفقیت انجام شد.
در واقع این tools به نوعی یک تعامل بین بین سیستم عامل ما و اون LLM هست:
به عبارتی اون tool call به نوعی درخواست LLM از ما هست، یعنی LLM میگه که من برای اینکه این تسکو انجام بدم نیاز دارم که یه ابزاری رو صدا بزنم.
این تقریبا فلسفه پشت ابزار هایی مثل Claude Code و Cursor هست که میتونن یک سری تسک هایی رو سیستم شما انجام بدن.
خب فعلا اینو تا اینجا داشته باش، تا من به زودی و توی قسمت بعدی برات توکن هارو باز بکنم،
منبع: AI Hero