mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-01 06:42:26 +00:00
332 lines
10 KiB
Plaintext
332 lines
10 KiB
Plaintext
---
|
|
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**: كتابة التوثيق مع عمليات الملفات لكن دون أوامر النظام
|
|
|
|
قد تجد أيضًا أن نماذج مختلفة تكون أنسب لحالات استخدام مختلفة.
|