332 lines
13 KiB
Plaintext
332 lines
13 KiB
Plaintext
---
|
||
title: Режимы
|
||
description: Различные режимы для разных случаев использования.
|
||
---
|
||
|
||
:::осторожность
|
||
Режимы теперь настраиваются с помощью опции `agent` в конфигурации открытого кода.
|
||
Опция `mode` устарела. [Подробнее ](/docs/agents).
|
||
:::
|
||
|
||
Режимы в открытом коде позволяют настраивать поведение, инструменты и подсказки для различных вариантов использования.
|
||
|
||
Он имеет два встроенных режима: **сборка** и **планирование**. Вы можете настроить
|
||
эти или настройте свои собственные через конфигурацию открытого кода.
|
||
|
||
Вы можете переключаться между режимами во время сеанса или настраивать их в своем файле конфигурации.
|
||
|
||
---
|
||
|
||
## Встроенный
|
||
|
||
opencode имеет два встроенных режима.
|
||
|
||
---
|
||
|
||
### Строить
|
||
|
||
Сборка — это режим **по умолчанию** со всеми включенными инструментами. Это стандартный режим разработки, в котором вам необходим полный доступ к файловым операциям и системным командам.
|
||
|
||
---
|
||
|
||
### План
|
||
|
||
Ограниченный режим, предназначенный для планирования и анализа. В режиме плана по умолчанию отключены следующие инструменты:
|
||
|
||
- `write` – невозможно создавать новые файлы.
|
||
- `edit` – невозможно изменить существующие файлы, за исключением файлов, расположенных по адресу `.opencode/plans/*.md`, для детализации самого плана.
|
||
- `patch` – невозможно применить исправления.
|
||
- `bash` — невозможно выполнить команды оболочки.
|
||
|
||
Этот режим полезен, если вы хотите, чтобы ИИ анализировал код, предлагал изменения или создавал планы без внесения каких-либо фактических изменений в вашу кодовую базу.
|
||
|
||
---
|
||
|
||
## Переключение
|
||
|
||
Переключаться между режимами можно во время сеанса с помощью клавиши _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
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### Конфигурация уценки
|
||
|
||
Вы также можете определить режимы, используя файлы уценки. Поместите их в:
|
||
|
||
- Глобальный: `~/.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.
|
||
```
|
||
|
||
Имя файла уценки становится именем режима (например, `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}"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Если температура не указана, открытый код использует значения по умолчанию для конкретной модели (обычно 0 для большинства моделей, 0,55 для моделей Qwen).
|
||
|
||
---
|
||
|
||
### Быстрый
|
||
|
||
Укажите собственный файл системных подсказок для этого режима с помощью конфигурации `prompt`. Файл подсказки должен содержать инструкции, специфичные для целей режима.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"mode": {
|
||
"review": {
|
||
"prompt": "{file:./prompts/code-review.txt}"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Этот путь указан относительно того, где находится файл конфигурации. Так что это работает для
|
||
как глобальная конфигурация открытого кода, так и конфигурация конкретного проекта.
|
||
|
||
---
|
||
|
||
### Инструменты
|
||
|
||
Контролируйте, какие инструменты доступны в этом режиме, с помощью конфигурации `tools`. Вы можете включить или отключить определенные инструменты, установив для них значение `true` или `false`.
|
||
|
||
```json
|
||
{
|
||
"mode": {
|
||
"readonly": {
|
||
"tools": {
|
||
"write": false,
|
||
"edit": false,
|
||
"bash": false,
|
||
"read": true,
|
||
"grep": true,
|
||
"glob": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Если инструменты не указаны, все инструменты включены по умолчанию.
|
||
|
||
---
|
||
|
||
#### Доступные инструменты
|
||
|
||
Вот всеми инструментами можно управлять через конфигурацию режима.
|
||
|
||
| Инструмент | Описание |
|
||
| ----------- | ----------------------- |
|
||
| ХХ0ГГ | Выполнение команд оболочки |
|
||
| ХХ0ГГ | Изменить существующие файлы |
|
||
| ХХ0ГГ | Создание новых файлов |
|
||
| ХХ0ГГ | Чтение содержимого файла |
|
||
| ХХ0ГГ | Поиск содержимого файла |
|
||
| ХХ0ГГ | Найти файлы по шаблону |
|
||
| ХХ0ГГ | Вывести содержимое каталога |
|
||
| ХХ0ГГ | Применение патчей к файлам |
|
||
| ХХ0ГГ | Управляйте списками дел |
|
||
| ХХ0ГГ | Чтение списков дел |
|
||
| ХХ0ГГ | Получить веб-контент |
|
||
|
||
---
|
||
|
||
## Пользовательские режимы
|
||
|
||
Вы можете создавать свои собственные режимы, добавляя их в конфигурацию. Вот примеры использования обоих подходов:
|
||
|
||
### Использование конфигурации 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
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### Использование файлов уценки
|
||
|
||
Создайте файлы режимов в `.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 и чтения.
|
||
- **Режим «Документы»**: запись документации с использованием файловых операций, но без системных команд.
|
||
|
||
Вы также можете обнаружить, что разные модели подходят для разных случаев использования.
|