История сессий¶
История сессий — это система управления сессиями диалога с AI в Koda. Каждая сессия сохраняет полную историю переписки, контекст и результаты работы, позволяя вернуться к предыдущим обсуждениям.
Что такое сессия?¶
Сессия — это отдельный диалог с AI со своей историей сообщений, контекстом и настройками.
Характеристики сессии¶
| Параметр | Описание |
|---|---|
| ID | Уникальный идентификатор сессии |
| Заголовок | Автоматически генерируемое или пользовательское название |
| Дата создания | Время начала сессии |
| Режим | Chat, Agent, Completion |
| История | Все сообщения в диалоге |
| Контекст | Прикреплённые файлы и данные |
Навигация по истории¶
Просмотр всех сессий¶
Шаг 1: Откройте историю
- Нажмите на иконку History (📚) в боковой панели
- Или используйте переход на страницу
/history
Шаг 2: Просмотрите список
Сессии отображаются в хронологическом порядке: - Today — сегодня - This Week — эта неделя - This Month — этот месяц - Older — старые
Поиск сессий¶
Поиск по заголовку:
- Введите текст в поле поиска
- Используйте fuzzy-поиск (допускает ошибки)
- Результаты фильтруются автоматически
Примеры поиска:
"React компонент" → найдёт "Создание React компонента"
"API endpoint" → найдёт "Разработка REST API"
"база данных" → найдёт "Работа с PostgreSQL"
Очистка поиска: - Нажмите X в поле поиска - Или удалите текст вручную
Сортировка сессий¶
Сессии автоматически сортируются по дате: - Новые сверху — последние сессии первыми - Хронологически — в порядке создания
Группировка: - Today — сессии за сегодня - This Week — за последние 7 дней - This Month — за последние 30 дней - Older — всё остальное
Управление сессиями¶
Новая сессия¶
Создание через интерфейс:
- Нажмите
+(New Session) в верхней панели - Или перейдите в чат и начните новый диалог
Горячие клавиши: Ctrl/⌘ + L
Автоматическое создание: - При перезапуске IDE создаётся новая сессия - Предыдущая сессия сохраняется автоматически
Переключение между сессиями¶
Через историю:
- Откройте History (📚)
- Найдите нужную сессию
- Кликните на строку сессии
- Сессия загружается в чат
Через табы (если включено):
- Используйте переключатель табов
- Каждая вкладка — отдельная сессия
- Переключайтесь кликом
Переименование сессии¶
Автоматические заголовки:
По умолчанию Koda генерирует заголовки автоматически: - На основе первого сообщения - Использует AI для создания краткого описания - Включает ключевые темы
Включение/выключение:
Ручное переименование:
- Откройте сессию в истории
- Нажмите на заголовок
- Введите новое название
- Нажмите Enter
Удаление сессии¶
Удаление одной сессии:
- Откройте History
- Найдите сессию
- Нажмите 🗑️ Delete
- Подтвердите удаление
Через контекстное меню:
- Правый клик на сессии
- Выберите Delete
- Подтвердите
Через API:
Очистка всей истории¶
Через интерфейс:
- Откройте History
- Прокрутите вниз
- Нажмите Clear session history
- Подтвердите удаление
Что удаляется: - ✅ Все сохранённые сессии - ✅ История переписки - ✅ Контекстные данные
Что сохраняется: - ✅ Текущая активная сессия - ✅ Настройки Koda - ✅ Навыки и MCP
Через API:
Экспорт и импорт¶
Экспорт сессии¶
В Markdown:
Используйте команду /share:
Результат:
- Markdown файл с полным диалогом
- Сохраняется в ~/.koda/shared/
- Включает код и контекст
Формат файла:
# Chat Session — 2026-01-15 14:30
## User
Как создать React компонент?
## Assistant
Для создания React компонента:
1. Создайте файл Component.tsx
2. Добавьте импорты
...
## Code: Component.tsx
```typescript
export const Component = () => {
return <div>Hello</div>;
};
---
### Экспорт в JSON
**Через API**:
```typescript
// Сохранение сессии
ideMessenger.request("history/save", {
sessionId: "session-id",
title: "My Session",
workspaceDirectory: "/path/to/workspace",
mode: "agent",
history: [...]
});
Структура JSON:
{
"sessionId": "uuid",
"title": "Название",
"dateCreated": "2026-01-15T14:30:00Z",
"workspaceDirectory": "/path",
"mode": "agent",
"history": [
{
"message": {
"role": "user",
"content": "Вопрос"
},
"contextItems": []
}
]
}
Импорт сессии¶
Загрузка JSON:
- Получите файл сессии
- Используйте API для загрузки:
Восстановление: - Сессия загружается в чат - История восстанавливается - Контекст становится активным
Автоматическое сохранение¶
Когда сохраняется¶
Автоматически: - ✅ При каждом новом сообщении - ✅ При завершении стриминга - ✅ При переключении сессий - ✅ При закрытии IDE - ✅ При изменении режима
Вручную:
- При экспорте через /share
- При явном вызове API
Хранение данных¶
Расположение:
- VS Code:
~/.koda/sessions/ - IntelliJ:
~/.koda/sessions/ - Telegram: серверное хранилище
Структура:
Размер: - Зависит от длины истории - В среднем 10-100 KB на сессию - При большом контексте — до 1 MB
Синхронизация¶
Между устройствами¶
Telegram Remote:
При использовании Telegram: - Сессии хранятся на сервере - Доступны с любого устройства - Синхронизируются автоматически
ID сессии: - Уникальный для каждого remote request - Сохраняется в метаданных - Позволяет продолжить с другого устройства
В пределах IDE¶
Автосохранение: - Локальное хранилище - IndexedDB в браузере - Файлы на диске в IDE
Восстановление: - При перезапуске IDE - После сбоя - При переключении workspace
Сессии в режимах¶
Режим Chat¶
Особенности: - Полная история диалога - Контекстные файлы - Вложения кода
Сохранение: - Каждое сообщение - Контекстные провайдеры - Выделения кода
Режим Agent¶
Особенности: - История вызовов инструментов - Результаты выполнения - Изменения файлов
Сохранение: - Tool calls и tool responses - Применённые диффы - Состояние выполнения
Пример:
User: Создай компонент
Agent: [read_file: Component.tsx]
Agent: [edit_file: Component.tsx]
Agent: Компонент создан
Режим Completion¶
Особенности: - Короткие сессии - Автодополнение - Быстрые ответы
Сохранение: - Только завершённые комплиты - Принятые предложения - Отклонённые варианты
Продвинутые возможности¶
Суммаризация истории¶
Автоматическая:
При длинной истории Koda автоматически суммаризирует: - Старые сообщения - Tool call результаты - Контекстные данные
Ручная:
Используйте команду /summarize:
Что делает: 1. Анализирует историю 2. Создаёт краткое описание 3. Добавляет как summary message 4. Уменьшает использование токенов
Результат:
[Summary: 15 сообщений сжато в 1 абзац]
Пользователь спрашивал о создании React компонента.
Агент предоставил код с хуками useState и useEffect.
Компонент включает валидацию формы и обработку ошибок.
Управление токенами¶
Контекстное окно:
Модели имеют лимит токенов: - GPT-4: 8,000 - 128,000 токенов - Claude: 100,000 - 200,000 токенов - Llama: 4,000 - 32,000 токенов
Оптимизация: - Суммаризация старых сообщений - Удаление tool outputs - Обрезка контекста
Индикатор использования:
Koda показывает использование контекста: - 0-50% ✅ — достаточно места - 50-80% ⚠️ — рекомендуется суммаризация - 80-100% ❌ — начнутся обрезания
Ветвление сессий¶
Создание копии:
- Откройте сессию
- Сохраните как новую
- Продолжите в другом направлении
Use case: - Разные варианты решения - A/B тестирование подходов - Сохранение альтернатив
Через API:
// Клонирование сессии
const clonedSession = {
...originalSession,
sessionId: uuidv4(),
title: originalSession.title + " (copy)",
};
ideMessenger.request("history/save", clonedSession);
Метаданные сессии¶
Автоматические:
{
sessionId: "uuid",
title: "Создание API",
dateCreated: "2026-01-15T14:30:00Z",
workspaceDirectory: "/path/to/project",
mode: "agent"
}
Пользовательские:
Можно добавлять свои метаданные: - Теги проекта - Категории задач - Приоритеты
Решение проблем¶
Сессия не сохраняется¶
Причины: - Ошибка записи на диск - Переполнено хранилище - Проблема с правами доступа
Решения:
-
Проверьте место на диске:
-
Очистите старые сессии:
- Удалите ненужные сессии
-
Используйте Clear session history
-
Проверьте права:
Сессия не загружается¶
Причины: - Повреждён файл - Неправильный ID - Ошибка формата JSON
Решения:
-
Проверьте файл:
-
Валидируйте JSON:
-
Восстановите из backup:
- Найдите резервную копию
- Скопируйте в директорию сессий
Потеря контекста¶
Причины: - Контекстные файлы удалены - Пути изменились - Workspace переключён
Решения:
- Проверьте файлы:
- Убедитесь, что файлы существуют
-
Проверьте относительные пути
-
Обновите контекст:
- Прикрепите файлы заново
-
Используйте
@fileдля добавления -
Переключите workspace:
- Убедитесь, что выбран правильный workspace
- Перезагрузите сессию
Конфликты синхронизации¶
Причины: - Одновременная запись - Рассинхронизация устройств - Сетевые проблемы
Решения:
- Остановите синхронизацию:
- Отключите Telegram Remote
-
Работайте локально
-
Разрешите конфликты:
- Выберите последнюю версию
-
Или объедините вручную
-
Пересоздайте сессию:
- Экспортируйте важную информацию
- Создайте новую сессию
Лучшие практики¶
1. Организация сессий¶
По задачам: - Одна сессия — одна задача - Логическое разделение - Понятные заголовки
Примеры:
✅ "Auth Module - Login Component"
✅ "API Integration - User Endpoints"
✅ "Bug Fix - Memory Leak in WebSocket"
❌ "Session 1"
❌ "Test"
❌ "asdfgh"
2. Регулярная очистка¶
Еженедельно: - Удаляйте завершённые сессии - Архивируйте важные - Очищайте тестовые
Ежемесячно: - Ревизия всех сессий - Удаление устаревших - Экспорт важных
3. Использование закладок¶
Для важных сессий: - Экспортируйте в Markdown - Сохраняйте в проекте - Добавляйте в документацию
Пример:
# Экспорт важной сессии
/share
# Копирование в проект
cp ~/.koda/shared/session.md ./docs/decisions/
4. Суммаризация¶
Перед достижением лимита:
- Используйте /summarize
- Сжимайте старые сообщения
- Сохраняйте ключевые решения
Когда суммаризировать: - При 70% использования токенов - После завершения этапа - Перед переключением задачи
5. Именование¶
Правила: - Кратко и понятно - Ключевые слова - Дата или версия (если нужно)
Примеры:
API для работы с историей¶
Основные методы¶
Список сессий:
Загрузка сессии:
Сохранение сессии:
await ideMessenger.request("history/save", {
sessionId: "uuid",
title: "Title",
workspaceDirectory: "/path",
mode: "agent",
history: [...]
});
Удаление сессии:
Очистка истории:
Метаданные¶
Получение:
Структура:
interface SessionMetadata {
sessionId: string;
title: string;
dateCreated: string;
workspaceDirectory: string;
mode: MessageModes;
}
Интеграция с другими функциями¶
С навыками¶
Сохранение контекста: - Навыки загружаются в сессию - Инструкции сохраняются - Результаты применения
Пример:
Session: "React Component with Skills"
- Skill: react-component (applied)
- Generated: Component.tsx
- Context: Best practices from skill
С MCP¶
История вызовов: - MCP tool calls сохраняются - Результаты серверов - Конфигурация подключений
Восстановление: - При загрузке сессии - MCP серверы переподключаются - Контекст восстанавливается
С инструментами¶
Tool call история: - Вызовы инструментов - Результаты выполнения - Применённые изменения
Откат изменений: - Можно откатить tool calls - Восстановить файлы - Вернуть предыдущее состояние
Дополнительные ресурсы¶
Официальная документация¶
Утилиты¶
- Session Storage — локальное хранилище
- MiniSearch — поиск по сессиям
- UUID — генерация идентификаторов
Форматы¶
- Markdown — экспорт через
/share - JSON — полное сохранение
- Plain Text — упрощённый формат
См. также¶
- Слеш-команды — команда
/shareдля экспорта - Агентский режим — сессии с tool calls
- Настройки — управление сессиями
- Суммаризация — сжатие диалогов и команда
/summarize