第 08 章
各 Agent 的写入细节
每个 Agent 的提示词放在哪里、适配器会碰哪些文件、停用和清理分别还原什么。
部署和停用都由各自的开源适配器完成;清理时清空记忆文件、输入替换改的配置项由 Switch 自己写入,见工作原理。下面是当前版本(适配器版本和 App 锁定在一起)的行为。Switch 部署的都是用户级设置,不会写进任何项目目录。
Claude Code · claude-keysmith 7.2
-
提示词:写进
~/.claude/keysmith/,再在~/.claude/CLAUDE.md里加一段带标记的导入块:<!-- claude-keysmith:start name=claude-project-rules --> @keysmith/claude-project-rules.md <!-- claude-keysmith:end name=claude-project-rules -->标记之外的内容(你自己写的规则)不会动。
-
停用:只移除这一段导入块和 Keysmith 的提示词文件。
-
清理:可以清空整个
CLAUDE.md(要先勾选确认),并保存/移除rules、agents、commands、hooks、skills、output-styles;删除会话、插件、缓存和系统钥匙串里的登录。 -
适配器不碰:Claude Code 程序本身、网络设置、凭证、MCP 配置和正在运行的进程。
-
输入替换:只改
settings.json里的env.ANTHROPIC_BASE_URL;不支持 Bedrock 和 Vertex。
Codex · codex-keysmith 0.6.0
- 提示词:放进
~/.codex/,并在config.toml里写入model_instructions_file。写入前会备份config.toml。 - hooks:如果
hooks.json可能干扰指令加载,会先隔离并留下带时间戳的备份。 - 停用:移除托管的那一行和提示词文件,还原被隔离的 hooks。
- 清理:可以清空
~/.codex/AGENTS.md(要先勾选确认);memories文件夹要单独勾选,且要先退出 Codex。config.toml保留在原处。 - 输入替换:新增
[model_providers.keysmith-relay],复制你原来的 provider 只改base_url;需要自定义 provider(wire_api = "responses")。
Grok Build · grok-keysmith 0.7.0
- 提示词:写进
~/.grok/rules/99-keysmith.md。这是 home rules,每个 Grok 会话都会读取,不依赖AGENTS.md或任何角色卡。 - 兼容层:在
config.toml里用一段# === grok-keysmith compat isolation begin/end ===标记关闭 Claude / Cursor 兼容层,并隔离~/.grok/hooks/*.json,避免它们干扰提示词。 - 停用:只移除自己写入的文件和那一段标记;如果部署前的配置备份已经不在,可以「保留当前配置并停用」。
- 输入替换的区域:
# === keysmith-switch input rewrite ===标记之间是 Switch 的区域。适配器从不写进去,部署、停用、整理和恢复时都会保留这一段。 - 输入替换:需要先运行一次 Grok,让它拉取模型列表。
ZCode · zcode-keysmith 0.3.2
- 提示词:写进
~/.zcode-keysmith/system-role.md,作为真正的 system 角色生效,优先于 ZCode 自带的 system prompt。 - 新版 ZCode(3.12 及以上):先备份 ZCode 自带的
zcode.cjs,再修补它,让它优先读取上面的文件;停用时还原。 - 环境变量:macOS 用 LaunchAgent 设置,Windows 写用户环境变量。部署前会记下原来的值(包括
NODE_OPTIONS),停用时还原。 - 不支持恢复(recover):ZCode 适配器没有中断恢复功能。
- 输入替换:改
~/.zcode/v2/provider_config.json里每个个人 provider 的baseUrl;不支持账号登录的 Coding Plan。
适配器源码
四个适配器都以 MIT 协议开源,可以单独使用命令行版本: