DeepSeek Harness: أوضاع التشغيل الأربعة

آخر تحديث: 2026-08-31

أوضاع التشغيل الأربعة لـ DSH مثل أوضاع القيادة المختلفة للسيارة — اقتصادي، رياضي، وعرة، مضمار — نفس السيارة، شخصية مختلفة. اختر الوضع المناسب وسيتصرف Agent تمامًا كما تتوقع؛ اختر الخاطئ وسيتحفظ أكثر من اللازم أو يفقد السيطرة.

💡 نصيحة: وضع Standard هو الاختيار الافتراضي، مناسب لـ 80% من السيناريوهات. وضع PTC للمهام التي تتطلب تحكمًا دقيقًا. وضع Minimal للأسئلة والأجوبة البحتة. وضع الإبداعي للأعمال الاستكشافية. عند الشك، استخدم وضع Standard.

📋 المتطلبات المسبقة: إكمال 04-model-config.md، نموذج مُعد ومتاح

1. ما ستتعلمه

أوضاع إرسال الأحداث


2. نظرة عامة على الأوضاع

(1) ▶ مثال 1

100%
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 بشكل مستقل أي الأدوات مطلوبة وما العمليات التي يجب تنفيذها، باتباع أفضل تقدير له:

ar وضع Standard


🤖 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:

100%
graph TD
    INPUT[تعليمات المستخدم] --> ANALYZE[تحليل النية]
    ANALYZE --> PLAN[تخطيط الخطوات الداخلي]
    PLAN --> DECIDE{هل تحتاج أدوات؟}
    DECIDE -->|نعم| EXEC[استدعاء الأدوات]
    DECIDE -->|لا| RESPOND[الرد مباشرة]
    EXEC --> CHECK{هل انتهى؟}
    CHECK -->|لا| PLAN
    CHECK -->|نعم| RESPOND

(3) متى تستخدم وضع Standard


4. وضع PTC (Plan-then-Code)

(1) كيف يعمل

يقسم وضع PTC سلوك Agent إلى خطوتين:

ar وضع PTC

  1. مرحلة التخطيط: يحلل Agent المهمة ويُخرج خطة مفصلة دون تنفيذ أي عمليات
  2. مرحلة التنفيذ: بعد تأكيد المستخدم للخطة، ينفذها Agent خطوة بخطوة
TEXT 📖 للعرض فقط
👤 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 خططًا تحتوي على:

TYPESCRIPT
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

100%
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. وضع Minimal

(1) كيف يعمل

في وضع Minimal، يُقلل Agent من استدعاءات الأدوات، مفضلاً الإجابة على الأسئلة باستخدام معرفته الخاصة:

ar وضع Minimal

TEXT 📖 للعرض فقط

🤖 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

100%
graph TD
    INPUT[تعليمات المستخدم] --> EVAL{هل يمكن الإجابة من المعرفة؟}
    EVAL -->|نعم| RESPOND[الرد مباشرة]
    EVAL -->|لا| TOOL[استدعاء الحد الأدنى من الأدوات الضرورية]
    TOOL --> RESPOND

(3) مقارنة وضع Minimal مع وضع Standard

السيناريو وضع Standard وضع Minimal
"ما هو closure؟" قد يبحث عن أمثلة closure في المشروع يشرح المفهوم مباشرة
"اكتب دالة فرز" يبحث أولاً عن أسلوب كود المشروع، ثم يكتب يكتب تنفيذًا عامًا مباشرة
"كيف أصلح هذا الخطأ؟" يقرأ الملفات، يبحث عن الكود ذي الصلة يعطي حلاً عامًا أولاً؛ يقرأ الملفات فقط إذا طلب المستخدم

(4) متى تستخدم وضع Minimal


6. وضع Creative

(1) كيف يعمل

يمنح وضع Creative Agent أعلى حرية، مشجعًا المخرجات الاستكشافية والإبداعية:

TEXT 📖 للعرض فقط
👤 Alice: صمم لي صفحة 404 فريدة

🤖 Agent: 
🎨 سأصمم صفحة 404 تفاعلية — باستخدام Canvas لرسم حقل كويكبات حيث يمكن للمستخدمين تحريك الفأرة لتجنب النيازك!

📝 استخدام أداة: file_edit (إنشاء)
  → إنشاء src/pages/404.html

🎨 الميزات:
- خلفية نجوم ديناميكية معروضة بـ Canvas
- تحريك سفينة فضائية بالفأرة
- توليد نيازك عشوائي واكتشاف التصادم
- صعوبة متزايدة مع الوقت
- بعد التصادم، يعرض "You found 404!" ويعيد التوجيه للرئيسية

🔧 أفكار إضافية:
- إضافة مؤثرات صوتية باستخدام Web Audio API
- دعم اللمس للأجهزة المحمولة
- لوحة صدارة (localStorage)

(2) خصائص وضع Creative

الخاصية الوصف
درجة حرارة عالية مخرجات أكثر عشوائية وتنوعًا
ارتباط حر يقدم اقتراحات وأفكارًا إضافية بشكل استباقي
تجاوز التعليمات يفكر خارج نطاق طلب المستخدم
يشجع الاستكشاف يجرب أساليب غير تقليدية
مخرجات أطول عادةً ينتج محتوى أكثر من الأوضاع الأخرى

(3) سيناريوهات وضع Creative المناسبة

100%
graph LR
    A[الكتابة الإبداعية] --> CRE[وضع Creative]
    B[تصميم UI/UX] --> CRE
    C[العصف الذهني] --> CRE
    D[استكشاف النماذج الأولية] --> CRE
    E[تعلم أطر جديدة] --> CRE

(4) تحذيرات وضع Creative


7. تبديل الأوضاع والدمج

(1) طرق التبديل

التبديل في واجهة الويب:

TEXT 📖 للعرض فقط
شريط التحكم العلوي → قائمة الوضع المنسدلة → اختر الوضع المستهدف

التبديل في سطر الأوامر:

BASH
# التحديد عند التشغيل
npx @deepseek-ai/dsh cli --mode ptc

# التبديل خلال الجلسة
/mode creative

الوضع الافتراضي في الإعدادات:

YAML
# dsh.config.yaml
default_mode: ptc

(2) استراتيجية دمج الأوضاع

عمليًا، يمكن استخدام أوضاع مختلفة في مراحل مختلفة:

TEXT 📖 للعرض فقط
مرحلة تخطيط المشروع → وضع PTC (خطط أولاً)
  ↓
مرحلة التنفيذ → وضع Standard (تنفيذ مستقل)
  ↓
استكشاف الأخطاء → وضع Minimal (أسئلة وأجوبة سريعة)
  ↓
تصميم UI → وضع Creative (استكشاف أفكار)

(3) أفضل مجموعات الوضع-النموذج

المهمة الوضع الموصى به النموذج الموصى به السبب
كتابة الكود Standard deepseek-coder نموذج الكود + قرار مستقل
إعادة هيكلة معقدة PTC deepseek-reasoner نموذج استدلال + تأكيد الخطة
أسئلة وأجوبة تقنية Minimal deepseek-chat نموذج عام + إجابات سريعة
تصميم إبداعي Creative gpt-4o إبداعية عالية + مخرجات متنوعة
تصحيح أخطاء Standard deepseek-coder فهم الكود + استخدام الأدوات

8. مبادئ تنفيذ الأوضاع

(1) بنية إعدادات الوضع

TYPESCRIPT
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:

TEXT 📖 للعرض فقط
وضع 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."

❓ أسئلة شائعة

س أي وضع يوفر أكثر الرموز؟
ج وضع Minimal — أقل استدعاءات للأدوات، أخرج أوجز. وضع PTC يكلف أكثر (تخطيط + تنفيذ بمخرجات من خطوتين).
س هل يمكنني تعديل خطة وضع PTC؟
ج نعم. يمكنك حذف أو تعديل أو إعادة ترتيب الخطوات في الخطة، أو إخبار Agent "تخطَّ الخطوة 3".
س هل سيكتب وضع Creative كودًا غير آمن؟
ج ربما. وضع Creative يشجع الاستكشاف وقد يستخدم أساليب غير تقليدية. للمهام الحساسة أمنيًا، لا يُوصى بوضع Creative.
س هل قرار Agent في وضع Standard قابل للتنبؤ؟
ج معظمه قابل للتنبؤ — نفس المدخل عادةً ينتج تسلسل استدعاء أدوات مشابه. ومع ذلك، مخرجات LLM لها عشوائية متأصلة وليست حسمية بالكامل.
س هل يمكنني تبديل الأوضاع ضمن نفس الجلسة؟
ج نعم. تبديل الوضع يسري فورًا ولا يؤثر على سجل المحادثات الحالي. الرسائل اللاحقة ستتبع قواعد سلوك الوضع الجديد.
س هل يتجنب وضع Minimal استخدام الأدوات تمامًا؟
ج ليس تمامًا — إنه يُقلل من استخدام الأدوات. إذا كان السؤال يتطلب حقًا قراءة ملفات أو تنفيذ أوامر، سيستدعي Agent الأدوات، لكن بتكرار أقل بكثير من وضع Standard.

📖 ملخص


📝 تمارين

1. ⭐ أساسي: اسأل Agent نفس السؤال في الأوضاع الأربعة: "اكتب دالة فرز سريع"، وقارن الاختلافات في المخرجات (عدد استدعاءات الأدوات، طول المخرجات، أسلوب الكود).

2. ⭐⭐ متوسط: استخدم وضع PTC لإكمال مهمة من 5+ خطوات (مثل "أضف نظام تسجيل للمشروع"). سجّل محتوى خطة Agent، عدّل الخطة يدويًا (احذف أو عدّل الخطوات)، وراقب نتائج التنفيذ.

3. ⭐⭐⭐ تحدٍ: صمم "خطة دمج أوضاع" — اختر الوضع الأنسب لكل مرحلة من مشروع تطوير ويب كامل (من التصميم إلى النشر)، واستخدم مخطط تدفق Mermaid لعرض توقيت تبديل الأوضاع وأسبابها.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%