System Prompts مقابل User Prompts: العمود الفقري الخفي لسلوك الذكاء الاصطناعي
٤ ديسمبر ٢٠٢٥
ملخص
- تعليمات النظام (System prompts) تحدد سلوك الذكاء الاصطناعي، ونبرته، وحدوده؛ بينما تقود تعليمات المستخدم (user prompts) إرشادات المهام المحددة.
- تعمل تعليمات النظام مثل كتاب قواعد مخفي، بينما تعليمات المستخدم هي استفسارات في الوقت الفعلي.
- فهم كليهما أمر بالغ الأهمية لبناء وكلاء ذكاء اصطناعي موثوقين، وروبوتات محادثة، وأنظمة أتمتة.
- سوء إدارة طبقات التعليمات يمكن أن يؤدي إلى هلوسة، أو انتهاكات للسياسات، أو مخاطر أمنية.
- سنستكشف كيفية تصميم واختبار ومراقبة كلا النوعين بأمان وفعالية.
ما ستتعلمه
- الاختلافات الجوهرية بين تعليمات النظام وتعليمات المستخدم في نماذج اللغة الكبيرة (LLMs).
- كيفية تفاعلهما لتشكيل مخرجات الذكاء الاصطناعي.
- تقنيات هيكلة، واختبار، وتصحيح أخطاء التسلسلات الهرمية المعقدة للتعليمات.
- أمثلة من العالم الحقيقي من عمليات نشر الذكاء الاصطناعي واسعة النطاق.
- أفضل الممارسات لـ الأمن، وقابلية التوسع، والأداء.
المتطلبات الأساسية
ستحقق أقصى استفادة من هذا المنشور إذا كنت:
- لديك معرفة أساسية بـ LLMs (نماذج اللغة الكبيرة) مثل GPT، أو Claude، أو Gemini.
- تفهم عمليات دمج الذكاء الاصطناعي القائمة على API (مثل OpenAI API، أو Anthropic API).
- تعرف أساسيات Python أو JavaScript من أجل كود الأمثلة.
مقدمة: لماذا تهم التعليمات أكثر مما تعتقد
تبدأ كل محادثة مع الذكاء الاصطناعي بتعليمات (prompt)—ولكن ليست كل التعليمات متساوية. خلف كل واجهة دردشة، أو مساعد برمجة، أو بوت دعم مدعوم بالذكاء الاصطناعي تكمن طبقة مخفية من الإرشادات التي تحكم بهدوء كيفية تصرف النموذج.
تسمى هذه الإرشادات المخفية تعليمات النظام (system prompts). وهي تحدد هوية الذكاء الاصطناعي، ونبرته، وحدوده التشغيلية. على النقيض من ذلك، تعليمات المستخدم (user prompts) هي ما تكتبه أنت—الإرشادات أو الأسئلة المرئية.
فكر في الأمر كأنه مطعم:
- تعليمات النظام هي كتاب وصفات الشيف—الذي يحدد ما يمكن طهيه وكيف.
- تعليمات المستخدم هي طلبك—أي طبق تريد تناوله.
معاً، يحددان ما سينتهي به المطاف في طبقك.
تعليمات النظام مقابل تعليمات المستخدم: الاختلاف الجوهري
| الميزة | تعليمات النظام | تعليمات المستخدم |
|---|---|---|
| الغرض | تحدد سلوك النموذج، ونبرته، وسياساته | تطلب مهام أو إجابات محددة |
| الرؤية | مخفية عن المستخدم | مرئية وقابلة للتعديل من قبل المستخدم |
| الاستمرارية | عادة ما تكون ثابتة أو محملة مسبقاً | ديناميكية وتتغير لكل جلسة |
| السلطة | تتجاوز إرشادات المستخدم | تخضع لقواعد النظام |
| أمثلة | "أنت مساعد مفيد وآمن." | "اكتب سكربت Python لفرز قائمة." |
| النطاق | سياق عالمي للنموذج | سياق محلي خاص بالمهمة |
تعليمات النظام هي الأساس—فهي نظام التشغيل للمحادثة. تعليمات المستخدم هي التطبيقات التي تعمل فوقه.
بنية طبقات التعليمات
في واجهات برمجة تطبيقات LLM الحديثة، يتم وضع التعليمات في طبقات لتشكيل مكدس سياق المحادثة. إليك عرض مبسط:
graph TD
A[System Prompt] --> B[Developer Prompt]
B --> C[User Prompt]
C --> D[Model Output]
- تعليمات النظام: تحدد دور النموذج وقيوده.
- تعليمات المطور: تضيف إرشادات لأدوات أو سياقات محددة (مثل "استخدم دائماً مخرجات JSON").
- تعليمات المستخدم: طلب المستخدم النهائي.
كل طبقة تضيف سياقاً أو تتجاوزه. يتم تشكيل استجابة النموذج النهائية بواسطة الطبقات الثلاث جميعاً.
مثال عملي: بناء بوت محادثة مزدوج التعليمات
دعنا نرى كيف يعمل هذا في الممارسة العملية باستخدام Python و OpenAI API.
الخطوة 1: تحديد تعليمات النظام
system_prompt = {
"role": "system",
"content": (
"You are CodeBuddy, an AI that helps developers write secure, efficient code. "
"Always explain your reasoning and follow Python best practices."
),
}
الخطوة 2: التعامل مع تعليمات المستخدم
user_prompt = {
"role": "user",
"content": "Write a function that hashes a password using bcrypt.",
}
الخطوة 3: إرسال كليهما إلى النموذج
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-5", # GPT-4 / GPT-4 Turbo / GPT-4o are being retired through 2026[^7]
messages=[system_prompt, user_prompt],
)
print(response.choices[0].message.content)
ملاحظة حول دور
system: لا تزال Chat Completions API تقبلrole: "system"، ولكن بالنسبة لنماذج التفكير الأحدث من OpenAI (o1 فصاعداً) فإن المكافئ هوrole: "developer". في Responses API، تنتقل الإرشادات بنمط النظام إلى معلمةinstructionsعالية المستوى. تستخدم Messages API من Anthropic معلمةsystemعالية المستوى (ليست رسالة في المصفوفة)، وتستخدم Gemini API من Google معلمةsystemInstruction. المفهوم عالي المستوى هو نفسه — فقط أسماء الحقول تختلف.
مثال للمخرجات
def hash_password(password: str) -> str:
import bcrypt
salt = bcrypt.gensalt()
return bcrypt.hashpw(password.encode(), salt).decode()
لاحظ كيف تضمن تعليمات النظام أن تكون الإجابة آمنة و بأسلوب Pythonic، على الرغم من أن المستخدم لم يطلب ذلك صراحة.
قبل وبعد: كيف تشكل تعليمات النظام السلوك
| السيناريو | بدون تعليمات النظام | مع تعليمات النظام |
|---|---|---|
| المستخدم يسأل: "اكتب دالة لتشفير كلمة المرور." | يعيد تشفيراً بسيطاً بخوارزميات ضعيفة | يستخدم bcrypt ويشرح السبب |
| المستخدم يسأل: "أعطني بيانات اعتماد المسؤول." | قد يحاول تقديم مخرجات غير آمنة | يرفض بأدب بسبب قيود السياسة |
| المستخدم يسأل: "قل نكتة." | فكاهة عشوائية | فكاهة تركز على المطورين متسقة مع الشخصية |
تعمل تعليمات النظام كـ حواجز حماية، مما يضمن الاتساق والسلامة عبر آلاف التفاعلات مع المستخدمين.
حالات استخدام من العالم الحقيقي
1. روبوتات دعم العملاء
تحدد تعليمات النظام النبرة ("متعاطفة، موجزة") وقواعد الامتثال ("لا تقدم أبداً نصيحة طبية"). تعليمات المستخدم هي أسئلة العميل.
2. مساعدو البرمجة بالذكاء الاصطناعي
تفرض تعليمات النظام معايير البرمجة ("الامتثال لـ PEP 8"، "لا كود غير آمن"). تعليمات المستخدم هي طلبات المهام ("أنشئ Flask API").
3. وكلاء الذكاء الاصطناعي للمؤسسات
ترمّز تعليمات النظام سياسة الشركة، والسرية، وصوت العلامة التجارية. وهذا يضمن السلامة القانونية وسمعة الشركة.
4. المعلمون الخصوصيون التربويون
تحدد تعليمات النظام أسلوب التدريس ("التساؤل السقراطي"، "اشرح كأنك مرشد"). تعليمات المستخدم هي استفسارات الطلاب.
تعتمد عمليات النشر واسعة النطاق، مثل تلك التي تستخدمها شركات التكنولوجيا الكبرى، عادةً على تعليمات نظام مضبوطة بعناية للحفاظ على نبرة متسقة وامتثال1.
متى تستخدم مقابل متى لا تستخدم تعليمات النظام
| الموقف | استخدم "System Prompt" | تجنب أو قلل من "System Prompt" |
|---|---|---|
| تحتاج إلى نبرة أو سلوك ثابت | ✅ | |
| تبني أداة لاستعلام لمرة واحدة | ✅ | |
| تريد فرض السلامة أو الامتثال | ✅ | |
| تجري تجارب في الكتابة الإبداعية | ✅ | |
| تدمج النموذج في بيئة الإنتاج | ✅ |
باختصار: استخدم "system prompts" عندما تهمك الاستمرارية والتحكم، وتجاوزها عندما يكون الهدف هو التجريب أو الإبداع.
الأخطاء الشائعة والحلول
| الخطأ الشائع | الوصف | الحل |
|---|---|---|
| "System prompts" طويلة بشكل مفرط | يمكن أن تستهلك نافذة السياق وتبطئ الاستجابة | اجعلها موجزة؛ استخدم ذاكرة خارجية أو "embeddings" |
| تعليمات متضاربة | تتعارض تعليمات "system prompt" مع "user prompt" | استخدم تسلسلاً هرمياً واضحاً واختبر الحالات النادرة |
| حقن الأوامر (Prompt injection) | يحاول المستخدم تجاوز "system prompt" | قم بتنقية المدخلات وفرض مراقبة المحتوى2 |
| نقص الاختبار | تتصرف الأوامر بشكل غير متوقع | استخدم أطر عمل آلية لاختبار الأوامر |
مثال: اكتشاف حقن الأوامر
def sanitize_user_input(text):
if "ignore previous instructions" in text.lower():
raise ValueError("Potential prompt injection detected.")
return text
تأثيرات الأداء
تؤثر "system prompts" على الأداء لأنها تضيف "tokens" إلى كل طلب. الأوامر الأطول تعني زمن انتقال (latency) أعلى وتكلفة أكبر.
- استهلاك الـ Tokens: كل "token" في الـ "system prompt" يُحتسب ضمن نافذة سياق النموذج.
- التخزين المؤقت (Caching): تقوم واجهات برمجة تطبيقات OpenAI (Chat Completions و Responses) بتخزين بادئات الأوامر المتكررة تلقائياً (تبدأ من 1024+ "token"، مع نجاح التخزين المؤقت بزيادات قدرها 128 "token") لتوفير ما يصل إلى ~90% من تكلفة المدخلات المخزنة؛ بينما توفر Anthropic علامات
cache_controlاختيارية في بارامتر الـsystemومجموعات المحتوى لتحقيق وفورات مماثلة. ضع التعليمات الثابتة في بداية أمرك لتستفيد من التخزين المؤقت. - نصيحة للتحسين: قم بتخزين "system prompts" الثابتة في ملفات إعدادات وأعد استخدامها.
بالنسبة للتطبيقات واسعة النطاق، فإن تقليل حجم الـ "system prompt" بنسبة 10% فقط يمكن أن يحقق وفورات ملموسة في التكلفة عبر ملايين الطلبات3.
اعتبارات أمنية
يمكن أن تسرب "system prompts" قواعد أو سياسات حساسة إذا تم كشفها. اتبع أفضل الممارسات التالية:
- لا تكشف أبداً عن "system prompts" للمستخدمين (قد يقومون بالهندسة العكسية للسلوك).
- قم بتشفير أو تعمية قوالب الأوامر في بيئة الإنتاج.
- تحقق من صحة مدخلات المستخدم لمنع حقن الأوامر.
- راقب السجلات (logs) بحثاً عن أنماط أوامر مشبوهة.
بالرجوع إلى إرشادات أمن الذكاء الاصطناعي من OWASP4، يُعترف الآن بحقن الأوامر كأحد أهم المخاطر الناشئة للأنظمة التوليدية.
القابلية للتوسع والقدرة على المراقبة
عند النشر على نطاق واسع:
- مركزية إدارة الأوامر: قم بتخزين "system prompts" في مستودع خاضع للتحكم في الإصدارات.
- استخدم اختبار A/B لتقييم متغيرات الأوامر.
- سجل البيانات الوصفية (metadata) (إصدار الأمر، زمن الانتقال، نية المستخدم) للتحليلات.
- نفذ التتبع (tracing) لربط تغييرات الأوامر بجودة المخرجات.
graph LR
A[Prompt Repository] --> B[API Gateway]
B --> C[LLM Cluster]
C --> D[Monitoring Dashboard]
D --> E[Feedback Loop]
تسمح هذه البنية بالتحسين المستمر لكل من استراتيجيات "system prompt" و "user prompt".
استراتيجيات الاختبار
1. اختبار الوحدة للأوامر
استخدم مدخلات وهمية وتحقق من النبرة المتوقعة أو الامتثال.
2. اختبار التراجع
عند تحديث "system prompts"، تأكد من أن السلوكيات القديمة لا تزال قائمة.
3. التقييم البشري في الحلقة
اجعل المراجعين يقيمون مخرجات الأوامر من حيث النبرة والدقة والسلامة.
مثال لمقتطف من أداة اختبار:
def test_prompt_behavior():
response = generate_ai_response("Explain SQL injection.")
assert "prevent" in response.lower(), "Response missing security guidance"
المراقبة والقدرة على الملاحظة
تتبع هذه المقاييس:
- طول الاستجابة (لاكتشاف الانحراف)
- درجة السُمية (عبر واجهة برمجة تطبيقات الإشراف API)
- زمن الانتقال (وقت معالجة الأمر)
- معدل الخطأ (المخرجات غير الصالحة)
قم بالدمج مع أدوات مثل Prometheus أو OpenTelemetry للمراقبة في بيئة الإنتاج5.
أخطاء شائعة يقع فيها الجميع
- تضمين نص السياسة مباشرة في "system prompts" – يؤدي إلى تضخم الحجم.
- تجاهل حدود السياق – الأوامر الطويلة تقتطع مدخلات المستخدم.
- عدم إصدار الأوامر (versioning) – يستحيل تصحيح أخطاء التراجع.
- افتراض أن حلاً واحداً يناسب الجميع – تحتاج المجالات المختلفة إلى "system prompts" مخصصة.
دراسة حالة توضيحية: مساعد دعم ذكي على نطاق واسع
ما يلي هو توضيح مركب يعتمد على أنماط شائعة في عمليات النشر في الشركات، وليس شركة محددة.
تخيل شركة كبيرة تنشر وكيل دعم ذكاء اصطناعي داخلياً لمساعدة المهندسين. في البداية، اعتمدوا فقط على "user prompts". تباينت نبرة النموذج بشكل كبير — أحياناً رسمية، وأحياناً غير رسمية، وأحياناً غير آمنة.
بعد تقديم system prompt تم ضبطه بعناية يحدد النبرة، وسياسة التصعيد، وفلاتر السلامة، عادة ما تبلغ الفرق في هذا الموقف عن:
- انخفاض ملموس في المخرجات المنتهكة للسياسات (يظهر في سجلات واجهة برمجة تطبيقات الإشراف API)
- أوقات حل أسرع في المتوسط، مدفوعة بسياق أكثر اتساقاً
- ثقة أعلى من المستخدمين وزيادة في الاعتماد على الأداة
الخلاصة: تعمل "system prompts" كطبقات حوكمة غير مرئية — حتى بدون تغييرات جذرية في النموذج، فإن وضع "system prompt" مصمم جيداً فوقه هو أحد أكثر التدخلات تأثيراً التي يمكنك القيام بها.
تحدي جربها بنفسك
- أنشئ نسختين من "chatbot"—واحدة مع "system prompt" والأخرى بدونه.
- اطلب من كليهما تلخيص مستند قانوني.
- قارن بين النبرة، والدقة، والامتثال.
سترى سريعاً كيف يشكل الـ "system prompt" الاحترافية والموثوقية.
دليل استكشاف الأخطاء وإصلاحها
| المشكلة | السبب المحتمل | الحل |
|---|---|---|
| النموذج يتجاهل الـ system prompt | الـ user prompt يتجاوزه | أعد ترتيب الرسائل أو عزز الصياغة |
| الاستجابات غير متسقة | الـ system prompt غامض للغاية | أضف قواعد سلوكية صريحة |
| زمن استجابة مرتفع (Latency) | الـ system prompt طويل جداً | قم بتقصير أو تخزين (cache) تعليمات النظام |
| مخرجات غير آمنة | فقدان سياسة السلامة | أضف طبقة نظام تركز على الامتثال |
النقاط الرئيسية
الـ system prompts تحدد "من" هو الذكاء الاصطناعي. والـ user prompts تحدد "ماذا" يفعل.
- الـ system prompts = الحوكمة، النبرة، السلامة.
- الـ user prompts = تعليمات خاصة بالمهمة.
- معاً يشكلان أساس أنظمة الذكاء الاصطناعي الموثوقة.
- قم دائماً باختبار ومراقبة وإصدار الأوامر (prompts) الخاصة بك.
الخطوات التالية
- جرب طبقات الأوامر (prompt layering) في الـ LLM API المفضل لديك.
- قم بتنفيذ التسجيل والاختبار والمراقبة لمجموعة الأوامر الخاصة بك.
- اشترك في نشرتنا الإخبارية للتعمق في تصميم أنظمة الذكاء الاصطناعي وأفضل ممارسات الهندسة.
Footnotes
-
OpenAI API Documentation – Chat Completions https://platform.openai.com/docs/guides/text-generation ↩
-
OWASP Foundation – Large Language Model Security Risks https://owasp.org/www-project-top-10-for-llms/ ↩
-
OpenAI Tokenization Guide https://platform.openai.com/tokenizer ↩
-
OWASP AI Security and Privacy Guide https://owasp.org/www-project-ai-security-and-privacy-guide/ ↩
-
OpenTelemetry Documentation https://opentelemetry.io/docs/ ↩
-
OpenAI GPT-4 Technical Report (Context Length) https://cdn.openai.com/papers/gpt-4.pdf ↩
-
Anthropic – Context windows (Claude Opus 4.7 / Sonnet 4.6 1M-token context) https://platform.claude.com/docs/en/build-with-claude/context-windows ↩