第 05 章
清理与回滚
「清理」把一个 Agent 清回刚安装的样子;动手前先存一个版本,之后可以一键回滚,回滚本身也能撤销。
什么时候用清理
- 想让某个 Agent 从头开始:去掉 Keysmith 部署的提示词,也去掉你自己加的规则、自定义 agents、命令、hooks 和 skills。
- 部署被漂移拦住、又不想手动排查时,清理可以清掉过期的部署记录。
清理前请先退出这个 Agent:它正在运行时,会话、记忆和登录正在使用中,清理会停下来。
清理会做什么
点 Agent 页面顶部的 清理,Switch 会先列出这次会动到的所有东西,分成三类:
- 保存后移除:你自己的设置,例如
rules、agents、commands、skills、hooks。整体移进版本里,回滚时放回去。 - 保存不含登录的副本后移除:
settings.json、config.toml这类既有设置又可能有密钥的文件。存进版本之前会去掉所有 key、token 和账号信息;如果去掉之后仍检测到登录信息,清理会停下,什么都不改。 - 直接删除,不保存:登录文件、系统钥匙串里的登录、会话历史、插件和缓存。清理后需要重新登录。
另外:
- Claude Code 会清空
~/.claude/CLAUDE.md,Codex 会清空~/.codex/AGENTS.md,包括你自己写在里面的内容。要先勾选「我知道这会清空……」才能继续。 - Codex 的 memories 文件夹另有一个勾选框,默认不勾。勾上后,整个文件夹会被移动进版本里(不复制、不删除,所以再大也不会丢文件),原位置留下一个空文件夹。
- Codex 的
config.toml保留在原处:里面是你的模型、provider 和信任的项目,Codex 没有它也无法再部署。
不会动的东西
- 你项目目录里的任何文件,包括 git 项目,以及 ZCode 的
~/.zcode/workspace; - 你的提示词库;
- Agent 软件本身;
- 链接(symlink)和其中含有 git 项目的文件夹,会原样留在原处。
版本与回滚
清理前保存的版本在 设置 → 版本 里,保存在 ~/.keysmith-switch/snapshots/。
选一个版本点 回滚,Switch 会先列出这次会恢复什么:
- 重新部署当时的提示词(如果当时的正文保存下来了);
- 把记忆文件恢复成原样;
- 把 memories 文件夹复制回去(版本本身保持完整,可以再次回滚);
- 把规则、skills、配置等放回去。
如果回滚会覆盖现在的内容,现在的状态会先另存为一个版本,所以回滚本身也能撤销。登录和会话历史在清理时已经删除,不会回来:回滚后需要重新登录;如果你已经重新登录,现有的配置文件不会被覆盖。
版本是普通文件,保存在 ~/.keysmith-switch/snapshots/。不需要的版本可以在「版本」页单独删除。
输入替换与清理
清理某个 Agent 之前,Switch 会先断开它的输入替换,让它恢复直接连接;回滚时恢复的是你原来的地址。你的替换规则会保留。