Чтобы продолжить задачу в OpenCode без всей переписки, сохраните в файле, где остановились, что сделано и что осталось. Затем сожмите сессию через /compact или откройте новую через /new и добавьте файл через @. До следующих правок проверьте, что агент понял, откуда продолжать.
История сессии хранит разговор, а в контексте модели нужны сведения для текущего действия. Когда хочу продолжить в соседнем чате, я прошу агента написать для него полный запрос. Проверенные решения лучше сохранить в Markdown, чтобы следующий агент мог их прочитать.
Чем история сессии отличается от контекста и файла задачи
Вернуться к разговору, добавить файл и передать правила проекта - разные действия.
| Что это | Для чего | Чего не заменяет |
|---|---|---|
| История сессии | Вернуться к разговору, выбрать его из списка, экспортировать | Короткой актуальной записи о состоянии задачи |
| Контекст очередного запроса | Дать модели сведения для текущего действия; выбранный через @ файл добавляется в беседу | Архива всех разговоров |
| AGENTS.md | Передать постоянные инструкции проекта | Записи о том, где остановилась текущая работа |
| Файл состояния задачи | Сохранить цель, решения, сделанное и оставшееся | Истории разговора и автоматической памяти |
Плагин DCP перед отправкой модели заменяет удаляемое содержимое заполнителями. История сессии при этом остаётся прежней. Это описание DCP, не встроенного /compact - команды сжатия сеанса.
Агент должен читать только то, что ему нужно для задачи, которую вы ему поставили.
Context7 даёт документацию библиотек и примеры кода. Где вы остановились в своей задаче, записывайте отдельно.
Подключение MCP в OpenCode разобрано в отдельной статье.
Обсудить, как вы передаёте задачу между чатами, можно в канале:
Что записать в файл: где остановился, что сделано, что осталось
Агент обязан обновлять план после каждой сессии: отмечать сделанное, дописывать, что изменилось. Для Claude Code я формулирую это так: новый чат Клода не помнит, что было сделано в предыдущем, план помнит всегда.
В OpenCode сохраняйте состояние задачи в обычный файл в папке проекта. Здесь назовём его TASK.md - это выбранное имя, не обязательный файл OpenCode.
Перед сжатием или переходом дайте агенту запрос:
Обнови TASK.md: цель; ограничения и принятые решения; изменённые файлы; выполненные и невыполненные проверки с результатами; открытые вопросы; следующее действие. Не выдавай запланированное за сделанное. Не меняй остальные файлы.
Допустим, вы переделываете обработку CSV. Вот как может выглядеть запись:
## Состояние задачи
Цель: переделать обработку CSV и проверить, что она работает как раньше.
Ограничения и решения: не менять внешний формат результата;
отделить основную обработку от запуска программы.
Изменённые файлы: начата правка data_processor.py;
связанные файлы пока не трогали.
Результаты проверок: ещё не запускались, успешность не подтверждена.
Открытые вопросы: сохраняется ли прежнее поведение на пустом входном файле?
Следующее действие: посмотреть изменения data_processor.py,
затем выполнить подходящую проверку проекта.Прочитайте TASK.md сами. Сверьте список файлов с реальными изменениями, результаты проверок - с их выводом. Если проверку только собирались запустить, так и запишите. Неизвестный результат оставьте открытым вопросом.
Как продолжить: сжать эту сессию или открыть новую
Работайте в папке проекта с обновлённым TASK.md. Через /compact продолжайте в той же сессии; через /new передавайте сохранённое состояние новому диалогу.
Если OpenCode ещё не установлен, начните с инструкции по установке и подключению модели.
Продолжить здесь через /compact
- Обновите и проверьте
TASK.md: что изменено, что проверено, что осталось. После этого запись сохранена в файле, за пределами переписки. - Введите
/compactв интерфейсе OpenCode. Команда сжимает текущий сеанс./summarize- её другое имя. - После сжатия отправьте проверочный запрос:
Прочитай TASK.md. До новых правок назови цель, затронутые файлы, что уже проверено и следующий шаг. Если не хватает сведений - спроси. Не повторяй завершённую работу.
Сверьте ответ с записью. Если агент что-то пропустил, добавьте нужный файл через @ и повторите запрос.
Продолжить в новой сессии через /new
- Убедитесь, что
TASK.mdсохранён в папке проекта и содержит последние изменения и нерешённые вопросы. - Введите
/newв интерфейсе OpenCode. Откроется новый сеанс./clear- другое имя той же команды, не удаление файлов проекта. - В новом сообщении наберите
@TASK.mdи выберите файл в поиске по текущему рабочему каталогу. Его содержимое добавится в беседу. Отправьте тот же проверочный запрос, что после/compact. - Сравните ответ с записью и проектом. Когда цель, файлы, проверки и следующий шаг совпали, поручайте следующее действие.
Помимо добавленного файла, в контекст включаются постоянные инструкции проекта.
Одна сессия, одна задача. Ошибки чините в том же чате: у агента уже есть контекст этой работы.
Если нужно вернуться в старый разговор
В интерфейсе введите /sessions и выберите сессию. /resume и /continue - другие имена этой команды.
В терминале opencode --continue продолжает последнюю сессию. Чтобы выбрать другую, выполните opencode session list, затем opencode --session SESSION_ID, заменив SESSION_ID идентификатором из списка. Вы вернётесь в сохранённый разговор, а не начнёте новый с короткой записью задачи.
/export экспортирует разговор в Markdown и открывает редактор из EDITOR. В терминале opencode export [sessionID] экспортирует данные в JSON, opencode import <file> импортирует JSON. Полный экспорт разговора не заменяет краткую запись: где остановились и что дальше.
Как проверить, что агент продолжает задачу без повторной работы
Когда заканчиваете задачу, просите краткое резюме на русском: как было и как стало, какую проблему решали и решили ли её. При передаче незаконченной работы проверьте, что агент отличает сделанное от того, что ещё предстоит.
| Критерий | С чем сравнить | Что исправить при расхождении |
|---|---|---|
| Цель понята верно | Цель и ограничения в TASK.md | Уточнить потерянное ограничение |
| Названы нужные файлы | Запись и реальные изменения проекта | Добавить отсутствующий файл через @ |
| Выполненные проверки отделены от невыполненных | Сохранённые результаты проверок | Исправить статус; «всё прошло» без вывода не принимать |
| Следующий шаг не повторяет сделанное | Отметки сделанного и оставшегося | Указать незавершённое действие |
Чтобы сравнить /compact и /new, возьмите одну незавершённую задачу и сохраните исходный TASK.md. В обоих продолжениях используйте одинаковый проверочный запрос. Сохраните ответы до новых правок: не давайте агенту в первом варианте менять проект до оценки второго.
Если ответы расходятся с проектом, остановите правки. Исправьте конкретный пункт записи или добавьте недостающий файл через @, затем повторите запрос. Весь проект на всякий случай прикладывать не нужно.
После сверки поручите следующий шаг. В примере с CSV - посмотреть изменения data_processor.py и проверить проект. После действия снова обновите запись.
Если вы собираете свои проекты с ИИ-агентами, посмотрите программу практикума СмыслоКода.
Что оставить в AGENTS.md, а что - только в записи задачи
В AGENTS.md держите постоянные правила проекта: как менять файлы, какие проверки выполнять, каким должен быть результат. В TASK.md - текущие изменения, оставшиеся вопросы и действие, с которого продолжать.
Как написать постоянные инструкции, разобрано в отдельной статье.
Проектный AGENTS.md действует в своём каталоге и подкаталогах. Глобальный файл ~/.config/opencode/AGENTS.md - во всех сеансах. Договорённости конкретного проекта записывайте в проектный файл. Его можно написать вручную или создать командой /init.
Если в AGENTS.md написано имя TASK.md, это ещё не значит, что запись прочитана. Ссылки на внешние файлы автоматически не разбираются. Для продолжения явно добавьте файл через @.
Для подключения постоянных инструкций из файлов есть поле instructions в настройках OpenCode. Запись текущей задачи добавляйте, когда продолжаете именно её.
Как сократить расход токенов и что будет со счётом
Продолжать, продолжать, продолжать один диалог - значит снова передавать накопленные рассуждения и промежуточные решения. В новый чат передавайте проверенные решения и оставшуюся работу в файле, не всю эту переписку. Так мы экономим на токенах.
Но счёт зависит от модели, тарифа и кеша. Разработчик DCP предупреждает: очистка меняет сообщения, и начало запроса может перестать совпадать с кешированным. Промахов кеша может стать больше. Это оговорка о DCP, не замер экономии встроенного /compact.
У OpenCode есть настройки сжатия: compaction.auto включает автоматическое сжатие, compaction.prune удаляет старые результаты инструментов, compaction.reserved задаёт запас токенов на сжатие. Для передачи задачи через файл менять эти настройки не требуется.
limit.context - максимальное количество входных токенов модели, limit.output - максимальное количество генерируемых. Предел зависит от выбранной модели: произвольное число в настройке само по себе её окно не расширяет. Запас на сжатие в compaction.reserved - не размер этого окна.
Команда opencode stats показывает использование токенов и затраты по сеансам. Для сравнения берите одну исходную задачу и одинаковые условия. А продолжение проверяйте по записи: где остановились, что сделано, что осталось и какой следующий шаг.
А вы после сжатия или перехода в новый диалог проверяете, что агент помнит о сделанном и оставшемся? Расскажите в комментариях в канале, где у вас сбивается продолжение.
Частые вопросы
Источники
- OpenCode: интерфейс TUI - сжатие, новый сеанс, выбор сессии, добавление файлов и Markdown-экспорт.
- OpenCode: команды CLI - возобновление, список сессий, JSON-экспорт, импорт и статистика затрат.
- OpenCode: правила - AGENTS.md, область действия инструкций и подключение внешних файлов.
- OpenCode: конфигурация - настройки сжатия.
- OpenCode: провайдеры - определения входного и выходного лимитов модели.
- DCP: описание разработчика - различие истории и отправляемого содержимого в DCP, влияние очистки на кеш.
- Context7: OpenCode - получение документации библиотек и примеров кода.
Новые материалы - дайджестом, без спама
Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

