Checkpointing
Qwen Code には Checkpointing 機能が含まれており、AI ツールによるファイル変更前にプロジェクトの状態を自動的に保存します。これにより、コード変更を安全に試したり適用したりでき、ツール実行前の状態に即座に戻すことができます。
仕組み
ファイルシステムを変更するツール(write_file や edit など)を承認すると、CLI は自動的に「チェックポイント」を作成します。このチェックポイントには以下が含まれます:
- Git スナップショット: ホームディレクトリ(
~/.qwen/history/<project_hash>)にある特別な影の Git リポジトリにコミットが作成されます。このスナップショットは、その時点でのプロジェクトファイルの完全な状態をキャプチャします。これはあなたのプロジェクトの Git リポジトリには一切干渉しません。 - 会話履歴: その時点までにエージェントとやり取りしたすべての会話が保存されます。
- ツール呼び出し: 実行されようとしていた特定のツール呼び出しも保存されます。
変更を元に戻したい、または単に以前の状態に戻りたい場合は、/restore コマンドを使用できます。チェックポイントをリストアすると以下の処理が行われます:
- プロジェクト内のすべてのファイルをスナップショットでキャプチャされた状態に戻します。
- CLI 内の会話履歴を復元します。
- 元のツール呼び出しを再度提案し、再度実行したり、修正したり、単に無視したりできるようにします。
Git スナップショットと会話履歴を含むすべてのチェックポイントデータは、ローカルマシン上に保存されます。Git スナップショットは影のリポジトリに保存され、会話履歴とツール呼び出しはプロジェクトの一時ディレクトリ(通常は ~/.qwen/tmp/<project_hash>/checkpoints)にある JSON ファイルに保存されます。
機能の有効化
Checkpointing 機能はデフォルトでは無効になっています。有効にするには、コマンドラインフラグを使用するか、settings.json ファイルを編集します。
コマンドラインフラグを使用する
Qwen Code を起動する際に --checkpointing フラグを使用することで、現在のセッションに対して checkpointing を有効にできます:
qwen --checkpointingsettings.json ファイルを使用する
すべてのセッションでデフォルトで checkpointing を有効にするには、settings.json ファイルを編集する必要があります。
以下のキーを settings.json に追加してください:
{
"general": {
"checkpointing": {
"enabled": true
}
}
}/restore コマンドの使用
有効にすると、チェックポイントは自動的に作成されます。これらを管理するには、/restore コマンドを使用します。
利用可能なチェックポイントの一覧表示
現在のプロジェクトで保存されているすべてのチェックポイントを確認するには、以下を実行してください:
/restoreCLI は利用可能なチェックポイントファイルの一覧を表示します。これらのファイル名は通常、タイムスタンプ、変更されたファイルの名前、実行予定だったツールの名前から構成されます(例:2025-06-22T10-00-00_000Z-my-file.txt-write_file)。
特定のチェックポイントへの復元
プロジェクトを特定のチェックポイントに戻すには、一覧から該当するチェックポイントファイルを使用します:
/restore <checkpoint_file>例えば:
/restore 2025-06-22T10-00-00_000Z-my-file.txt-write_fileコマンドを実行すると、ファイルと会話内容がそのチェックポイント作成時の状態に即座に復元され、元のツールプロンプトが再表示されます。