Урок 8 из 8 · 20 мин · обновлено

Сессии, фоновые агенты и что дальше

Как управлять сессиями в OpenCode 2: /new, /sessions, /compact, продолжение в приложении и браузере. Фоновые подагенты, свои команды в .opencode/commands, MCP коротко. Что делать, когда агент ходит по кругу, и как развиваться дальше.

Одна задача — одна сессия

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

Привычка, которая сильно помогает: новая задача — новая сессия.

  • /new — начать новую сессию. Правила из AGENTS.md агент прочитает заново.
  • /sessions — список прошлых сессий: можно вернуться к любой и продолжить.
  • /compact — сжать текущий разговор в краткое содержание. Пригодится, если задача ещё не закончена, а история уже огромная.

Из терминала последнюю сессию в папке продолжают так:

Терминал
opencode -c

Одна сессия — три окна

Во второй версии сессии хранит фоновый сервер OpenCode на вашем компьютере. Поэтому одну и ту же сессию видно и в терминале, и в приложении для компьютера, и в браузере. Начали в терминале — продолжили в приложении, где удобнее читать длинные изменения.

Чтобы открыть OpenCode в браузере, выполните в терминале:

Терминал
opencode pair

Команда напечатает ссылку. Она одноразовая и действует пять минут.

Фоновые подагенты

Агент Build может поручать часть работы подагентам — вспомогательным агентам со своей задачей. Например, подагент explore быстро ищет по коду нужные места, пока основной агент продолжает думать над задачей. Во второй версии подагенты работают в фоне: основной агент не ждёт их, а получает результат, когда он готов.

Обычно Build сам решает, когда звать подагента. Но можно и попросить:

Текст
Пусть подагент найдёт все места, где сохраняются данные
в localStorage, а ты пока продумай экспорт отметок в файл.

Свои команды

Если одно и то же задание вы пишете снова и снова, сохраните его своей командой. Создайте в проекте файл .opencode/commands/proverka.md:

Markdown
---
description: Проверка перед коммитом
---
Проверь изменения с последнего коммита (git diff):
- нет ли ошибок и забытых отладочных строк;
- соблюдены ли правила из AGENTS.md;
- не сломаны ли старые функции.
Ничего не исправляй, только перечисли проблемы.
$ARGUMENTS

Теперь в OpenCode достаточно ввести /proverka. Всё, что напишете после имени команды, подставится вместо $ARGUMENTS: например, /proverka особенно тёмную тему.

Ещё один способ расширить агента — MCP-серверы. Они дают агенту новые инструменты: доступ к базе данных, браузеру, трекеру задач. Начинать с них не нужно, но когда агенту не хватит возможностей, ищите подходящий MCP-сервер.

Когда агент ходит по кругу

Иногда агент исправляет ошибку, ломает другое место, исправляет его — и возвращает первую ошибку. С каждой попыткой код запутаннее. Что помогает:

  1. Остановиться после трёх попыток. Четвёртая обычно не лучше.
  2. Откатить неудачные правки: /undo несколько раз или git restore . до последнего коммита.
  3. Начать новую сессию и описать проблему коротко и конкретно: что делали, что ожидали, что получили. Длинная история с неудачными попытками сбивает модель.
  4. Сменить модель на более сильную или просто другую.
  5. Сначала попросить план в режиме Plan: «Почему может возникать эта ошибка? Предложи гипотезы, код не меняй».

Что дальше

Вы прошли путь от установки до проекта с правилами, Git и своими командами. Дальше стоит:

  • работать на своих задачах — проект, который вам действительно нужен, учит быстрее учебного;
  • разобраться в терминале и Git — курсы «Командная строка и Linux» и «Git и GitHub» на этом сайте;
  • учиться читать код — чем лучше вы понимаете, что пишет агент, тем точнее ставите задачи и быстрее находите ошибки.

Попробуйте сами. Создайте команду /proverka из урока. Затем начните новую сессию, попросите агента добавить экспорт отметок в файл, а перед коммитом запустите /proverka. Исправьте найденное и сделайте коммит.

Как может пройти проверка

Агент прочитает git diff и ответит списком, например:

Текст
1. В функции exportMarks остался console.log — уберите
   перед коммитом.
2. Имя файла экспорта на английском, а в AGENTS.md
   правило: тексты интерфейса на русском.
3. Старые функции не затронуты.

Попросите исправить пункты 1 и 2, проверьте экспорт в браузере и сделайте коммит. Если команда не появляется в списке после /, проверьте путь: папка .opencode с точкой, внутри commands, а файл с расширением .md.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Вы закончили тёмную тему и переходите к экспорту отметок в файл. Что разумно сделать?

  2. Для чего команда /compact?

  3. Агент третий раз «исправляет» одну ошибку, и становится только хуже. Что делать?

  4. Вы перед каждым коммитом просите агента проверить код одним и тем же длинным текстом. Как упростить?