تخطَّ إلى المحتوى

الأوضاع

أوضاع مختلفة لحالات استخدام مختلفة.

تتيح لك الأوضاع في opencode تخصيص السلوك والأدوات والمطالبات لحالات استخدام مختلفة.

يأتي مع وضعين مدمجين: build و plan. يمكنك تخصيصهما أو إعداد أوضاعك الخاصة عبر إعدادات opencode.

يمكنك التبديل بين الأوضاع أثناء الجلسة أو إعدادها في ملف الإعدادات لديك.


الأوضاع المدمجة

يأتي opencode مع وضعين مدمجين.


Build

وضع Build هو الوضع الافتراضي مع تفعيل جميع الأدوات. هذا هو الوضع القياسي لأعمال التطوير عندما تحتاج إلى وصول كامل لعمليات الملفات وأوامر النظام.


Plan

وضع مقيَّد مُصمَّم للتخطيط والتحليل. في وضع plan، تكون الأدوات التالية مُعطَّلة افتراضيًا:

  • write - لا يمكن إنشاء ملفات جديدة
  • edit - لا يمكن تعديل الملفات الموجودة، باستثناء الملفات الموجودة في .opencode/plans/*.md لتفصيل الخطة نفسها
  • patch - لا يمكن تطبيق التصحيحات
  • bash - لا يمكن تنفيذ أوامر shell

يكون هذا الوضع مفيدًا عندما تريد من الذكاء الاصطناعي تحليل الشيفرة، أو اقتراح تغييرات، أو إنشاء خطط دون إجراء أي تعديلات فعلية على قاعدة الشيفرة لديك.


التبديل

يمكنك التبديل بين الأوضاع أثناء الجلسة باستخدام مفتاح Tab، أو اختصار switch_mode الذي قمت بإعداده.

انظر أيضًا: Formatters لمعلومات حول إعدادات تنسيق الشيفرة.


الإعداد

يمكنك تخصيص الأوضاع المدمجة أو إنشاء أوضاعك الخاصة عبر الإعدادات. يمكن إعداد الأوضاع بطريقتين:

إعدادات JSON

قم بإعداد الأوضاع في ملف الإعدادات opencode.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/
~/.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 لتجاوز النموذج الافتراضي لهذا الوضع. يفيد ذلك عند استخدام نماذج مختلفة مُحسَّنة لمهام مختلفة؛ مثل نموذج أسرع للتخطيط ونموذج أكثر قدرة للتنفيذ.

opencode.json
{
"mode": {
"plan": {
"model": "anthropic/claude-haiku-4-20250514"
}
}
}

درجة الحرارة

تحكَّم في العشوائية والإبداع في ردود الذكاء الاصطناعي عبر إعداد temperature. القيم الأقل تجعل الردود أكثر تركيزًا وحتمية، بينما تزيد القيم الأعلى الإبداع والتنوّع.

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: ردود أكثر إبداعًا وتنوّعًا، مفيدة للعصف الذهني والاستكشاف
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. ينبغي أن يحتوي ملف الموجّه على تعليمات مرتبطة بهدف هذا الوضع.

opencode.json
{
"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

opencode.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/ لأوضاع عالمية:

.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.
~/.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: كتابة التوثيق مع عمليات الملفات لكن دون أوامر النظام

قد تجد أيضًا أن نماذج مختلفة تكون أنسب لحالات استخدام مختلفة.