Модуль 7
Память и контекст
Три уровня памяти агента: сессия, AGENTS.md проекта, глобальный AGENTS.md. Возврат в прерванную работу, побочные вопросы через /btw и подключение lean-ctx для сжатия того, что агент читает.
Содержание модуля
Чему научишься
- различать три уровня памяти агента: сессия, AGENTS.md проекта, глобальный AGENTS.md
- возвращаться в прерванную работу через /sessions и opencode run --continue
- задавать побочный вопрос командой /btw без роста контекста задачи
- подключать lean-ctx к OpenCode и измерять экономию командой lean-ctx gain
Агент помнит ровно то, что где-то сохранено. В OpenCode v2 у памяти три уровня: сессия хранит историю диалога, проектный AGENTS.md хранит правила проекта, глобальный AGENTS.md хранит твои личные правила для всех проектов. Встроенной памяти, где агент сам записывает выводы между сессиями, в v2 нет: структуру ты держишь в файлах.
| Уровень | Где живёт | Что хранит | Что переживает |
|---|---|---|---|
| Сессия | фоновый сервер OpenCode | историю диалога и правок | закрытие терминала |
| AGENTS.md проекта | корень репозитория, в git | правила проекта: команды, структура, конвенции | смену агента и человека |
| Глобальный AGENTS.md | ~/.config/opencode/AGENTS.md | личные правила: язык ответов, стиль коммитов | все проекты на машине |
Сессия переживает терминал
История сессии живёт на фоновом сервере OpenCode; окно терминала её только показывает. Список сессий открывает /sessions, недавние показывает Ctrl+O. Из внешнего терминала последнюю сессию продолжает opencode run --continue.
Вчерашнее расследование не нужно начинать заново: открой сессию и спроси, на чём остановились.
/sessions
Открыта сессия «Баг отрицательного quantity» от вчера
На чём мы остановились?
Нашли и починили: POST /api/orders с quantity: -2 теперь возвращает 400, проверили curl'ом. По скидке из pricing.ts решений не принимали.
Глобальный AGENTS.md
Правила проекта читают все, кто открыл репозиторий. Личные правила в командный файл не положишь: язык ответов, привычка «сначала план», стиль коммитов касаются только тебя. Для них есть глобальный ~/.config/opencode/AGENTS.md: OpenCode читает его в каждом проекте на машине, в git он не попадает.
# Мои правила
- Отвечай по-русски, термины оставляй как есть
- Коммиты по Conventional Commits: feat, fix, docs
- Перед правкой чужого кода покажи, что собираешь менятьКак оформляем коммиты?
В проектном AGENTS.md стиля коммитов нет, действуют твои личные правила из глобального файла: Conventional Commits, типы feat, fix, docs.
Побочный вопрос: /btw
Внутри задачи всплывают побочные вопросы: почему падает тест, чем typeof отличается от instanceof. Спрашивай через /btw <вопрос>: ответ соберётся на контексте сессии и текущей модели, но в диалог не попадёт и на дальнейший ход задачи не повлияет.
/btw чем typeof отличается от instanceof?lean-ctx: шлюз контекста
Длинные логи тестов и полные листинги файлов съедают окно контекста раньше, чем задача решена. LeanCTX ставит локальный шлюз между агентом и тем, что он читает: MCP-инструменты ctx_* отдают структурные чтения и кэш, shell-обёртка сжимает вывод команд. Для OpenCode включается гибридный режим одной командой init.
npm install -g lean-ctx-bin # бинар через npm, работает на Windows
lean-ctx init --agent opencode # подключить к OpenCode: MCP + сжатие команд
lean-ctx read src/routes/orders.ts -m map # структурный взгляд вместо полного текста
lean-ctx -c "git log -n 10 --oneline" # сжатый вывод команды для агента
lean-ctx gain # сколько контекста сэкономилиОкупается на ежедневной работе: шумные shell-команды (тесты, сборки, git) и репозиторий от 50 файлов. На крошечном репо с редкими командами экономия близка к нулю, и README проекта честно об этом говорит. Свою цифру смотри командой lean-ctx gain, недельный итог — lean-ctx savings --period week.
Практика модуля
# Мои правила - Отвечай по-русски, термины оставляй как есть - Коммиты по Conventional Commits: feat, fix, docs - Перед правкой чужого кода покажи, что собираешь менятькак оформляем коммиты?/sessionsopencode run --continue "что осталось сделать по скидке из pricing.ts?"/btw чем typeof отличается от instanceof?npm install -g lean-ctx-bin lean-ctx init --agent opencodelean-ctx read src/routes/orders.ts -m maplean-ctx gain lean-ctx-off
Отмечено 0 из 8
Проверь себя
Вопрос 1 из 5
Шпаргалка модуля
Память
- Сессия
- история диалога на фоновом сервере; /sessions, Ctrl+O
- AGENTS.md проекта
- правила проекта в git, модуль 3
- Глобальный AGENTS.md
- ~/.config/opencode/AGENTS.md, личные правила для всех проектов
Возврат и побочные вопросы
- /sessions
- список сессий
- opencode run --continue
- продолжить последнюю сессию из терминала
- /btw <вопрос>
- побочный вопрос без попадания в диалог
lean-ctx
- lean-ctx init --agent opencode
- включить ctx_* и сжатие команд
- lean-ctx read <файл> -m map
- структурное чтение вместо полного текста
- lean-ctx -c "<команда>"
- сжатый вывод команды
- lean-ctx gain
- статистика экономии
- lean-ctx-off / --raw
- выключить сжатие / одна команда как есть