这个月我第三次换写代码的工具,也是第三次把同一个 Key、同一个 base url 重填一遍。三次配置分别花 2.2 秒、1.6 秒、0.7 秒,确认当前生效哪套再花 0.7 秒。这篇给你 1 条命令、2 个必换参数、3 个 exit 2 的触发条件、2 条确认命令,命令可以直接抄。
痛点很具体:每换一次工具,就要重新找一遍它的配置文件在哪、base url 填什么、Key 放哪个字段、模型名怎么写,各家格式还都不一样,手动改错一个字符就直接连不上,报错还看不出是哪儿错了。
真正属于我的信息只有三条:服务地址、Key、模型名。其余全是各家的私有格式,字段名、层级、引号规则每家一套,学完这次下次换工具还得重学。这条命令把这一层吃掉了:你只声明给哪个工具配、用哪个模型,落盘成什么格式它自己处理,你不需要碰任何 json 或 toml。
环境:Node.js 18+,npm install -g bailian-cli,bl 2.1.0;这条子命令不登录、不联网(API Key、CLI 安装)
下面所有秒数与退出码都是我 10 月 22 号在一个隔离目录里跑出来的,Key 用占位符,真实配置零改动,云资源创建 0 个。
读数一览
| 动作 | 命令 | 我这次的读数 |
|---|---|---|
| 配第一个工具 | bl config agent --agent 名字 | 2.2 s,写 1 个文件 |
| 换第二个工具 | 改 --agent 加 --model | 1.6 s,写 2 个文件 |
| 换第三个工具 | 同上,base url 换入口 | 0.7 s,写 2 个文件 |
| 确认当前配置 | bl config list | 0.7 s |
| 看完整配置 | bl config show | 0.7 s |
漏 --model | 无 | exit 2 |
| base url 与 region 全缺 | 无 | exit 2 |
--agent 传错 | 无 | exit 2,报错列出 7 个合法值 |

命令格式
bl config agent --agent <名字> \
(--base-url <url> | --region <region>) \
(--api-key <key> | --key <编码串>) \
--model <模型名>
--base-url 与 --region 二选一,--api-key 与 --key 二选一(前者收明文,后者收控制台复制出来的编码串),--agent 与 --model 必填。日常配置直接给 --base-url 加 --api-key:不同工具的入口本来就不一样,地址写死在命令里,回头翻命令历史也看得明白。
它不需要登录,也不联网
这条子命令的鉴权方式是 No Auth。它不发网络请求、不调模型、不创建任何云资源,动作只有一个:往目标工具自己的配置文件里写字段。
这带来两个直接结论。一是它不依赖登录态,可以放进脚本,也可以在离线环境里跑。二是它没法替你校验任何东西,Key 写错、地址写错,它照样返回成功、退出码 0。所以配置成功只等于文件写进去了,能不能连上要你自己打开工具验一次。
第一步:给正在用的工具配一条
bl config agent --agent qwen-code \
--base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
--api-key <你的Key> --model qwen3-coder-plus
2.2 秒,落盘 1 个配置文件。命令不联网,也不校验 Key 真假。
第二步:换工具只改两个参数
Key 与 base url 原样不动,只换 --agent 和 --model:
bl config agent --agent codex \
--base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
--api-key <你的Key> --model qwen3-coder-plus
1.6 秒,落盘 2 个文件。
bl config agent --agent claude-code \
--base-url https://dashscope.aliyuncs.com/apps/anthropic \
--api-key <你的Key> --model qwen3-max
0.7 秒,落盘 2 个文件。这一条的 base url 换了入口,对应关系见下表。
| 工具 | base url |
|---|---|
qwen-code、codex | https://dashscope.aliyuncs.com/compatible-mode/v1 |
claude-code | https://dashscope.aliyuncs.com/apps/anthropic |
三个工具配完可以并存,互不覆盖:每家写的是自己的文件。
第三步:确认当前生效的是哪套
bl config list
bl config show
各 0.7 秒。切换频繁的时候,这两条比翻配置文件快,也比猜可靠:list 给你一眼看全的概览,show 给你当前这套的完整内容。我的习惯是每换完一个工具就跑一次 list,确认刚才那条写进去了,也确认没有把别的工具的配置动到。
并存这一点值得单独说:每家写的是自己的文件,所以先配的那两个不会被后配的冲掉。手边同时留着几个能用的工具,切换的只是你打开哪一个,不是重新配一遍。

三个 exit 2
一,--model 漏了。必填,不会填默认值。
二,--base-url 和 --region 都不给。二选一,至少给一个;日常直接给 --base-url。
三,--agent 传了名单外的名字。合法值是固定的七个,报错会把七个全列出来。
bl config agent --agent 一个不存在的名字 \
--base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
--api-key <你的Key> --model qwen3-coder-plus
三种情况的报错都会直说缺什么或该填什么,照补重跑就行,不用翻文档。写脚本的时候这一点很有用:退出码 2 一律归到"参数写错了"这个分支,和"Key 无效"那类运行时问题分开处理。
配好了不等于能用了
这条命令不校验 Key。我用占位 Key 跑,一样写入成功、退出码 0。所以配完必须打开那个工具跑一次,连不上先查 Key 与 base url,命令本身不是嫌疑对象。
排查顺序建议固定下来:先确认 Key 有效,再确认 base url 对上了那个工具的入口(有一个工具走的是另一个入口,不是兼容形态那个),最后才去怀疑别的。三步走完还没通,再翻工具自己的日志。
跑之前也建议备份:它真的会写你 home 目录下各工具的配置文件。我的做法是先在临时隔离目录里用占位 Key 试一遍,看它写了哪些文件、写成什么样,再动真配置。
适用边界
只配一个工具且不打算换:手动改一次配置文件几分钟的事,不必引入命令行。
经常换、需要几个工具并存、或要把配置写进脚本与新人入职流程:这条命令才开始省时间。写进脚本尤其合适,一行命令、参数固定、退出码明确、不依赖登录态,失败分支好写,比在内部文档里贴三段截图让人照着点可靠。
和十二天前那篇从零配一遍的教程分工不同:那篇讲第一次怎么配进去,这篇讲换第二个第三个时哪些参数不动、哪些必换、配完怎么确认。两篇的命令面不冲突,按顺序看就行。
速查:
bl config agent --agent 工具名 --base-url https://dashscope.aliyuncs.com/compatible-mode/v1 --api-key 你的Key --model 模型名
bl config list
bl config show
(--model 缺失、--base-url 与 --region 全缺、--agent 传名单外的名字,三种情况都是 exit 2;命令不联网、不校验 Key,配置成功只代表文件写进去了。)