青春如是|青年+AI怎样闯出新天地
2026-06-17
2026-06-17 0
WorkBuddy 支持自定义模型,这意味着你不一定只能使用默认模型,也可以把符合接口规范的第三方模型服务接入进来。

很多教程会直接告诉你“修改 models.json”,但对新手来说,真正麻烦的不是知道要改哪个文件,而是:
models.json 放在哪里?每个字段分别是什么意思?url 要不要带 /v1?API Key 写错了怎么办?改坏 JSON 后怎么恢复?多次添加同一个模型会不会重复?这篇文章从工程角度讲清楚 WorkBuddy 自定义模型配置的基本原理,并给出一个 PowerShell 自动化脚本示例,用来减少手动编辑 JSON 的出错概率。
说明:本文重点是 WorkBuddy 自定义模型配置方法和脚本自动化思路,不讨论具体模型服务优劣。
WorkBuddy 的自定义模型,本质上是把模型信息写入本地配置文件。
常见配置项包括:
id模型 ID,用于在配置中唯一标识模型name展示名称,通常可以和 id 一致vendor供应商类型,自定义模型通常是 CustomurlAPI 接口地址apiKey调用接口所需的 KeysupportsToolCall是否支持工具调用supportsImages是否支持图片输入supportsReasoning是否支持推理模式useCustomProtocol是否使用自定义协议一个简化后的模型配置可能长这样:
{"id": "example-model","name": "example-model","vendor": "Custom","url": "https://api.example.com/v1","apiKey": "sk-xxx","supportsToolCall": true,"supportsImages": false,"supportsReasoning": false,"useCustomProtocol": false}
真正使用时,WorkBuddy 会读取这些配置,并在模型列表里显示对应的自定义模型。
用户级配置文件通常在:
%USERPROFILE%.workbuddymodels.json
换成 PowerShell 里的路径,大概是:
$HOME.workbuddymodels.json
例如 Windows 用户名是 alice,那路径可能是:
C:Usersalice.workbuddymodels.json
如果这个文件不存在,可以手动创建,也可以通过脚本自动创建。
手动编辑不是不行,但比较容易踩坑。
比如少一个逗号:
{"id": "model-a""name": "model-a"}
这个 JSON 就是错误的。
正确写法:
{"id": "model-a","name": "model-a"}
/v1很多 OpenAI 兼容接口要求地址以 /v1 结尾,例如:
https://api.example.com/v1
如果只写:
https://api.example.com
就可能导致 WorkBuddy 拼接接口路径时找不到正确 endpoint。
如果你多次复制粘贴配置,可能会出现多个相同 id 的模型。
这样不仅难维护,也可能导致 WorkBuddy 读取时出现混乱。
很多人第一次改配置时,没有先备份原文件。
一旦格式改坏,想恢复就比较麻烦。
所以比较稳妥的做法是:
修改前先备份。写入时做 JSON 格式校验。对同名模型执行更新,而不是重复追加。保留其它已有自定义模型。下面这个开源脚本就是为了解决这些问题:
https://github.com/xujfcn/workbuddy-crazyrouter
它做的事情很简单:
找到 WorkBuddy 的models.json如果文件不存在就创建如果文件存在就先备份读取已有模型配置合并新的自定义模型对同名模型去重把接口地址规范成 /v1写回 JSON 文件一键执行方式:
iwr https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1 -UseB | iex
脚本会提示输入 API Key。输入的 Key 只会写入本机 WorkBuddy 配置文件。
如果不想交互输入,也可以先设置环境变量:
$env:CRAZYROUTER_API_KEY="sk-你的Key"iwr https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1 -UseB | iex
执行完成后,需要完全退出并重新打开 WorkBuddy,然后在模型列表中选择 Custom / 自定义模型。
/v1?脚本里有一个 Base URL 规范化逻辑。
如果你传入:
https://cn.crazyrouter.com
脚本会自动变成:
https://cn.crazyrouter.com/v1
这是因为许多 OpenAI 兼容接口会把 /v1 作为 API 版本路径。
如果配置文件里少了这层路径,后续请求可能会失败。
相关逻辑可以概括成:
$normalized = $Url.Trim().TrimEnd("/")if ($normalized -notmatch "/v1$") {$normalized = "$normalized/v1"}
这个小处理可以减少很多“接口地址看起来没错,但就是连不上”的问题。
脚本默认会写入几组模型:
claude-opus-4-8claude-opus-4-7claude-sonnet-4-6gpt-5.5gpt-5.4
这些模型会被写成 WorkBuddy 的自定义模型项。
如果你想自定义模型列表,可以下载脚本后本地执行,并传入 -Models 参数。
例如:
.setup-workbuddy-crazyrouter.ps1 `-Models "model-a", "model-b", "model-c"
默认情况下,脚本会保留原有其它自定义模型。
也就是说,如果你之前已经配置了别的模型,脚本不会直接删掉它们。
如果你希望清理旧的同类配置,可以使用:
.setup-workbuddy-crazyrouter.ps1 -ReplaceCrazyrouter
这个参数会删除旧的同类配置,只保留本次写入的模型。
适合这些场景:
之前配置过很多重复模型想重新整理模型列表想避免旧 URL 和新 URL 混在一起脚本默认会在写入前备份旧配置。
备份文件类似:
%USERPROFILE%.workbuddymodels.json.bak.20260605-140000
如果新配置不符合预期,可以这样恢复:
关闭 WorkBuddy。找到.workbuddy 目录。删除当前 models.json。把备份文件改名为 models.json。重新打开 WorkBuddy。如果你明确不想备份,可以使用:
.setup-workbuddy-crazyrouter.ps1 -NoBackup
但第一次使用不建议加这个参数。
从安全角度看,直接执行远程 PowerShell 脚本前,最好先阅读脚本内容。
你可以先打开这个地址查看源码:
https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1
或者先下载到本地:
iwr https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1 -OutFile setup-workbuddy-crazyrouter.ps1
看完后再执行:
.setup-workbuddy-crazyrouter.ps1
这比直接 | iex 更适合对安全比较敏感的环境。
先确认是否完全退出并重新打开 WorkBuddy。只是关闭窗口不一定等于进程完全退出。
脚本只把 API Key 写入本机的 WorkBuddy 配置文件。你也可以直接阅读脚本源码确认它没有上传逻辑。
找到 .bak.yyyyMMdd-HHmmss 备份文件,改回 models.json,然后重启 WorkBuddy。
可以。使用 -BaseUrl 参数:
.setup-workbuddy-crazyrouter.ps1 -BaseUrl "https://your-api.example.com"
脚本会自动补齐 /v1。
可以。使用 -Models 参数:
.setup-workbuddy-crazyrouter.ps1 -Models "model-a", "model-b"
WorkBuddy 自定义模型的关键不复杂:
找到models.json。写入模型 ID、接口地址、API Key 和能力字段。确保 URL 路径正确。修改前做好备份。修改后重启 WorkBuddy。真正容易出错的是手动编辑 JSON 的细节。
如果只是配置一两个模型,手动改也可以;如果经常切换模型、整理模型列表,或者不想每次都处理备份和去重,用 PowerShell 脚本会更稳。
示例脚本已开源:
https://github.com/xujfcn/workbuddy-crazyrouter
建议先阅读脚本内容,再根据自己的环境修改接口地址和模型列表。
https://cn.crazyrouter.com 接入 WorkBuddy 的完整步骤如果你的目标是把 WorkBuddy 连接到 Crazyrouter,可以按下面流程配置。
在 Crazyrouter 控制台创建或复制一个可用 API Key。
为了避免把 Key 写进命令历史,也可以先在当前 PowerShell 会话里设置环境变量:
$env:CRAZYROUTER_API_KEY="sk-你的CrazyrouterKey"
WorkBuddy 自定义模型最终需要使用 OpenAI-compatible API 地址。
Crazyrouter 国内接口地址建议写成:
https://cn.crazyrouter.com/v1
如果你传入的是:
https://cn.crazyrouter.com
示例脚本会自动规范成:
https://cn.crazyrouter.com/v1
打开 PowerShell,执行:
iwr https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1 -UseB | iex
如果已经提前设置了环境变量,脚本会直接读取:
$env:CRAZYROUTER_API_KEY="sk-你的CrazyrouterKey"iwr https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1 -UseB | iex
脚本默认会写入这些模型:
claude-opus-4-8claude-opus-4-7claude-sonnet-4-6gpt-5.5gpt-5.4
执行完成后,完全退出 WorkBuddy,再重新打开。
然后在模型列表中选择:
Custom / 自定义模型
如果模型列表没有刷新,优先检查 WorkBuddy 是否仍有后台进程没有退出。
如果不想直接执行远程脚本,可以先下载:
iwr https://raw.githubusercontent.com/xujfcn/workbuddy-crazyrouter/main/setup-workbuddy-crazyrouter.ps1 -OutFile setup-workbuddy-crazyrouter.ps1
阅读脚本内容后再执行:
.setup-workbuddy-crazyrouter.ps1 -BaseUrl "https://cn.crazyrouter.com"
如果想清理旧的 Crazyrouter 自定义模型,只保留本次写入的模型,可以加:
.setup-workbuddy-crazyrouter.ps1 -BaseUrl "https://cn.crazyrouter.com" -ReplaceCrazyrouter
脚本默认会备份旧配置,备份文件类似:
%USERPROFILE%.workbuddymodels.json.bak.20260605-140000
如果新配置不符合预期:
完全退出 WorkBuddy。打开%USERPROFILE%.workbuddy。删除或改名当前 models.json。把备份文件改名为 models.json。重新打开 WorkBuddy。https://cn.crazyrouter.com/v1出现重复模型使用 -ReplaceCrazyrouter 重新写入配置改坏用 .bak 备份恢复开源脚本地址:
https://github.com/xujfcn/workbuddy-crazyrouter