CellSpec 模型白名单(AllowedModels)

wesgine 的 CellSpec.AllowedModels 声明 Cell 内允许使用的模型列表,实现模型级访问控制。


设计目的

在多租户或合规场景中,不同 Cell 可能有不同的模型使用策略:


配置方式

CellSpec{
    AllowedModels: []string{
        "gpt-4o",
        "claude-sonnet-4-20250514",
        "deepseek-chat",
    },
}

与 LogicalModelGroups 的区别

字段作用性质
AllowedModels模型白名单访问控制(限制)
LogicalModelGroups逻辑别名映射便利性(别名到物理模型)

两者正交:


与 DisallowActorProvider 的配合

CellSpec{
    AllowedModels: []string{"gpt-4o"},
    DisallowActorProvider: true,  // 禁止用户自带 Provider
}

合规场景下,同时启用两者可确保:


校验时机

模型白名单在 Cell 的 Cognitive Resolver 中校验:

  1. AppRunRequest.Model 提交
  2. Resolver 检查 AllowedModels
  3. 模型不在白名单 → 返回错误
  4. 模型在白名单 → 继续解析 Provider

运行时修改

AllowedModels 可通过 SpecPatch 修改:

PATCH /admin/cells/{id}
{
  "allowed_models": ["gpt-4o", "claude-sonnet-4-20250514"]
}

相关文档