الأوضاع
أوضاع مختلفة لحالات استخدام مختلفة.
تتيح لك الأوضاع في opencode تخصيص السلوك والأدوات والمطالبات لحالات استخدام مختلفة.
يأتي مع وضعين مدمجين: build و plan. يمكنك تخصيصهما أو إعداد أوضاعك الخاصة عبر إعدادات opencode.
يمكنك التبديل بين الأوضاع أثناء الجلسة أو إعدادها في ملف الإعدادات لديك.
الأوضاع المدمجة
يأتي opencode مع وضعين مدمجين.
Build
وضع Build هو الوضع الافتراضي مع تفعيل جميع الأدوات. هذا هو الوضع القياسي لأعمال التطوير عندما تحتاج إلى وصول كامل لعمليات الملفات وأوامر النظام.
Plan
وضع مقيَّد مُصمَّم للتخطيط والتحليل. في وضع plan، تكون الأدوات التالية مُعطَّلة افتراضيًا:
write- لا يمكن إنشاء ملفات جديدةedit- لا يمكن تعديل الملفات الموجودة، باستثناء الملفات الموجودة في.opencode/plans/*.mdلتفصيل الخطة نفسهاpatch- لا يمكن تطبيق التصحيحاتbash- لا يمكن تنفيذ أوامر shell
يكون هذا الوضع مفيدًا عندما تريد من الذكاء الاصطناعي تحليل الشيفرة، أو اقتراح تغييرات، أو إنشاء خطط دون إجراء أي تعديلات فعلية على قاعدة الشيفرة لديك.
التبديل
يمكنك التبديل بين الأوضاع أثناء الجلسة باستخدام مفتاح Tab، أو اختصار switch_mode الذي قمت بإعداده.
انظر أيضًا: Formatters لمعلومات حول إعدادات تنسيق الشيفرة.
الإعداد
يمكنك تخصيص الأوضاع المدمجة أو إنشاء أوضاعك الخاصة عبر الإعدادات. يمكن إعداد الأوضاع بطريقتين:
إعدادات JSON
قم بإعداد الأوضاع في ملف الإعدادات 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/
---model: anthropic/claude-sonnet-4-20250514temperature: 0.1tools: 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 لتجاوز النموذج الافتراضي لهذا الوضع. يفيد ذلك عند استخدام نماذج مختلفة مُحسَّنة لمهام مختلفة؛ مثل نموذج أسرع للتخطيط ونموذج أكثر قدرة للتنفيذ.
{ "mode": { "plan": { "model": "anthropic/claude-haiku-4-20250514" } }}درجة الحرارة
تحكَّم في العشوائية والإبداع في ردود الذكاء الاصطناعي عبر إعداد temperature. القيم الأقل تجعل الردود أكثر تركيزًا وحتمية، بينما تزيد القيم الأعلى الإبداع والتنوّع.
{ "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: ردود أكثر إبداعًا وتنوّعًا، مفيدة للعصف الذهني والاستكشاف
{ "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. ينبغي أن يحتوي ملف الموجّه على تعليمات مرتبطة بهدف هذا الوضع.
{ "mode": { "review": { "prompt": "{file:./prompts/code-review.txt}" } }}هذا المسار نسبي بالنسبة لموقع ملف الإعدادات. لذلك يعمل مع إعدادات opencode العالمية وكذلك إعدادات المشروع.
الأدوات
تحكَّم في الأدوات المتاحة في هذا الوضع عبر إعداد tools. يمكنك تفعيل أدوات محددة أو تعطيلها بضبطها على true أو false.
{ "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
{ "$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/ لأوضاع عالمية:
---temperature: 0.1tools: 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.---model: anthropic/claude-sonnet-4-20250514temperature: 0.2tools: 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: كتابة التوثيق مع عمليات الملفات لكن دون أوامر النظام
قد تجد أيضًا أن نماذج مختلفة تكون أنسب لحالات استخدام مختلفة.