Appearance
自定义模型配置
自定义模型配置让你为自己的主机更换执行模型:先配置一个第三方模型端点(API 地址 + KEY + 模型名),连通测试通过后应用到主机,主机 CLI 会精准改写 ~/.claude/settings.json 中 Anthropic 相关的环境变量(其余配置不碰);还原默认时按首次切换前的备份恢复。
- 鉴权:
raa-API Key 或 Web JWT 均可。 - 只能操作当前账号自己的配置与主机,他人资源返回
404。 - 配置的唯一键是自生成的配置 id(
mc-前缀),配置名称仅作展示、可重名;编辑时所有字段都可改。 - 接口类型(
openai/anthropic)只决定连通测试的发包格式:anthropic 打/v1/messages,openai 打/chat/completions。应用到主机时统一写入 Anthropic 风格环境变量。 - KEY 加密存储,接口只返回脱敏摘要(
apiKeyHint),明文不回显。 - 有任务运行中的主机不可更换模型配置(返回
409,更换会使任务直接失败)。 - 该功能目前仅 Web 控制台与 API 可用,
raagentCLI 不暴露用户命令。
接口
| 方法与路径 | 说明 |
|---|---|
GET /api/v1/model-configs | 列出自定义模型配置(含被主机使用数)。 |
POST /api/v1/model-configs | 新建配置。 |
GET /api/v1/model-configs/{id} | 配置详情。 |
PATCH /api/v1/model-configs/{id} | 编辑配置(全字段可改;KEY 留空则沿用)。 |
DELETE /api/v1/model-configs/{id} | 删除配置(有关联主机时返回 409)。 |
POST /api/v1/model-configs/test | 连通测试(真实发一条简单消息,支持未保存的草稿)。 |
POST /api/v1/hosts/{id}/model-config | 更换 / 还原主机模型配置。 |
列出配置
http
GET /api/v1/model-configs HTTP/1.1
Host: raagent.me
Authorization: Bearer raa-REPLACE_WITH_YOUR_KEYjson
{
"code": "0",
"message": "ok",
"data": {
"items": [
{
"id": "mc-1789015700-a1b2c3",
"name": "glm",
"apiType": "anthropic",
"baseUrl": "https://open.bigmodel.cn/api/anthropic",
"apiKeyHint": "9fba······5397",
"authMode": "bearer",
"modelName": "glm-5.3",
"createdAt": "2026-09-10T04:00:00.000Z",
"updatedAt": "2026-09-10T04:00:00.000Z",
"hostCount": 1
}
],
"total": 1
}
}字段说明:
| 字段 | 说明 |
|---|---|
apiType | openai / anthropic,决定连通测试发包格式 |
apiKeyHint | KEY 脱敏摘要(前 4 + 后 4),明文不可取回 |
authMode | anthropic 端点认证头(连通测试探测):bearer → ANTHROPIC_AUTH_TOKEN;x-api-key → ANTHROPIC_API_KEY |
hostCount | 当前绑定该配置的主机数 |
新建配置
http
POST /api/v1/model-configs HTTP/1.1
Host: raagent.me
Authorization: Bearer raa-REPLACE_WITH_YOUR_KEY
Content-Type: application/json
{
"name": "glm",
"apiType": "anthropic",
"baseUrl": "https://open.bigmodel.cn/api/anthropic",
"apiKey": "你的KEY",
"authMode": "bearer",
"modelName": "glm-5.3"
}返回 201 与创建后的配置视图。authMode 可省略(默认 bearer,连通测试会自动探测并回写)。模型名称只允许单个模型名。
编辑配置
http
PATCH /api/v1/model-configs/mc-1789015700-a1b2c3 HTTP/1.1
Host: raagent.me
Authorization: Bearer raa-REPLACE_WITH_YOUR_KEY
Content-Type: application/json
{
"name": "glm-flash",
"modelName": "glm-5.3-flash"
}所有字段均可选,未传的保留原值;apiKey 不传则沿用已保存的 KEY。
编辑会触发关联主机同步:绑定该配置的主机会收到最新配置;空闲主机立即下发,有任务运行中的主机自动排队,任务归零后取最新版本下发(多次编辑只保留最新一次的结果)。
删除配置
http
DELETE /api/v1/model-configs/mc-1789015700-a1b2c3 HTTP/1.1
Host: raagent.me
Authorization: Bearer raa-REPLACE_WITH_YOUR_KEY仍有主机绑定该配置时返回 409,需先在主机上更换为其他配置或还原默认。
连通测试
真实向模型端点发一条简单消息并检查回复内容(不是可达性 ping),超时 2 分钟。支持两种用法:
测试已保存的配置(只传 id,用存量 KEY):
http
POST /api/v1/model-configs/test HTTP/1.1
Host: raagent.me
Authorization: Bearer raa-REPLACE_WITH_YOUR_KEY
Content-Type: application/json
{ "id": "mc-1789015700-a1b2c3" }测试草稿(未保存前先验证,字段与 id 可组合,显式字段覆盖存量值):
json
{
"apiType": "anthropic",
"baseUrl": "https://api.deepseek.com/anthropic",
"apiKey": "你的KEY",
"modelName": "deepseek-v4-pro"
}响应:
json
{
"code": "0",
"message": "ok",
"data": {
"ok": true,
"authMode": "bearer",
"replyPreview": "OK",
"latencyMs": 1830
}
}| 字段 | 说明 |
|---|---|
ok | 测试是否通过(收到模型真实回复) |
authMode | anthropic 端点探测到的认证头(先 Bearer,401/403 再 x-api-key),测试通过时返回 |
replyPreview | 模型回复摘录(最多 120 字符) |
latencyMs | 耗时 |
error | 失败原因(HTTP 状态 + 端点返回的可读错误信息) |
测试通过且探测到与存量不同的 authMode 时,服务端会自动回写该配置。
更换 / 还原主机模型配置
http
POST /api/v1/hosts/h-1788767193919/model-config HTTP/1.1
Host: raagent.me
Authorization: Bearer raa-REPLACE_WITH_YOUR_KEY
Content-Type: application/json
{ "configId": "mc-1789015700-a1b2c3" }configId 传 null 表示还原默认配置(恢复首次切换前的备份)。
主机侧行为(由 raagent CLI 完成,需较新版本):
- 精准替换
~/.claude/settings.json中env的 6 个 Anthropic 相关键(ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY二选一、三个ANTHROPIC_DEFAULT_*_MODEL,均写入配置的单一模型名),其他键一律不动。 - 备份仅在默认 → 自定义时触发;自定义 → 自定义不覆盖备份;还原默认 = 按备份精准写回并删除备份。
- CLI 对有任务运行中的请求会兜底拒绝。
错误情况(均返回 409):
| 场景 | message |
|---|---|
| 主机有任务运行中 | 有任务运行过程中更换模型配置,会直接使任务失败,请停止任务后再更换 |
| 主机离线 | 主机离线,无法更换模型配置,请先启动主机上的 raagent |
| CLI 版本过旧(未响应) | 主机 CLI 未响应模型配置指令,请升级 CLI 到最新版本后重试 |
成功后 GET /api/v1/hosts 列表中该主机的 modelConfig 字段为当前绑定视图:
json
{
"modelConfig": {
"configId": "mc-1789015700-a1b2c3",
"name": "glm",
"status": "idle",
"lastError": null
}
}modelConfig 为 null 表示默认;status 含义:idle 已生效、pending 待同步(主机在跑任务已排队)、syncing 下发中、failed 最近一次下发失败(lastError 为原因,任务归零或主机上线后自动重试)。