summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/ru/modes.mdx
blob: e63c91ace42df84835c43efd1a478a3122536d14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
---
title: Режимы
description: Различные режимы для разных случаев использования.
---

:::caution
Режимы теперь настраиваются с помощью опции `agent` в конфигурации opencode.
Опция `mode` устарела. [Подробнее ](/docs/agents).
:::

Режимы в opencode позволяют настраивать поведение, инструменты и подсказки для различных вариантов использования.

Он имеет два встроенных режима: **сборка** и **планирование**. Вы можете настроить
эти или настройте свои собственные через конфигурацию 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).

---

### Промпт

Укажите собственный файл системных подсказок для этого режима с помощью конфигурации `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`      | Execute shell commands |
| `edit`      | Modify existing files  |
| `write`     | Create new files       |
| `read`      | Read file contents     |
| `grep`      | Search file contents   |
| `glob`      | Find files by pattern  |
| `patch`     | Apply patches to files |
| `todowrite` | Manage todo lists      |
| `webfetch`  | Fetch web content      |

---

## Пользовательские режимы

Вы можете создавать свои собственные режимы, добавляя их в конфигурацию. Вот примеры использования обоих подходов:

### Использование конфигурации 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
```

---

### Варианты использования

Вот несколько распространенных случаев использования различных режимов.

- **Режим сборки**: полная работа по разработке со всеми включенными инструментами.
- **Режим планирования**: анализ и планирование без внесения изменений.
- **Режим проверки**: проверка кода с доступом только для чтения и инструментами документирования.
- **Режим отладки**: сосредоточен на исследовании с включенными инструментами bash и чтения.
- **Режим документации**: запись документации с использованием файловых операций, но без системных команд.

Вы также можете обнаружить, что разные модели подходят для разных случаев использования.