Перейти к содержанию

Режим чата

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

Пример работы чата

Пример работы чата

Когда чат особенно полезен

Чат хорошо работает в тех ситуациях, где важен диалог, а не одноразовая подсказка:

  • нужно быстро разобраться в незнакомом участке кода;
  • хочется спросить, почему что-то ломается;
  • нужен пример, заготовка или направление для рефакторинга;
  • хочется обсудить несколько вариантов решения перед изменениями.

Проще всего думать о нём так: это рабочее пространство для разговора с моделью о вашем проекте.

Как начать

  1. Откройте панель Koda.
  2. Нажмите Ctrl/⌘ + L, если используете горячие клавиши.
  3. Напишите первый запрос обычным языком.

Если набирать текст неудобно, запрос можно надиктовать: нажмите кнопку в панели поля ввода, проговорите задачу и остановите запись — распознанный текст добавится в черновик. Подробнее — на странице «Голосовой ввод».

Например:

Объясни, что делает этот сервис и где в нём могут быть слабые места

Или так:

Помоги упростить этот компонент без изменения поведения

Как получить более точный ответ

Самый заметный рост качества обычно даёт не «магический промпт», а хороший контекст.

Добавляйте контекст через @

Через @ можно подтягивать то, на что вы хотите опереться в разговоре: файлы, фрагменты кода, изменения git, ошибки и другие доступные контекст-провайдеры.

Примеры:

@src/auth/service.ts Проверь, почему здесь иногда появляется 500 ошибка
@terminal Взгляни на упавшие тесты и проверь в чём ошибка
@problems Объясни, что означают эти ошибки TypeScript и с чего начать исправление

Подробнее о выборе контекста — в разделе Управление контекстом.

Добавляйте изображения

К запросу можно приложить изображение: нажмите кнопку со значком изображения на панели ввода или перетащите файл прямо в поле. Также изображение можно скопировать в буфер обмена (например, снимок экрана) и вставить в поле ввода сочетанием Ctrl + V (в macOS — ⌘V).

В JetBrains IntelliJ IDE

Если в буфере обмена одновременно есть текст и изображение, при вставке будет вставлен текст. Чтобы вставить картинку, скопируйте только её.

Ограничения на изображения:

Параметр Значение
Форматы JPG, JPEG, PNG, GIF, SVG, WEBP
Размер файла до 10 МБ

Перед отправкой изображение сжимается: оно уменьшается так, чтобы вписаться в 1024×1024 пикселя, и перекодируется в JPEG. Кнопка добавления изображения доступна, только если выбранная модель умеет работать с изображениями; иначе изображение добавить не получится.

Продолжайте разговор, а не начинайте заново

Если ответ получился слишком общим, не обязательно переписывать запрос с нуля. Часто достаточно уточнить направление:

Покажи более практичный вариант для production-кода
Не переписывай всё, измени только логику валидации
Объясни проще, как для разработчика, который впервые видит этот код

Именно в таких коротких уточнениях чат особенно силён.

Когда Koda занята: очередь сообщений

Пока Koda обрабатывает предыдущий запрос, вы можете написать следующее сообщение в поле ввода.

Оно не потеряется — над полем появится карточка с превью и действиями:

  • Отправить как рекомендацию — сообщение отправится автоматически сразу после завершения текущей итерации;
  • Отправить сейчас — появляется, когда Koda освободилась: сообщение отправляется немедленно;
  • Удалить — убрать сообщение из очереди.

Так удобно готовить следующий запрос заранее, не дожидаясь окончания текущего ответа, и не беспокоиться, что сообщение уйдёт в пустоту.

Где работает очередь

Очередь доступна в главном поле ввода чата, планирования и агента.

Типовые сценарии

Разобраться в коде

@src/utils/parser.ts Объясни, что делает эта функция и какие у неё пограничные случаи

Найти причину ошибки

@problems @src/api/users.ts Почему здесь может возникать эта ошибка и как бы ты её отлаживал?

Попросить пример

Покажи аккуратный пример middleware для проверки JWT в Express и TypeScript

Подготовить рефакторинг

@code Предложи 2-3 варианта, как сделать этот код проще, но без изменения публичного API

Полезные привычки в чате

Формулируйте задачу чуть конкретнее

Сравните:

✅ Лучше:

Как отсортировать массив объектов по createdAt по убыванию в TypeScript?

❌ Слишком общо:

Как отсортировать массив?

Указывайте ограничения

Если есть важные рамки, лучше назвать их сразу:

Напиши решение без внешних библиотек
Используй TypeScript
Не меняй публичные типы

Просите объяснить ход мысли результата, а не внутренние рассуждения

Хорошая формулировка:

Коротко объясни, почему ты предлагаешь именно такой вариант

Так проще проверить, насколько решение вам подходит.

Когда стоит начать новый чат

Новый диалог полезен, если:

  • вы полностью сменили тему;
  • в текущем разговоре накопилось слишком много несвязанного контекста;
  • модель начала цепляться за старые предположения;
  • хочется «чистого листа» для новой задачи.

Если ответы стали хуже

Чаще всего помогает одно из трёх действий:

  1. добавить более точный контекст через @;
  2. уточнить задачу в одном коротком сообщении;
  3. начать новый чат, если тема уже ушла слишком далеко в сторону.

Если проблема не в формулировке, а в работе сервиса, загляните в раздел Решение общих проблем.

Что важно помнить

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