CellSpec 模型白名单(AllowedModels)
wesgine 的 CellSpec.AllowedModels 声明 Cell 内允许使用的模型列表,实现模型级访问控制。
设计目的
在多租户或合规场景中,不同 Cell 可能有不同的模型使用策略:
- 金融合规部门只允许境内模型
- 成本管控部门限定特定模型
- 测试环境限定小模型
配置方式
CellSpec{
AllowedModels: []string{
"gpt-4o",
"claude-sonnet-4-20250514",
"deepseek-chat",
},
}
- 列表为空 → 不限制(默认行为)
- 列表非空 → 只允许列表中的模型
与 LogicalModelGroups 的区别
| 字段 | 作用 | 性质 |
|---|---|---|
AllowedModels | 模型白名单 | 访问控制(限制) |
LogicalModelGroups | 逻辑别名映射 | 便利性(别名到物理模型) |
两者正交:
AllowedModels决定"哪些模型可以用"LogicalModelGroups决定"逻辑名映射到哪些物理模型"- 逻辑组内的物理模型同样受
AllowedModels限制
与 DisallowActorProvider 的配合
CellSpec{
AllowedModels: []string{"gpt-4o"},
DisallowActorProvider: true, // 禁止用户自带 Provider
}
合规场景下,同时启用两者可确保:
- 只使用审批过的模型
- 用户不能通过自带 Provider 绕过限制
校验时机
模型白名单在 Cell 的 Cognitive Resolver 中校验:
AppRunRequest.Model提交- Resolver 检查
AllowedModels - 模型不在白名单 → 返回错误
- 模型在白名单 → 继续解析 Provider
运行时修改
AllowedModels 可通过 SpecPatch 修改:
PATCH /admin/cells/{id}
{
"allowed_models": ["gpt-4o", "claude-sonnet-4-20250514"]
}
相关文档
- 模型选择策略 →
model-selection.md - 逻辑模型组 →
logical-model-groups.md - Provider 策略 →
provider-strategy.md