T1 · Beginner · 7 دقيقةثابت · آخر مراجعة: 2026-08-19مسودة أولى — بنراجعها

رسائل الـ System والـ User — مين بيتكلّم

في سطر واحد · المحادثة مصفوفة رسايل ليها أدوار: system بيحدّد السلوك والشخصية، user كلام المستخدم، assistant ردّ الموديل.

القاموس:GuardrailsLLMPromptPrompt InjectionSystem Prompt
ليه ده مهم؟

معظم التحكّم في سلوك الموديل بيحصل في رسالة الـ system — لو مش فاهم الأدوار، هتحاول تتحكّم من المكان الغلط.

زي مسرحية: الـ system هو ورقة التعليمات للممثّل (إنت مساعد مؤدّب بيرد بالعربي)، والـ user والـ assistant هما الحوار نفسه.

خلينا نفهمها بمثال

زي البريفينج اللي بياخده موظف الكول سنتر قبل ما يبدأ شيفته: القواعد دي ثابتة طول اليوم، والعملاء (الـ user) بيروحوا ويجوا فوقها. لو عايز تغيّر سلوكه، بتعدّل البريفينج، مش بتزنّ على كل عميل لوحده.

تحطّ في الـ system: «رُدّ دايمًا بنقاط قصيرة»، فكل ردود الموديل بعد كده تبقى نقاط — من غير ما تكرّر الطلب كل مرة.

طيب بتحصل إزاي؟

لما تطبيقك بيندَه على الـ API، بيبعت مصفوفة رسايل، وكل رسالة معلّمة بدور. قبل ما توصل للموديل، المصفوفة دي بتتحوّل لنص واحد بعلامات خاصة بتفصل الأدوار عن بعض — والموديل متدرّب إنه يدّي تعليمات الـ system وزن ومرجعية أعلى من كلام الـ user. يعني الفصل مش جدار أمني صلب، ده انحياز اتبنى بالتدريب: قوي في الغالب، بس ممكن كلام user مصاغ بمكر يتغلّب عليه (ودي فكرة الـ prompt injection). رسالة الـ assistant بدورها بتتسجّل في التاريخ، فالموديل بيشوف ردوده السابقة كسياق في الأدوار الجاية.

المصفوفة اللي بتتبعت فعليًا — القواعد الثابتة في الـ system، وكلام المستخدم المتغيّر في الـ user:

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "You are a support agent for Nour ISP. "
                                       "Answer in Egyptian Arabic, max 3 sentences. "
                                       "Never promise a refund."},
        {"role": "user", "content": "النت فاصل عندي من ساعتين، هتعوضوني إزاي؟"},
    ],
)
خلينا نبنيها

🧪 جرّب بنفسك — غيّر رسالة الـ system وشوف الفرق: خد نفس سؤال الـ user («اشرحلي الـ recursion») وشغّله 3 مرات بـ 3 رسايل system مختلفة: (1) «إنت مدرّس لأطفال 10 سنين»، (2) «إنت interviewer صارم في شركة تقنية»، (3) من غير رسالة system خالص. قارن النبرة والعمق والطول. بعدين جرّب تكسر قاعدة: حطّ في الـ system «متستخدمش أي أمثلة بالأكواد» وشوف في الـ user تقدر تقنعه يكسرها ولا لأ — هتحسّ بنفسك إن الفصل انحياز مش جدار.

أشهر الأخطاء
  • حشر كل حاجة في رسالة الـ user. القواعد الثابتة (الشخصية، اللغة، الفورمات، الممنوعات) مكانها الـ system — في الـ user بتضعف وبتتنسي مع طول المحادثة.
  • الثقة إن الـ system حماية أمنية. تعليمات زي «متقولش السعر أبدًا» ممكن تتكسر بـ user message شاطرة — القواعد الأمنية الحقيقية بتتنفذ في كود التطبيق، مش في الـ prompt.
  • نسيان إن تاريخ المحادثة بيتبعت كله كل مرة. لو عدّلت رسالة الـ system في الإصدار الجديد، الجلسات الشغّالة بتاريخها القديم ممكن تتصرف مختلف عن المتوقّع.
إمتى تستخدمها؟

استخدم رسالة الـ system لأي حاجة لازم تفضل ثابتة عبر المحادثة كلها: الشخصية والنبرة، اللغة، شكل المخرجات، حدود الموضوع، وتعليمات التعامل مع الأدوات. وحطّ في رسالة الـ user المحتوى المتغيّر بس: سؤال المستخدم، البيانات، النص المطلوب معالجته.

وإمتى لأ؟

متعتمدش على الـ system لتنفيذ قواعد أمنية أو قانونية — دي شغل الكود والـ guardrails برّه الموديل. ومتحوّلوش لمقال ضخم فيه كل احتمال في الدنيا: التعليمات الكتير المتضاربة بتخلّي الالتزام أضعف، وكل token فيها بتدفع تمنه في كل نداء. وأي بيانات جاية من مستخدم أو من الإنترنت مكانها الـ user message، عمرها ما تتحقن جوه الـ system.

خلينا نبنيهاالقراءة خلصت — دلوقتي ابنيها بإيدك.غيّر رسالة الـ system وشوف الفرق