# Режимы

> Пять режимов агента Kodik: Code, Plan, Ask, Debug и Educator — поведение и доступные инструменты.

Источник: https://docs.kodik.ru/agent/modes

Агент Kodik работает в одном из пяти режимов. Режим определяет, что агент может делать, а также набор доступных инструментов. Значение `"act"` нормализуется до `"code"` для обратной совместимости.

## Code (по умолчанию)

Code — режим выполнения задач. Это режим по умолчанию для всех новых задач.

**Поведение:** агент использует все доступные инструменты для понимания кодовой базы, внесения изменений, запуска команд и проверки результатов. Работает в видимом рабочем дереве задачи. Для работы, которая рендерится в браузере, может проверить результат во встроенном браузере через `browser`. Если задача неоднозначна, может один раз вызвать `ask_questions` перед началом работы.

**Доступные инструменты:** `shell`, `command_status`, `read_file`, `codebase_search`, `edit_file`, `create_file`, `delete_file`, `edit_notebook`, `rg`, `glob`, `ask_questions`, `read_lints`, `web_fetch`, `todo_write`, `sub_agent`, `memory`, `browser`

:::tip
Используйте Code, когда вам нужно что-то реализовать, отрефакторить или запустить.
:::

## Plan

Plan — режим только для чтения. Агент исследует код, задаёт уточняющие вопросы при необходимости и сохраняет финальный план через инструмент `generate_plan`.

**Поведение:** агент не редактирует файлы, не создаёт их и не выполняет команды, изменяющие состояние рабочего пространства. Строит пошаговый план, отмечает риски и открытые вопросы. При необходимости добавляет диаграмму Mermaid в `generate_plan`. Вопросы задаются только через `ask_questions` — не в виде обычного текста.

**Доступные инструменты:** `read_file`, `glob`, `rg`, `codebase_search`, `read_lints`, `web_fetch`, `sub_agent`, `ask_questions`, `generate_plan`, `memory`

:::note
После создания плана переключитесь в режим Code, чтобы приступить к реализации. Смотрите [Планирование](https://docs.kodik.ru/agent/planning).
:::

## Ask

Ask — строгий режим только для чтения. Предназначен для вопросов о кодовой базе: архитектура, поведение, трейдоффы.

**Поведение:** агент отвечает на вопросы, читая релевантный код перед ответом. Не выполняет команды и не редактирует файлы. Если пользователь просит что-то реализовать, агент объясняет, что Ask-режим предназначен только для анализа, и предлагает переключиться в Code.

**Доступные инструменты:** `read_file`, `glob`, `rg`, `codebase_search`, `read_lints`, `web_fetch`, `sub_agent`, `ask_questions`, `memory`

## Debug

Debug — режим отладки с гипотезами. Разделяет диагностику и фикс.

**Поведение:** агент следует строгому рабочему процессу:

1. Формулирует 3–5 точных гипотез о причине проблемы.
2. Добавляет целевую инструментацию для их проверки.
3. При необходимости просит пользователя воспроизвести проблему.
4. Собирает доказательства из логов, вывода команд и тестов.
5. Классифицирует каждую гипотезу: ПОДТВЕРЖДЕНА, ОПРОВЕРГНУТА или НЕОПРЕДЕЛЁННО.
6. Реализует минимальный фикс, подтверждённый доказательствами.
7. Верифицирует фикс и удаляет временную инструментацию.

Агент никогда не объявляет проблему исправленной без реальных доказательств из среды выполнения.

**Доступные инструменты:** `shell`, `command_status`, `read_file`, `codebase_search`, `edit_file`, `create_file`, `delete_file`, `edit_notebook`, `rg`, `glob`, `ask_questions`, `read_lints`, `web_fetch`, `todo_write`, `sub_agent`, `memory`, `preview`

:::caution
Debug и Code имеют одинаковый набор инструментов, но Debug требует гипотез и доказательств перед любым изменением. Не используйте Debug для обычных задач реализации.
:::

## Educator

Educator — режим обучения на базе Ask. Добавляет `check_understanding` для быстрых проверок и `create_lesson` для интерактивных уроков.

**Поведение:** агент объясняет концепции постепенно, опирается на реальный код, использует примеры и простые ментальные модели. При необходимости может вызвать `check_understanding` с 1–3 вопросами, чтобы адаптировать дальнейшее объяснение. Когда нужна практика, он может создать самодостаточный HTML-урок, сохранить его в `.kodik/teach/<topic>/` и автоматически открыть во встроенном браузере рядом с чатом. Kodik передаёт состояние `window.__kodikLesson` в следующий ход Educator — ответы на вопросы, правки кода и выполнение заданий, так что копировать ответы в чат не нужно. Неверные ответы воспринимаются как диагностический сигнал, а не как ошибка.

**Доступные инструменты:** все инструменты Ask плюс `check_understanding`, `create_lesson` и действия браузера только для наблюдения за уроком: `reload`, `snapshot`, `eval`, `console`

:::note
Educator не изменяет файлы проекта. Единственная область записи — скрытое учебное рабочее пространство `.kodik/teach/<topic>/`, где хранятся созданные уроки и учебные заметки. Когда вы возвращаетесь позже, режим Educator читает эти записи, чтобы продолжить с учётом цели обучения и прошлых уроков. Для реализации в проекте переключитесь в Code.
:::
