Русский
Документация
Режимы

Режимы

Различные режимы для разных сценариев использования.

Внимание: Режимы теперь настраиваются через параметр agent в конфигурации opencode. Параметр mode устарел. Подробнее.

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

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

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


Встроенные

opencode поставляется с двумя встроенными режимами.

Build

Build — это режим по умолчанию со всеми включёнными инструментами. Это стандартный режим для разработки, где вам нужен полный доступ к файловым операциям и системным командам.

Plan

Ограниченный режим, предназначенный для планирования и анализа. В режиме Plan следующие инструменты отключены по умолчанию:

  • write — нельзя создавать новые файлы
  • edit — нельзя изменять существующие файлы, за исключением файлов в .opencode/plans/*.md для описания самого плана
  • patch — нельзя применять патчи
  • bash — нельзя выполнять команды оболочки

Этот режим полезен, когда вы хотите, чтобы ИИ анализировал код, предлагал изменения или создавал планы без внесения фактических изменений в вашу кодовую базу.


Переключение

Вы можете переключаться между режимами во время сессии с помощью клавиши Tab. Или используйте настроенную привязку клавиш switch_mode.

Смотрите также: Форматтеры для информации о настройке форматирования кода.


Настройка

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

Конфигурация JSON

Настройте режимы в файле конфигурации opencode.json:

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/

~/.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 для переопределения модели по умолчанию для этого режима. Полезно для использования различных моделей, оптимизированных для разных задач. Например, более быстрая модель для планирования, более мощная модель для реализации.

opencode.json

{
  "mode": {
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514"
    }
  }
}

Температура

Управляйте случайностью и креативностью ответов ИИ с помощью параметра temperature. Низкие значения делают ответы более сфокусированными и детерминированными, а высокие значения увеличивают креативность и вариативность.

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: Более креативные и разнообразные ответы, полезно для мозгового штурма и исследования

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. Файл промпта должен содержать инструкции, специфичные для назначения режима.

opencode.json

{
  "mode": {
    "review": {
      "prompt": "{file:./prompts/code-review.txt}"
    }
  }
}

Этот путь указывается относительно расположения файла конфигурации. Поэтому это работает как для глобальной конфигурации opencode, так и для конфигурации конкретного проекта.


Инструменты

Управляйте доступными инструментами в этом режиме с помощью параметра tools. Вы можете включать или отключать конкретные инструменты, устанавливая их в true или false.

{
  "mode": {
    "readonly": {
      "tools": {
        "write": false,
        "edit": false,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}

Если инструменты не указаны, все инструменты включены по умолчанию.

Доступные инструменты

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

ИнструментОписание
bashВыполнение команд оболочки
editИзменение существующих файлов
writeСоздание новых файлов
readЧтение содержимого файлов
grepПоиск по содержимому файлов
globПоиск файлов по шаблону
listСписок содержимого каталога
patchПрименение патчей к файлам
todowriteУправление списками задач
todoreadЧтение списков задач
webfetchПолучение веб-контента

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

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

Использование конфигурации JSON

opencode.json

{
  "$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/ для глобальных режимов:

.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.

~/.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: Полноценная разработка со всеми включёнными инструментами
  • Режим Plan: Анализ и планирование без внесения изменений
  • Режим Review: Обзор кода с доступом только для чтения и инструментами документации
  • Режим Debug: Фокус на исследовании с включёнными инструментами bash и read
  • Режим Docs: Написание документации с файловыми операциями, но без системных команд

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