332 lines
12 KiB
Plaintext
332 lines
12 KiB
Plaintext
---
|
|
title: Режимы
|
|
description: Различные режимы для разных случаев использования.
|
|
---
|
|
|
|
:::caution
|
|
Режимы теперь настраиваются с помощью опции `agent` в конфигурации opencode.
|
|
Опция `mode` устарела. [Подробнее ](/docs/agents).
|
|
:::
|
|
|
|
Режимы в opencode позволяют настраивать поведение, инструменты и подсказки для различных вариантов использования.
|
|
|
|
Он имеет два встроенных режима: **сборка** и **планирование**. Вы можете настроить
|
|
эти или настройте свои собственные через конфигурацию opencode.
|
|
|
|
Вы можете переключаться между режимами во время сеанса или настраивать их в своем файле конфигурации.
|
|
|
|
---
|
|
|
|
## Встроенный
|
|
|
|
opencode имеет два встроенных режима.
|
|
|
|
---
|
|
|
|
### Строить
|
|
|
|
Сборка — это режим **по умолчанию** со всеми включенными инструментами. Это стандартный режим разработки, в котором вам необходим полный доступ к файловым операциям и системным командам.
|
|
|
|
---
|
|
|
|
### План
|
|
|
|
Ограниченный режим, предназначенный для планирования и анализа. В режиме плана по умолчанию отключены следующие инструменты:
|
|
|
|
- `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 |
|
|
| `list` | List directory contents |
|
|
| `patch` | Apply patches to files |
|
|
| `todowrite` | Manage todo lists |
|
|
| `todoread` | Read 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 и чтения.
|
|
- **Режим «Документы»**: запись документации с использованием файловых операций, но без системных команд.
|
|
|
|
Вы также можете обнаружить, что разные модели подходят для разных случаев использования.
|