配置档案管理
智码 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,不会把明文凭据上云。
额度用尽自动轮换(v5.2.0+)
准备了多个档案,最常见的用法就是"这个额度用完了换下一个"。以前得你盯着终端、看到限额报错再手动切换、再让 AI 从头接上。现在可以让它自己来:命中额度限制时自动切到下一个可用档案,重启会话并续发提示词接着跑。
开关在各 Provider 的 API 配置面板里、档案列表正上方。一个「工作区 + 工具」就是一个独立的轮换组,互不干扰。
默认关闭,首次开启会弹一次说明
轮换会自动重启会话。被动触发时会话本来就卡在限额报错上、干不了活,重启是纯收益;但你得先知道这件事会发生,否则某天回来发现终端重开过一次会一头雾水。至少需要 2 个档案才能启用。
轮换顺序
开启后会列出该工具下的所有档案:
- 拖拽排序 — 决定用尽后按什么顺序往下换
- 勾选参与 — 不想卷入轮换的档案(比如计费的生产账号)可以单独取消勾选,也支持一键全选
- 冷却倒计时 — 刚用尽的档案会进入冷却,列表里直接显示还有多久恢复可用;能从报错里解析出精确重置时刻的就按那个时刻算,不再一律傻等一小时
- 重置健康状态 — 手动把某个档案标回可用
高级选项
| 选项 | 说明 |
|---|---|
| 每小时最多切换 | 默认 3 次(上限 20)。超出则停止轮换并通知你——防止某个配置问题导致它在几个档案之间空转 |
| 切换后续发提示词 | 换完档案自动发给 AI 的那句话。留空用内置默认文案;建议明确写「从中断处继续」,只发「继续」两个字时部分 CLI 会当成新任务重头做 |
| 切换前探活 | 先试一下目标档案通不通,不通就直接跳到下一个(OAuth 档案无法探活,一律放行) |
| 预防式提前切换 | 不等报错,用量到达阈值(默认 95%,可调 50–99)就提前切。会打断正在跑的任务,所以是独立开关;仅 Codex / Grok 支持,因为只有它们能读到用量数据 |
最近轮换记录
无人值守跑了一夜,回来想知道到底发生过什么——面板底部的折叠区里有完整轮换历史:什么时候、从哪个档案换到哪个、因为什么触发。
支持范围
Claude Code、Codex、Gemini、Grok、Kimi、OpenCode、Antigravity 七个工具都带这张卡片。
限额识别直接读 CLI 吐出的报错文本,覆盖 usage / session / weekly / daily / monthly / hourly / rate limit 等各家说法——不同 CLI 对"额度用尽"的措辞差别很大,同一家在不同窗口下的叫法也不一样(比如 Claude 的 5 小时窗口报的是 session limit 而不是 usage limit)。
跨实例配置导入(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 工具统一管理 — 工具检测与一键切换
- 多账号完全隔离 — 实例级别的完全隔离(与档案级互补)
