--- 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 и чтения. - **Режим «Документы»**: запись документации с использованием файловых операций, но без системных команд. Вы также можете обнаружить, что разные модели подходят для разных случаев использования.