Checkpointing
Qwen Code 内置了 Checkpointing 功能,可在 AI 工具修改任何文件之前,自动保存项目状态的快照。这让你可以安全地尝试和应用代码更改,因为你知道可以随时一键还原到工具运行前的状态。
工作原理
当你批准一个会修改文件系统的工具(如 write_file 或 edit)时,CLI 会自动创建一个“检查点(checkpoint)”。该检查点包含以下内容:
- Git 快照: 会在你主目录下的一个特殊影子 Git 仓库(
~/.qwen/history/<project_hash>)中创建一个提交。该快照会完整记录此刻项目文件的状态。它不会干扰你项目自身的 Git 仓库。 - 对话历史: 保存截至该时刻你与 Agent 的完整对话记录。
- 工具调用: 同时存储即将执行的具体工具调用信息。
如果你想撤销更改或回退到之前的状态,可以使用 /restore 命令。恢复检查点将执行以下操作:
- 将项目中的所有文件还原到快照记录的状态。
- 在 CLI 中恢复对话历史。
- 重新显示原始的工具调用请求,让你可以再次执行、修改或直接忽略它。
所有检查点数据(包括 Git 快照和对话历史)均存储在本地计算机上。Git 快照存储在影子仓库中,而对话历史和工具调用信息则保存在项目临时目录下的 JSON 文件中,通常路径为 ~/.qwen/tmp/<project_hash>/checkpoints。
启用该功能
Checkpointing 功能默认处于禁用状态。要启用它,你可以使用命令行参数或编辑 settings.json 文件。
使用命令行参数
启动 Qwen Code 时,使用 --checkpointing 参数即可为当前会话启用检查点功能:
qwen --checkpointing使用 settings.json 文件
要为所有会话默认启用检查点功能,你需要编辑 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运行该命令后,你的文件和对话将立即恢复到创建检查点时的状态,并且原始的工具调用提示会重新出现。