Meeting 4: Контекст и память (Context & Memory)
Как агенты удерживают информацию
Агенты не имеют памяти как люди. Они работают с контекстом - информацией, которая находится "в поле зрения".
Проблемы:
- "Затерянный в середине" (Lost in the Middle)
- Данные в центре контекста игнорируются
- Модель переоценивает начало и конец
- Context Rot - протухание контекста
- Качество падает по мере заполнения контекста
- Галлюцинации растут с количеством информации
- Дистракторы
- Лишняя информация отвлекает агента
- Он выбирает неправильный ответ
- Стоимость обработки растёт
- Больше контекста = больше токенов
- Больше токенов = дороже и медленнее
🧠 Решение: Структурированная память
Вместо того, чтобы давать все данные одновременно, используй внешние файлы памяти.
Три основных файла:
1. CLAUDE.md - Контекст проекта
# Project Context
## Моя роль
[Кто я, что я знаю, мой опыт]
## Проект
[Что это, зачем нужно]
## Архитектура
[Как организован код]
## Стек
[Технологии, версии]
## Важные файлы
[Где что находится]
## Как запустить
[Команды для старта]
## Когда вызывать Claude Code
[Для каких задач]
Используется: Автоматически при каждой сессии
Где разместить:
./CLAUDE.md— для конкретного проекта (коммитится в git)~/.claude/CLAUDE.md— личный для всех проектов (твои стандарты кода, предпочтения)
Лимит: ~200 строк. Длиннее — агент хуже следует инструкциям.
2. TODO.md - Текущие задачи
# Tasks
## In Progress
- [ ] Задача 1 (приоритет: HIGH)
- [ ] Задача 2 (приоритет: MEDIUM)
## Next
- [ ] Задача 3
- [ ] Задача 4
## Blocked
- [ ] Задача 5 - ждёт информации от Х
- [ ] Задача 6 - зависит от Х
## Done
- [x] Решена задача 1
- [x] Решена задача 2
Используется: Когда нужно понять приоритеты и статус
3. AGENTS.md - Инструкции для агентов
# Agent Instructions
## Когда я пишу /explore
Исследуй структуру проекта и сосредоточься на:
- Как организованы компоненты?
- Где находится business logic?
- Какие зависимости между файлами?
## Когда я пишу /plan
Создавай пошаговый план с:
- Файлы, которые нужно создать
- Изменения в существующих файлах
- Порядок действий
## Когда я делегирую кодирование
Используй TypeScript, Prettier, добавляй комментарии для сложной логики
## Чего я ожидаю в результате
- Рабочий код (не pseudocode)
- Примеры использования
- Комментарии для неочевидных мест
Используется: Когда нужны специальные инструкции для конкретных типов задач
4. MEMORY.md - Автоматическая память Claude
В отличие от трёх файлов выше, MEMORY.md пишет Claude сам — без твоего участия.
Что сохраняет: паттерны, которые он замечает; исправления, которые ты давал; особенности проекта.
Где хранится: ~/.claude/Efforts/On/<hash>/memory/ — только на твоей машине, не в git.
Управление: /memory — посмотреть и изменить, что Claude запомнил.
CLAUDE.md vs MEMORY.md
Они дополняют друг друга:
| | CLAUDE.md | MEMORY.md |
| --- | --- | --- |
| Кто пишет | Ты | Claude (автоматически) |
| Что содержит | Правила и инструкции | Выученные паттерны и открытия |
| Шарится через git | Да | Нет — только локально |
| Загружается | Полностью | Первые 200 строк |
| Путь | ./CLAUDE.md | ~/.claude/Efforts/On/.../memory/ |
Как работают вместе:
- CLAUDE.md говорит агенту правила ("используй TypeScript")
- MEMORY.md даёт агенту опыт ("этот тест требует Redis запущенным")
Пример: ты пишешь в CLAUDE.md use pnpm. Claude замечает из сессии, что npm test требует локальный Redis — сохраняет это в MEMORY.md. На следующей сессии он помнит оба факта.
📊 Техники управления контекстом
Техника 1: Сжатие контекста
Резюмируй длинные диалоги в начале:
## Резюме предыдущей работы
**Что было сделано:**
1. Проанализировали 5 файлов в модуле `auth`
2. Обнаружили 3 проблемы с безопасностью
3. Исправили уязвимость в sessionStorage
4. Написали тесты для валидации JWT
**Текущее состояние:**
- Модуль auth работает
- Осталось добавить rate limiting на login
**Контекст:**
[Только самое важное из предыдущей работы]
Техника 2: Приоритизация информации
Раздели на три категории:
## ⚠️ КРИТИЧНО (высший приоритет)
[Самое важное для выполнения задачи]
Ты не можешь выполнить задачу без этой информации
## 📋 КОНТЕКСТ (средний приоритет)
[Дополнительная информация]
Полезно знать, но не критично
## 📚 СПРАВОЧНО (низший приоритет)
[Опциональные детали]
Можешь обратиться, если потребуется
Техника 3: Четкая структура
Используй заголовки и списки для легкого парсинга:
# Структурированный контекст
## Проект: Payment System
### Цель
Добавить поддержку криптовалют
### Требования
- [ ] API для получения курсов
- [ ] Валидация адресов кошельков
- [ ] Логирование транзакций
### Ограничения
- Бюджет: $50k
- Срок: 3 недели
- Нельзя менять существующие API
### Информация, которой я располагаю
- Спеки есть в docs/crypto-specs.md
- Примеры в examples/crypto-examples.js
- Команда: 2 разработчика
🗂️ Структура файлов памяти в проекте
Вот как должна выглядеть папка проекта:
my-project/
├── CLAUDE.md ← Контекст проекта (главный файл)
├── TODO.md ← Текущие задачи
├── AGENTS.md ← Инструкции для агентов
├── src/ ← Исходный код
├── tests/ ← Тесты
└── docs/ ← Документация
├── architecture.md
├── api.md
└── setup.md
Как использовать эти файлы:
Начало сессии:
cd my-project
claude-code .
Claude Code автоматически прочитает CLAUDE.md и использует его как контекст.
Если нужно добавить информацию:
/btw Обнови контекст: мы добавили поддержку WebSockets
Claude Code добавит эту информацию в контекст.
Если нужно обновить TODO:
/btw Отметь задачу X как Done, добавь новые задачи Y и Z
🧠 Сбор персонального контекста
Перед началом работы с Claude Code ты можешь собрать свой персональный профиль. Это поможет агенту лучше понимать, как ты работаешь.
Промпт для сбора профиля:
Используй AskUserQuestion чтобы собрать мой персональный контекст.
Задай мне вопросы на русском языке о:
1. Роль и индустрия (PM, Developer, Designer, Researcher, Marketer, Founder, другое)
2. Размер компании (Startup, SMB, Enterprise, Solo)
3. Основные рабочие задачи (Анализ данных, Коммуникация, Разработка, Исследования, Контент)
4. Текущие инструменты (Notion, Slack, Figma, IDE, CRM, другие)
5. Типичная рабочая неделя (много встреч, глубокая работа, микс)
6. Главные болевые точки (Информационная перегрузка, Рутина, Коммуникация, Планирование)
После сбора ответов создай структурированный background.md с разделами:
- Роль и контекст
- Рабочие задачи
- Инструменты
- Проблемы и возможности
Результат: файл background.md в корне проекта — личный контекст для твоего CLAUDE.md.
💡 Совет: Сохрани background.md в
.claude/background.mdесли хочешь использовать его для всех проектов.
🔄 Встроенные агенты Claude Code
Claude Code имеет несколько встроенных агентов для разных задач:
1. General Purpose Agent (по умолчанию)
Используется для:
- Обычной разработки
- Написания кода
- Рефакторинга
Использование:
claude-code .
[обычная работа]
Особенность: 💡 При работе с General Purpose Agent Claude в целом использует меньше токенов, чем при прямых инструкциях — агент сам находит нужный контекст вместо того, чтобы загружать всё сразу.
2. Research Agent
Используется для:
- Поиска информации в кодовой базе
- Анализа файлов
- Понимания архитектуры
Использование:
/explore --thoroughness medium
3. Orchestration Agent
Используется для:
- Руководства большим проектом
- Координации нескольких задач
- Планирования
Использование:
/plan
Практика: запуск агентов
General Purpose Agent — исследование файлов:
Запусти general-purpose агента с задачей:
"Создай список всех .md файлов в текущей директории
с кратким описанием их содержимого"
Explore агент — поиск в кодовой базе:
/explore --thoroughness quick
"Какие файлы отвечают за генерацию HTML в этом проекте?"
claude-code-guide — справка по инструментам:
Запусти claude-code-guide агента и спроси:
"Как работает Agent tool и какие subagent_type доступны?"
🧪 Практические примеры управления контекстом
Пример 1: Первая сессия с новым проектом
# CLAUDE.md
## Моя роль
Я - фронтенд разработчик с 5 летним опытом в React.
Знаю TypeScript, Tailwind, Next.js.
## Проект
E-commerce платформа для магазина одежды.
Нужна работающая страница каталога товаров.
## Стек
- React 18
- TypeScript
- Tailwind CSS
- Next.js 14
## Структура
src/ app/ components/ ProductCard.tsx ProductFilter.tsx lib/ api.ts styles/
## Как запустить
```bash
npm install
npm run dev
# Открой http://localhost:3000
Текущая задача
Создать фильтр товаров по категориям и цене.
Что делегировать
- Написание компонентов
- Форматирование кода
- Тесты
Что сам решу
- Дизайн интерфейса (mockups готовы)
- UX решения
- Финальная проверка
### Пример 2: Управление контекстом в длинной сессии
Начало сессии: Claude: "Я вижу, что нужно сделать. Начинаю работать."
[Через 30 минут работы, контекст заполняется]
Я: "/btw Добавь информацию: мы изменили API на GET /products/v2 вместо /products"
Claude: "[обновляет контекст, продолжает работу]"
[Через час работы, нужно резюмировать]
Я: "Можешь кратко резюмировать, что было сделано?"
Claude: " ✅ Создан компонент ProductFilter ✅ Подключена API интеграция ✅ Написаны тесты ❌ Остаток: стили для мобильной версии
Для продолжения нужно:
- Добавить media queries
- Тестировать на iPhone "
---
## 🎯 Когда обновлять контекст
### Обнови CLAUDE.md когда:
- [ ] Архитектура проекта изменилась
- [ ] Добавили новый стек технологий
- [ ] Структура папок изменилась
- [ ] Добавились ограничения или требования
### Обнови TODO.md когда:
- [ ] Завершена задача
- [ ] Приоритеты изменились
- [ ] Появилась новая информация
- [ ] Снята блокировка на задачу
### Используй /btw когда:
- [ ] Небольшие уточнения
- [ ] Нашёл новую информацию во время сессии
- [ ] Нужно добавить файл в контекст
- [ ] Изменилось направление работы
---
## ⚠️ Ошибки в управлении контекстом
### ❌ Ошибка 1: Контекст переполнен
Плохо: Даёшь 100 файлов в контекст одновременно
Хорошо: Даёшь только релевантные 5-10 файлов
### ❌ Ошибка 2: Контекст устарел
Плохо: CLAUDE.md не обновляешь месяцами Агент работает на основе старой информации
Хорошо: Обновляешь CLAUDE.md еженедельно Агент всегда видит актуальное состояние
### ❌ Ошибка 3: Нет приоритизации
Плохо: Список из 50 требований без приоритетов Агент не знает, что важнее
Хорошо: TOP 5 критичных требований в начале Остальное в справочном разделе
### ❌ Ошибка 4: Контекст и промпт смешаны
Плохо: "Вот весь код [1000 строк] и плюс отдельно задача для тебя..."
Хорошо: CLAUDE.md = контекст (стабильно) Промпт = конкретная задача (для этой сессии)
---
## 🔧 Параллельные агенты
Для больших задач можно запустить несколько агентов одновременно.
### Когда использовать:
- Независимые подзадачи
- Анализ разных частей проекта
- Создание нескольких компонентов
### Пример: Анализ user insights
**Запусти параллельно 3 агента:**
Агент 1: Найди Top 3 проблемы пользователей в insights.md Агент 2: Найди Top 3 возможности для продукта в insights.md Агент 3: Извлеки лучшие цитаты из interview.md
Потом объедини результаты в Markdown для встречи.
**Преимущества:**
- ⚡ В 3 раза быстрее
- 🧠 Каждый агент фокусируется на одном
- 📊 Легче потом объединить результаты
---
## 📋 Шаблоны файлов памяти
### CLAUDE.md шаблон:
```markdown
# Project Context
## Моя роль
[Твой профиль, опыт, экспертиза]
## Проект
[Что это, зачем нужно, целевая аудитория]
## Стек и версии
- Node.js: 18.x
- React: 18.x
- Database: PostgreSQL 14
## Структура проекта
[Папки и их назначение]
## Файлы, которые агент должен знать
[Самые важные файлы и почему]
## Как запустить проект
[Пошаговые команды]
## Текущее состояние
[Что работает, что не работает]
## Для новой работы
[Что нужно изменить, какие ограничения]
## Мой стиль работы
[Как я предпочитаю работать с агентом]
TODO.md шаблон:
# Project Tasks
## 🔴 КРИТИЧНО (Sprint текущей недели)
- [ ] Задача 1 (estimate: 4ч)
- [ ] Задача 2 (estimate: 2ч)
## 🟡 ВАЖНО (Следующая неделя)
- [ ] Задача 3
- [ ] Задача 4
## 🟢 МОЖНО ПОЗЖЕ (Backlog)
- [ ] Техдолг в модуле X
- [ ] Оптимизация производительности
## ⏸️ БЛОКИРОВАНА
- [ ] Задача Y - ждёт информации от [Кого]
## ✅ ЗАВЕРШЕНО
- [x] Создан компонент Z
- [x] Интегрирована API
AGENTS.md шаблон:
# Instructions for Claude Code
## Для любой задачи
- Используй TypeScript
- Пиши self-documenting код
- Добавляй примеры использования
## Для /explore
- Сосредоточься на архитектуре
- Найди связи между файлами
- Предложи улучшения структуры
## Для /plan
- Разбей на дневные подзадачи
- Укажи зависимости
- Дай оценку времени
## Для /code
- Пиши тесты вместе с кодом
- Комментируй нетривиальную логику
- Проверяй edge cases
## Чего избегать
- Не меняй архитектуру без согласования
- Не добавляй новые зависимости без разрешения
- Не пиши код в один файл на 1000+ строк
✅ Чеклист: Твоя система памяти
- [ ] Создан CLAUDE.md с контекстом проекта
- [ ] Создан TODO.md с текущими задачами
- [ ] Создан AGENTS.md с инструкциями
- [ ] Все файлы добавлены в git
- [ ] CLAUDE.md обновляется еженедельно
- [ ] TODO.md обновляется по мере работы
- [ ] Используешь /btw для быстрых обновлений контекста
🎯 Результат Meeting 4
Теперь ты знаешь:
- [ ] Как работает контекст для агентов
- [ ] Проблемы контекста и как их решить
- [ ] Три основных файла памяти (CLAUDE, TODO, AGENTS)
- [ ] Техники управления контекстом
- [ ] Когда обновлять контекст
- [ ] Как использовать параллельных агентов
- [ ] Как структурировать информацию
📝 Домашка
Задание 1: Создай полную систему памяти для своего проекта:
cd ~/my-project
touch CLAUDE.md TODO.md AGENTS.md
# Заполни каждый файл по шаблонам выше
Задание 2: Запусти Claude Code с новым контекстом:
claude-code .
# Дай задачу агенту, посмотри, как он использует контекст
Задание 3: Обнови контекст во время сессии:
/btw Добавь информацию о новом требовании X
Проверь:
- [ ] CLAUDE.md полностью заполнен
- [ ] TODO.md содержит твои текущие задачи
- [ ] AGENTS.md содержит твои инструкции
- [ ] Использовал /btw при изменении контекста
📊 Feedback после Meeting 4
Перед переходом к Meeting 5 — заполни my-experiments/feedback-m4.md (скопируй из my-templates/feedback-template.md, 3–5 мин).
Это делает курс самосовершенствующимся: твой сигнал (опционально, анонимно) идёт в course-feedback/ и помогает автору улучшать модули.
🎓 Что дальше?
Ты прошёл все 4 встречи! Теперь:
- Практикуй - выполняй упражнения в EXERCISES.md
- Экспериментируй - пробуй разные промпты и подходы
- Записывай - сохраняй хорошие паттерны в
experiments/ - Итерируй - улучшай свой стиль работы
Перейди к практическим упражнениям: EXERCISES.md
Создай свой CLAUDE.md в рабочей папке с личным контекстом (кто ты, что делаешь, стиль ответов). Протестируй как он меняет поведение агента.