DeepSeek Harness: أوضاع التشغيل الأربعة
آخر تحديث: 2026-08-31
أوضاع التشغيل الأربعة لـ DSH مثل أوضاع القيادة المختلفة للسيارة — اقتصادي، رياضي، وعرة، مضمار — نفس السيارة، شخصية مختلفة. اختر الوضع المناسب وسيتصرف Agent تمامًا كما تتوقع؛ اختر الخاطئ وسيتحفظ أكثر من اللازم أو يفقد السيطرة.
📋 المتطلبات المسبقة: إكمال 04-model-config.md، نموذج مُعد ومتاح
1. ما ستتعلمه
- فلسفة التصميم والاختلافات السلوكية لأوضاع التشغيل الأربعة
- آلية اتخاذ القرار المستقل في وضع Standard
- تدفق Plan-then-Code في وضع PTC
- استراتيجية استدعاء الأدوات الأقل في وضع Minimal
- خصائص المخرجات الاستكشافية في وضع Creative
- السيناريوهات المناسبة وطرق التبديل لكل وضع
2. نظرة عامة على الأوضاع
(1) ▶ مثال 1
graph TB
INPUT[إدخال المستخدم] --> MODE{اختر الوضع}
MODE --> STD[وضع Standard<br/>قرار Agent المستقل]
MODE --> PTC[وضع PTC<br/>خطط أولاً، ثم نفذ]
MODE --> MIN[وضع Minimal<br/>أقل استدعاءات للأدوات]
MODE --> CRE[وضع Creative<br/>مخرجات استكشافية]
STD --> ACTION1[اختيار أدوات مستقل<br/>قرارات خطوات مستقلة]
PTC --> ACTION2[إخراج الخطة أولاً<br/>تنفيذ بعد تأكيد المستخدم]
MIN --> ACTION3[يفضل معرفته الخاصة<br/>استدعاء الأدوات عند الضرورة فقط]
CRE --> ACTION4[ارتباط حر<br/>يشجع الإبداع والاستكشاف]
(2) جدول مقارنة واحد يفهم جميع الأوضاع الأربعة
| البُعد | Standard | PTC | Minimal | Creative |
|---|---|---|---|---|
| استدعاءات الأدوات | Agent يقرر بشكل مستقل | مُعلن في الخطة | مُقلَّل | حر الاستخدام |
| تحكم المستخدم | متوسط (موافقة) | عالي (تأكيد الخطة) | عالي (عمليات قليلة) | منخفض (تعبير حر) |
| يقين المخرجات | متوسط | عالي | عالي | منخفض |
| السرعة | متوسطة | أبطأ (خطوتين) | الأسرع | غير مؤكد |
| حالات الاستخدام | البرمجة العامة | المهام المعقدة | أسئلة وأجوبة بسيطة | الكتابة الإبداعية |
| Temperature | 0.7 | 0.3 | 0.2 | 1.0+ |
| استهلاك الرموز | متوسط | أعلى | الأقل | أعلى |
3. وضع Standard
(1) كيف يعمل
وضع Standard هو الوضع الافتراضي لـ DSH. بعد تلقي تعليمات المستخدم، يحلل Agent بشكل مستقل أي الأدوات مطلوبة وما العمليات التي يجب تنفيذها، باتباع أفضل تقدير له:

🤖 Agent:
🔍 استخدام أداة: search
→ البحث عن src/utils/format.ts
🔍 استخدام أداة: file_edit (قراءة)
→ قراءة src/utils/format.ts
📝 استخدام أداة: file_edit (إنشاء)
→ إنشاء src/utils/date-format.ts
📝 استخدام أداة: file_edit (تعديل)
→ تحديث src/utils/format.ts (إزالة دوال التاريخ)
📝 استخدام أداة: file_edit (تعديل)
→ تحديث الاستيرادات في src/index.ts
✅ تم! دالة تنسيق التاريخ مستخرجة إلى src/utils/date-format.ts
(2) منطق اتخاذ القرار المستقل
في وضع Standard، سلسلة قرارات Agent:
graph TD
INPUT[تعليمات المستخدم] --> ANALYZE[تحليل النية]
ANALYZE --> PLAN[تخطيط الخطوات الداخلي]
PLAN --> DECIDE{هل تحتاج أدوات؟}
DECIDE -->|نعم| EXEC[استدعاء الأدوات]
DECIDE -->|لا| RESPOND[الرد مباشرة]
EXEC --> CHECK{هل انتهى؟}
CHECK -->|لا| PLAN
CHECK -->|نعم| RESPOND
(3) متى تستخدم وضع Standard
- مهام البرمجة اليومية (كتابة كود، إصلاح أخطاء، إعادة هيكلة)
- مهام غير متأكد كم خطوة تحتاجها
- عندما تريد أن يتعامل Agent بالتفاصيل بشكل مستقل
- معظم العمل الروتيني
4. وضع PTC (Plan-then-Code)
(1) كيف يعمل
يقسم وضع PTC سلوك Agent إلى خطوتين:

- مرحلة التخطيط: يحلل Agent المهمة ويُخرج خطة مفصلة دون تنفيذ أي عمليات
- مرحلة التنفيذ: بعد تأكيد المستخدم للخطة، ينفذها Agent خطوة بخطوة
👤 Bob: أضف نظام مصادقة مستخدمين للمشروع، يدعم JWT
🤖 Agent (مرحلة التخطيط):
📋 خطة التنفيذ:
1. تثبيت التبعيات: jsonwebtoken، bcryptjs
2. إنشاء src/auth/jwt.ts — توقيع والتحقق من JWT
3. إنشاء src/auth/middleware.ts — وسيط المصادقة
4. إنشاء src/routes/auth.ts — مسارات تسجيل الدخول/التسجيل
5. تعديل src/app.ts — تسجيل المسارات والوسيط
6. إضافة متغير بيئة JWT_SECRET
التقدير: 5 ملفات معدلة، 3 ملفات منشأة.
هل تنفذ هذه الخطة؟
👤 Bob: نفّذ، لكن تخطَّ الخطوة 1 — التبعيات مثبتة بالفعل
🤖 Agent (مرحلة التنفيذ):
📝 الخطوة 2: إنشاء src/auth/jwt.ts...
📝 الخطوة 3: إنشاء src/auth/middleware.ts...
📝 الخطوة 4: إنشاء src/routes/auth.ts...
📝 الخطوة 5: تعديل src/app.ts...
📝 الخطوة 6: إضافة JWT_SECRET إلى .env.example...
✅ تمت إضافة نظام المصادقة!
(2) تنسيق خطة PTC
يُخرج وضع PTC خططًا تحتوي على:
interface PTCPlan {
steps: PlanStep[];
estimatedFiles: { created: number; modified: number; deleted: number };
riskLevel: 'low' | 'medium' | 'high';
reversible: boolean;
}
interface PlanStep {
id: number;
description: string;
tool: string; // الأداة المستخدمة
files: string[]; // الملفات المعنية
dependsOn: number[]; // الخطوات المسبقة
}
(3) ▶ مثال 3
graph TD
INPUT[تعليمات المستخدم] --> PLAN[Agent يُخرج الخطة]
PLAN --> REVIEW[المستخدم يراجع الخطة]
REVIEW -->|تأكيد| EXEC[Agent ينفذ]
REVIEW -->|تعديل| MODIFY[المستخدم يعدل الخطة]
MODIFY --> EXEC
REVIEW -->|رفض| CANCEL[إلغاء التنفيذ]
EXEC --> STEP[تنفيذ خطوة بخطوة]
STEP --> DONE{هل اكتمل الكل؟}
DONE -->|لا| STEP
DONE -->|نعم| RESULT[إخراج النتائج]
(4) متى تستخدم وضع PTC
- مهام معقدة (5+ خطوات)
- تعديل كود حرج (قاعدة بيانات، مصادقة، مدفوعات)
- غير متأكد إذا كان Agent يفهم بشكل صحيح؛ تريد رؤية الخطة أولاً
- إعادة هيكلة الكود، تغييرات البنية
- الحاجة لسجلات عمليات قابلة للتدقيق
5. وضع Minimal
(1) كيف يعمل
في وضع Minimal، يُقلل Agent من استدعاءات الأدوات، مفضلاً الإجابة على الأسئلة باستخدام معرفته الخاصة:

🤖 Agent:
Promise هو تمثيل كائن للعمليات غير المتزامنة؛ async/await هو سكر نحوي لـ Promises:
1. Promise يستخدم تسلسل .then():
fetchData().then(data => process(data)).catch(err => handle(err));
2. async/await يستخدم بنية تبدو متزامنة:
const data = await fetchData();
process(data);
الاختلافات الرئيسية:
- Promise هو كائن؛ async/await هو بنية
- await يمكن استخدامه فقط داخل دوال async
- دوال async تُرجع دائمًا Promises
- معالجة الأخطاء: .catch() مقابل try/catch
ملاحظة: Agent لم يستدعِ أي أدوات — أجاب مباشرة من المعرفة.
(2) ▶ مثال 2
graph TD
INPUT[تعليمات المستخدم] --> EVAL{هل يمكن الإجابة من المعرفة؟}
EVAL -->|نعم| RESPOND[الرد مباشرة]
EVAL -->|لا| TOOL[استدعاء الحد الأدنى من الأدوات الضرورية]
TOOL --> RESPOND
(3) مقارنة وضع Minimal مع وضع Standard
| السيناريو | وضع Standard | وضع Minimal |
|---|---|---|
| "ما هو closure؟" | قد يبحث عن أمثلة closure في المشروع | يشرح المفهوم مباشرة |
| "اكتب دالة فرز" | يبحث أولاً عن أسلوب كود المشروع، ثم يكتب | يكتب تنفيذًا عامًا مباشرة |
| "كيف أصلح هذا الخطأ؟" | يقرأ الملفات، يبحث عن الكود ذي الصلة | يعطي حلاً عامًا أولاً؛ يقرأ الملفات فقط إذا طلب المستخدم |
(4) متى تستخدم وضع Minimal
- أسئلة وأجوبة معرفية (لا حاجة لعمليات ملفات)
- نصائح أو حلول سريعة
- لا تريد أن "يُبالغ" Agent
- توفير استهلاك الرموز
6. وضع Creative
(1) كيف يعمل
يمنح وضع Creative Agent أعلى حرية، مشجعًا المخرجات الاستكشافية والإبداعية:
👤 Alice: صمم لي صفحة 404 فريدة
🤖 Agent:
🎨 سأصمم صفحة 404 تفاعلية — باستخدام Canvas لرسم حقل كويكبات حيث يمكن للمستخدمين تحريك الفأرة لتجنب النيازك!
📝 استخدام أداة: file_edit (إنشاء)
→ إنشاء src/pages/404.html
🎨 الميزات:
- خلفية نجوم ديناميكية معروضة بـ Canvas
- تحريك سفينة فضائية بالفأرة
- توليد نيازك عشوائي واكتشاف التصادم
- صعوبة متزايدة مع الوقت
- بعد التصادم، يعرض "You found 404!" ويعيد التوجيه للرئيسية
🔧 أفكار إضافية:
- إضافة مؤثرات صوتية باستخدام Web Audio API
- دعم اللمس للأجهزة المحمولة
- لوحة صدارة (localStorage)
(2) خصائص وضع Creative
| الخاصية | الوصف |
|---|---|
| درجة حرارة عالية | مخرجات أكثر عشوائية وتنوعًا |
| ارتباط حر | يقدم اقتراحات وأفكارًا إضافية بشكل استباقي |
| تجاوز التعليمات | يفكر خارج نطاق طلب المستخدم |
| يشجع الاستكشاف | يجرب أساليب غير تقليدية |
| مخرجات أطول | عادةً ينتج محتوى أكثر من الأوضاع الأخرى |
(3) سيناريوهات وضع Creative المناسبة
graph LR
A[الكتابة الإبداعية] --> CRE[وضع Creative]
B[تصميم UI/UX] --> CRE
C[العصف الذهني] --> CRE
D[استكشاف النماذج الأولية] --> CRE
E[تعلم أطر جديدة] --> CRE
(4) تحذيرات وضع Creative
- المخرجات غير قابلة للتحكم — قد تحيد عن المتطلب الأصلي
- غير مناسب لمهام تعديل كود دقيقة
- غير مناسب لسيناريوهات تتطلب نتائج حسمية
- استهلاك الرموز عادةً أعلى
7. تبديل الأوضاع والدمج
(1) طرق التبديل
التبديل في واجهة الويب:
شريط التحكم العلوي → قائمة الوضع المنسدلة → اختر الوضع المستهدف
التبديل في سطر الأوامر:
# التحديد عند التشغيل
npx @deepseek-ai/dsh cli --mode ptc
# التبديل خلال الجلسة
/mode creative
الوضع الافتراضي في الإعدادات:
# dsh.config.yaml
default_mode: ptc
(2) استراتيجية دمج الأوضاع
عمليًا، يمكن استخدام أوضاع مختلفة في مراحل مختلفة:
مرحلة تخطيط المشروع → وضع PTC (خطط أولاً)
↓
مرحلة التنفيذ → وضع Standard (تنفيذ مستقل)
↓
استكشاف الأخطاء → وضع Minimal (أسئلة وأجوبة سريعة)
↓
تصميم UI → وضع Creative (استكشاف أفكار)
(3) أفضل مجموعات الوضع-النموذج
| المهمة | الوضع الموصى به | النموذج الموصى به | السبب |
|---|---|---|---|
| كتابة الكود | Standard | deepseek-coder | نموذج الكود + قرار مستقل |
| إعادة هيكلة معقدة | PTC | deepseek-reasoner | نموذج استدلال + تأكيد الخطة |
| أسئلة وأجوبة تقنية | Minimal | deepseek-chat | نموذج عام + إجابات سريعة |
| تصميم إبداعي | Creative | gpt-4o | إبداعية عالية + مخرجات متنوعة |
| تصحيح أخطاء | Standard | deepseek-coder | فهم الكود + استخدام الأدوات |
8. مبادئ تنفيذ الأوضاع
(1) بنية إعدادات الوضع
interface ModeConfig {
name: string;
allowTools: boolean;
requirePlan: boolean;
temperature: number;
maxToolCalls: number | null;
systemPromptExtra: string;
}
const MODES: Record<string, ModeConfig> = {
standard: {
name: 'standard',
allowTools: true,
requirePlan: false,
temperature: 0.7,
maxToolCalls: null,
systemPromptExtra: 'You have full autonomy to use tools as needed.'
},
ptc: {
name: 'ptc',
allowTools: true,
requirePlan: true,
temperature: 0.3,
maxToolCalls: null,
systemPromptExtra: 'Always create a plan first. Do not execute until the user confirms.'
},
minimal: {
name: 'minimal',
allowTools: true,
requirePlan: false,
temperature: 0.2,
maxToolCalls: 1,
systemPromptExtra: 'Minimize tool usage. Prefer answering from knowledge.'
},
creative: {
name: 'creative',
allowTools: true,
requirePlan: false,
temperature: 1.0,
maxToolCalls: null,
systemPromptExtra: 'Be creative, explore unusual approaches, think beyond the obvious.'
}
};
(2) كيف تؤثر الأوضاع على System Prompt
كل وضع يُلحق تعليمات إضافية في نهاية System Prompt لتوجيه سلوك Agent:
وضع Standard يُلحق:
"Use tools freely when they help accomplish the task."
وضع PTC يُلحق:
"Before any action, output a numbered plan. Wait for user confirmation before executing."
وضع Minimal يُلحق:
"Answer from your knowledge first. Only use tools when absolutely necessary."
وضع Creative يُلحق:
"Think creatively and explore novel approaches. Offer additional ideas beyond the request."
❓ أسئلة شائعة
📖 ملخص
- أربعة أوضاع: Standard (قرار مستقل)، PTC (خطط ثم نفذ)، Minimal (أقل أدوات)، Creative (مخرجات استكشافية)
- وضع Standard هو الاختيار الافتراضي، مناسب لـ 80% من السيناريوهات
- وضع PTC يوفر تحكمًا دقيقًا عبر تدفق خطط → أكد → نفذ
- وضع Minimal يفضل الإجابات المعرفية، موفرًا الرموز
- وضع Creative يوفر حرية عالية، مناسب للإبداع والاستكشاف
- المشاريع الحقيقية يمكنها دمج أوضاع مختلفة في مراحل مختلفة
- الأوضاع تؤثر على سلوك Agent عبر Temperature وSystem Prompt واستراتيجية الأدوات
📝 تمارين
1. ⭐ أساسي: اسأل Agent نفس السؤال في الأوضاع الأربعة: "اكتب دالة فرز سريع"، وقارن الاختلافات في المخرجات (عدد استدعاءات الأدوات، طول المخرجات، أسلوب الكود).
2. ⭐⭐ متوسط: استخدم وضع PTC لإكمال مهمة من 5+ خطوات (مثل "أضف نظام تسجيل للمشروع"). سجّل محتوى خطة Agent، عدّل الخطة يدويًا (احذف أو عدّل الخطوات)، وراقب نتائج التنفيذ.
3. ⭐⭐⭐ تحدٍ: صمم "خطة دمج أوضاع" — اختر الوضع الأنسب لكل مرحلة من مشروع تطوير ويب كامل (من التصميم إلى النشر)، واستخدم مخطط تدفق Mermaid لعرض توقيت تبديل الأوضاع وأسبابها.