--- title: الأوضاع description: أوضاع مختلفة لحالات استخدام مختلفة. --- :::caution يتم الآن ضبط الأوضاع عبر خيار `agent` في إعدادات opencode. أصبح خيار `mode` مُهمَلًا الآن. [اعرف المزيد](/docs/agents). ::: تتيح لك الأوضاع في opencode تخصيص السلوك والأدوات والمطالبات لحالات استخدام مختلفة. يأتي مع وضعين مدمجين: **build** و **plan**. يمكنك تخصيصهما أو إعداد أوضاعك الخاصة عبر إعدادات opencode. يمكنك التبديل بين الأوضاع أثناء الجلسة أو إعدادها في ملف الإعدادات لديك. --- ## الأوضاع المدمجة يأتي opencode مع وضعين مدمجين. --- ### Build وضع Build هو الوضع **الافتراضي** مع تفعيل جميع الأدوات. هذا هو الوضع القياسي لأعمال التطوير عندما تحتاج إلى وصول كامل لعمليات الملفات وأوامر النظام. --- ### Plan وضع مقيَّد مُصمَّم للتخطيط والتحليل. في وضع plan، تكون الأدوات التالية مُعطَّلة افتراضيًا: - `write` - لا يمكن إنشاء ملفات جديدة - `edit` - لا يمكن تعديل الملفات الموجودة، باستثناء الملفات الموجودة في `.opencode/plans/*.md` لتفصيل الخطة نفسها - `patch` - لا يمكن تطبيق التصحيحات - `bash` - لا يمكن تنفيذ أوامر shell يكون هذا الوضع مفيدًا عندما تريد من الذكاء الاصطناعي تحليل الشيفرة، أو اقتراح تغييرات، أو إنشاء خطط دون إجراء أي تعديلات فعلية على قاعدة الشيفرة لديك. --- ## التبديل يمكنك التبديل بين الأوضاع أثناء الجلسة باستخدام مفتاح _Tab_، أو اختصار `switch_mode` الذي قمت بإعداده. انظر أيضًا: [Formatters](/docs/formatters) لمعلومات حول إعدادات تنسيق الشيفرة. --- ## الإعداد يمكنك تخصيص الأوضاع المدمجة أو إنشاء أوضاعك الخاصة عبر الإعدادات. يمكن إعداد الأوضاع بطريقتين: ### إعدادات JSON قم بإعداد الأوضاع في ملف الإعدادات `opencode.json` لديك: ```json title="opencode.json" { "$schema": "https://opencode.ai/config.json", "mode": { "build": { "model": "anthropic/claude-sonnet-4-20250514", "prompt": "{file:./prompts/build.txt}", "tools": { "write": true, "edit": true, "bash": true } }, "plan": { "model": "anthropic/claude-haiku-4-20250514", "tools": { "write": false, "edit": false, "bash": false } } } } ``` ### إعدادات Markdown يمكنك أيضًا تعريف الأوضاع باستخدام ملفات markdown. ضعها في: - عالمي: `~/.config/opencode/modes/` - للمشروع: `.opencode/modes/` ```markdown title="~/.config/opencode/modes/review.md" --- model: anthropic/claude-sonnet-4-20250514 temperature: 0.1 tools: write: false edit: false bash: false --- You are in code review mode. Focus on: - Code quality and best practices - Potential bugs and edge cases - Performance implications - Security considerations Provide constructive feedback without making direct changes. ``` يصبح اسم ملف markdown هو اسم الوضع (على سبيل المثال، `review.md` ينشئ وضعًا باسم `review`). لنلقِ نظرة على خيارات الإعداد هذه بمزيد من التفصيل. --- ### النموذج استخدم إعداد `model` لتجاوز النموذج الافتراضي لهذا الوضع. يفيد ذلك عند استخدام نماذج مختلفة مُحسَّنة لمهام مختلفة؛ مثل نموذج أسرع للتخطيط ونموذج أكثر قدرة للتنفيذ. ```json title="opencode.json" { "mode": { "plan": { "model": "anthropic/claude-haiku-4-20250514" } } } ``` --- ### درجة الحرارة تحكَّم في العشوائية والإبداع في ردود الذكاء الاصطناعي عبر إعداد `temperature`. القيم الأقل تجعل الردود أكثر تركيزًا وحتمية، بينما تزيد القيم الأعلى الإبداع والتنوّع. ```json title="opencode.json" { "mode": { "plan": { "temperature": 0.1 }, "creative": { "temperature": 0.8 } } } ``` تتراوح قيم درجة الحرارة عادةً بين 0.0 و 1.0: - **0.0-0.2**: ردود شديدة التركيز وحتمية، مثالية لتحليل الشيفرة والتخطيط - **0.3-0.5**: ردود متوازنة مع قدر من الإبداع، مناسبة لمهام التطوير العامة - **0.6-1.0**: ردود أكثر إبداعًا وتنوّعًا، مفيدة للعصف الذهني والاستكشاف ```json title="opencode.json" { "mode": { "analyze": { "temperature": 0.1, "prompt": "{file:./prompts/analysis.txt}" }, "build": { "temperature": 0.3 }, "brainstorm": { "temperature": 0.7, "prompt": "{file:./prompts/creative.txt}" } } } ``` إذا لم يتم تحديد درجة الحرارة، يستخدم opencode القيم الافتراضية الخاصة بكل نموذج (عادةً 0 لمعظم النماذج و 0.55 لنماذج Qwen). --- ### الموجّه حدِّد ملف موجّه نظام (system prompt) مخصص لهذا الوضع عبر إعداد `prompt`. ينبغي أن يحتوي ملف الموجّه على تعليمات مرتبطة بهدف هذا الوضع. ```json title="opencode.json" { "mode": { "review": { "prompt": "{file:./prompts/code-review.txt}" } } } ``` هذا المسار نسبي بالنسبة لموقع ملف الإعدادات. لذلك يعمل مع إعدادات opencode العالمية وكذلك إعدادات المشروع. --- ### الأدوات تحكَّم في الأدوات المتاحة في هذا الوضع عبر إعداد `tools`. يمكنك تفعيل أدوات محددة أو تعطيلها بضبطها على `true` أو `false`. ```json { "mode": { "readonly": { "tools": { "write": false, "edit": false, "bash": false, "read": true, "grep": true, "glob": true } } } } ``` إذا لم يتم تحديد أدوات، فستكون جميع الأدوات مفعّلة افتراضيًا. --- #### الأدوات المتاحة فيما يلي جميع الأدوات التي يمكن التحكم بها عبر إعدادات الوضع. | الأداة | الوصف | | ----------- | -------------------------- | | `bash` | تنفيذ أوامر shell | | `edit` | تعديل الملفات الموجودة | | `write` | إنشاء ملفات جديدة | | `read` | قراءة محتويات الملفات | | `grep` | البحث في محتويات الملفات | | `glob` | العثور على الملفات حسب نمط | | `list` | سرد محتويات الدليل | | `patch` | تطبيق تصحيحات على الملفات | | `todowrite` | إدارة قوائم المهام | | `todoread` | قراءة قوائم المهام | | `webfetch` | جلب محتوى الويب | --- ## أوضاع مخصصة يمكنك إنشاء أوضاعك المخصصة بإضافتها إلى الإعدادات. فيما يلي أمثلة باستخدام كلا الأسلوبين: ### باستخدام إعدادات JSON ```json title="opencode.json" {4-14} { "$schema": "https://opencode.ai/config.json", "mode": { "docs": { "prompt": "{file:./prompts/documentation.txt}", "tools": { "write": true, "edit": true, "bash": false, "read": true, "grep": true, "glob": true } } } } ``` ### باستخدام ملفات markdown أنشئ ملفات الأوضاع في `.opencode/modes/` لأوضاع خاصة بالمشروع أو في `~/.config/opencode/modes/` لأوضاع عالمية: ```markdown title=".opencode/modes/debug.md" --- temperature: 0.1 tools: bash: true read: true grep: true write: false edit: false --- You are in debug mode. Your primary goal is to help investigate and diagnose issues. Focus on: - Understanding the problem through careful analysis - Using bash commands to inspect system state - Reading relevant files and logs - Searching for patterns and anomalies - Providing clear explanations of findings Do not make any changes to files. Only investigate and report. ``` ```markdown title="~/.config/opencode/modes/refactor.md" --- model: anthropic/claude-sonnet-4-20250514 temperature: 0.2 tools: edit: true read: true grep: true glob: true --- You are in refactoring mode. Focus on improving code quality without changing functionality. Priorities: - Improve code readability and maintainability - Apply consistent naming conventions - Reduce code duplication - Optimize performance where appropriate - Ensure all tests continue to pass ``` --- ### حالات الاستخدام فيما يلي بعض حالات الاستخدام الشائعة لأوضاع مختلفة. - **Build mode**: أعمال تطوير كاملة مع تفعيل جميع الأدوات - **Plan mode**: التحليل والتخطيط دون إجراء تغييرات - **Review mode**: مراجعة الشيفرة مع وصول للقراءة فقط بالإضافة إلى أدوات التوثيق - **Debug mode**: تركيز على الاستقصاء مع تفعيل أدوات `bash` و `read` - **Docs mode**: كتابة التوثيق مع عمليات الملفات لكن دون أوامر النظام قد تجد أيضًا أن نماذج مختلفة تكون أنسب لحالات استخدام مختلفة.