Управление сессиями
Claude Code SDK предоставляет возможности управления сессиями для обработки состояния разговора, постоянства и возобновления. Это руководство охватывает то, как сессии создаются, управляются, сохраняются в файлы и возобновляются в рамках SDK.Архитектура сессий
Claude Code SDK реализует файловую систему управления сессиями, которая обрабатывает постоянство разговора и восстановление состояния.Структура файлов сессии
Сессии сохраняются в локальной файловой системе в структурированном формате:Формат метаданных сессии
Файлsessions.json
хранит метаданные обо всех сессиях:
Формат транскрипта сессии
Транскрипты сессий хранятся как файлы JSONL (JSON Lines), где каждая строка представляет сообщение или событие:- Сообщения пользователя: Ввод от пользователя
- Сообщения ассистента: Ответы от Claude
- Контрольные точки: Сохраненные состояния в разговоре (например, после завершения задачи)
- Использование инструментов: Записи о том, когда инструменты были вызваны и их результаты
Жизненный цикл сессии
Создание и инициализация
Когда сессия начинается, SDK выполняет несколько шагов инициализации:- Генерация ID сессии: Создает уникальный идентификатор для сессии
- Создание директории проекта: Настраивает место хранения, специфичное для проекта
- Инициализация файла транскрипта: Создает пустой файл JSONL для разговора
- Сохранение начальных метаданных: Записывает время создания сессии и конфигурацию
Получение ID сессии
ID сессии предоставляется в начальном системном сообщении, когда вы начинаете разговор. Вы можете захватить его для последующего использования:Постоянство состояния сессии
SDK автоматически сохраняет состояние сессии на диск:- После каждого обмена сообщениями: Транскрипт обновляется
- При вызовах инструментов: Использование инструментов и результаты записываются
- В контрольных точках: Важные состояния разговора отмечаются
- При завершении сессии: Финальное состояние сохраняется