配置档案管理
智码 AICoder 把"账号 + Base URL + 模型 + 鉴权方式"打包成「配置档案(API Profile)」,一个工具下可以保存多个档案,一键切换。无论你是混用 Anthropic 官方 OAuth 与第三方 API 端点、还是同时维护多个 ChatGPT 账号,都不必反复改环境变量或重装 CLI。
两种档案类型
| 档案类型 | 切换机制 | 凭据持久化 |
|---|---|---|
| API Key 档案 | 写 ~/.claude/settings.json 的 apiKey / baseUrl / 模型 | 明文保存在 settings.json |
| OAuth 档案 | 整段还原工具的 auth.json(Claude .credentials.json / Codex auth.json) | 加密存入 DB(enc:v1: 前缀) |
OAuth 档案在数据库里以加密 envelope 方式整段保存(含 access_token / refresh_token / 过期时间 / email / plan),切换时整段还原到磁盘,CLI 完全无感知。
核心字段
| 字段 | 说明 |
|---|---|
| 档案名称 | 如「公司 OAuth」「个人账号」「DeepSeek 测试」 |
| 关联工具 | claude-code / codex / gemini / opencode(多工具时按工具隔离) |
| Provider | anthropic / openai / google / deepseek / zhipu …… |
| Base URL | 自定义端点(可选;OAuth 档案无此字段) |
| API Key | 密钥(OAuth 档案此字段为空) |
| 默认模型 | 如 claude-opus-4-7(可选,留空走 CLI 默认) |
| 认证方式 | auto / api_key / auth_token(详见 多工具管理) |
| 走代理 | 切换到此档案时是否启用本地代理(独立于全局代理开关) |
一键切换与安全清理
切换档案时智码会自动处理多个细节,避免环境变量残留导致的"切了 OAuth 但还是走 API Key"这类问题:
| 切换方向 | 自动处理 |
|---|---|
| API Key → OAuth | 清理 settings.json 顶层 apiKey / apiKeyHelper 与 env.* 残留;备份当前 API Key 配置;还原 OAuth credentials |
| OAuth → 第三方 API Key | 备份 .credentials.json 为 .official-backup;写入新的 base_url + api_key |
| 切回官方 OAuth | 恢复 .credentials.json.official-backup;清空 settings.json 中的 apiKey / baseUrl |
| OAuth → 另一个 OAuth | 整段还原目标档案的 envelope,CLI 无感知 |
切换提示文案按档案类型区分显示:
- 「已切换到 OAuth 账号: 名称」
- 「已切换到自定义 API: 名称」
- 「已切回官方 API」
切换前的环境变量冲突检查
切换到自定义 API 时,应用会检测系统环境变量里是否有 ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL 这类会"绕过 settings.json"的旧值,发现冲突会弹窗让你选择是清理还是继续。否则切了等于没切。
OAuth 多账号
Claude 多 OAuth 账号
适合在公司账号、个人账号、家庭共享账号之间频繁切换:
- 导入当前账号 — 在 API 配置页点「导入当前 OAuth」,把
~/.claude/.credentials.json加密保存为档案 - 添加新账号 — 点「添加新账号」按钮,自动调用 CLI 的
claude /login流程;浏览器完成 OAuth 后凭据自动入库 - 一键切换 — 切到目标 OAuth 档案时,整段还原
.credentials.json,CLI 重启即生效
Codex 多 OAuth 账号(v3.1.0+)
ChatGPT 账号同理:
- 激活的 OAuth 档案卡片新增「添加新账号」按钮,引导终端
codex login - 当前账号未保存为档案时,强制弹输入框先保存,避免账号丢失(refresh_token 一旦丢失无法找回)
- 数据库
api_profiles表的auth_type/oauth_payload列保存加密 envelope
OAuth 凭据安全
OAuth envelope 在数据库里以 enc:v1: 前缀加密存储,密钥派生自机器特征 + 用户密码(如设置)。但不要把 DB 文件随意上传到公开仓库——别人拿到 DB 文件 + 你的机器特征仍可能解密。WebDAV 同步时只会同步加密 envelope,不会把明文凭据上云。
跨实例配置导入(v3.2.4+)
多开模式(开发实例 / 生产实例 / 公司 / 个人)之间互导配置:
| 场景 | 自动处理 |
|---|---|
| 开发实例 → 生产实例 | 自动反转 dev_suffix 和 app_data_root,路径无需手改 |
| 单实例机器 | UI 不显示「开发 / 生产」分组,避免困惑 |
| OAuth 凭证保活 | 跨实例导入 Claude OAuth 时,若 email 匹配,自动用源实例当前活跃 .credentials.json 替换 envelope 内冻结快照,避免"导入即过期" |
| 预览界面 | 显示 expiresAt 与「将自动同步源最新凭证」提示,让你心里有数 |
操作路径:API 配置页 → 「从其他实例导入」按钮 → 选源实例 → 勾选要导入的档案 → 确认。
国内厂商端点 / 认证方式
为 DeepSeek、智谱 AI 等国内厂商提供 Base URL 下拉和认证方式自动判定,避免新老端点配置混乱、不同厂商鉴权头不一致的坑。
数据库事务保障(v3.2.4)
切换档案的"清旧 + 写新"操作用 SQLite 事务包裹(set_active_api_profile Command),避免半切换状态——要么完整切到目标档案,要么回滚到原状态,不会出现"切了一半,磁盘 OAuth 是新的、settings.json 还指向旧的"这种诡异情形。
相关章节
- 多 AI 工具统一管理 — 工具检测与一键切换
- 多账号完全隔离 — 实例级别的完全隔离(与档案级互补)
