セッション管理
Claude Code SDKは、会話状態、永続化、再開を処理するためのセッション管理機能を提供します。このガイドでは、セッションがどのように作成、管理、ファイルに永続化され、SDK内で再開されるかについて説明します。セッションアーキテクチャ
Claude Code SDKは、会話の永続化と状態復元を処理するファイルベースのセッション管理システムを実装しています。セッションファイル構造
セッションは構造化された形式でローカルファイルシステムに永続化されます:セッションメタデータ形式
sessions.json
ファイルは、すべてのセッションに関するメタデータを格納します:
セッショントランスクリプト形式
セッショントランスクリプトはJSONL(JSON Lines)ファイルとして格納され、各行がメッセージまたはイベントを表します:- ユーザーメッセージ: ユーザーからの入力
- アシスタントメッセージ: Claudeからの応答
- チェックポイント: 会話内の保存された状態(例:タスク完了後)
- ツール使用: ツールが呼び出された時とその結果の記録
セッションライフサイクル
作成と初期化
セッションが開始されると、SDKはいくつかの初期化ステップを実行します:- セッションID生成: セッション用の一意の識別子を作成
- プロジェクトディレクトリ作成: プロジェクト固有のストレージ場所を設定
- トランスクリプトファイル初期化: 会話用の空のJSONLファイルを作成
- 初期メタデータ格納: セッション作成時間と設定を記録
セッションIDの取得
セッションIDは、会話を開始する際の初期システムメッセージで提供されます。後で使用するためにキャプチャできます:セッション状態の永続化
SDKは自動的にセッション状態をディスクに永続化します:- 各メッセージ交換後: トランスクリプトが更新されます
- ツール呼び出し時: ツールの使用と結果が記録されます
- チェックポイント時: 重要な会話状態がマークされます
- セッション終了時: 最終状態が保存されます