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 --checkpointing
settings.json
ファイルを使用する
すべてのセッションで Checkpointing をデフォルトで有効にするには、settings.json
ファイルを編集する必要があります。
以下のキーを settings.json
に追加してください:
{
"checkpointing": {
"enabled": true
}
}
/restore
コマンドの使用
有効にすると、チェックポイントは自動的に作成されます。これらを管理するには、/restore
コマンドを使用します。
利用可能なチェックポイントの一覧表示
現在のプロジェクトで保存されているすべてのチェックポイントを確認するには、以下を実行してください:
/restore
CLI は利用可能なチェックポイントファイルの一覧を表示します。これらのファイル名は通常、タイムスタンプ、変更されたファイルの名前、実行予定だったツールの名前から構成されます(例: 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
コマンドを実行すると、ファイルと会話内容はそのチェックポイントが作成された時点の状態に即座に復元され、元のツールプロンプトが再表示されます。