ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Claude Code deniedModels 托管设置完全指南:模型禁用匹配规则与 Default 降级机制

2026/10/5 1:42:03 拓冰建站 浏览量
Claude Code deniedModels 托管设置完全指南:模型禁用匹配规则与 Default 降级机制 文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载导读deniedModels是 Claude Code 托管控件体系managed settings中的一项模型可用性设置用于在availableModels已经放行的情况下仍然对特定模型实施禁止选择级别的封锁。本文基于开源仓库 claude-code-system-prompts 中的 deniedModels 设置 Schema 描述 展开完整讲解家族别名封锁、模型 ID 全拼写封锁、无次版本号 ID 的版本级封锁、被忽略的发布相关别名以及 Default 模型的逐步降级step-down与启动失败边界并对照同名仓库中可验证的 availableModelsMatch 设置 与 CHANGELOG 记录帮助你精确掌握该设置的行为语义、配置边界与故障排查要点。一、定位deniedModels 在 Claude Code 模型管控中的角色Claude Code 的模型选择并非只有允许清单一层约束。仓库 README 将各设置 Schema 描述集中收录其中 deniedModels 条目 的官方描述概括了它的完整职责范围Schema description for the managed deniedModels setting, covering family-alias blocking, version-wide model ID blocking across dates, -fast and provider prefixes, ignored release-dependent aliases, and Default-model step-down or startup failure.即该设置覆盖家族别名封锁、跨日期/-fast/provider 前缀的版本级模型 ID 封锁、被忽略的发布相关别名以及Default 模型的降级或启动失败四种核心场景。从 CHANGELOG 记录看deniedModels与availableModelsMatch是同一批新增的托管设置CHANGELOG.mdNEW:Data: availableModelsMatch setting — Managed setting choosing prefix or exact matching foravailableModels...NEW:Data: deniedModels setting — Managed setting blocking models even whenavailableModelsallows them; a model ID blocks every spelling of that version, and Default steps down past blocked models.关键词是even whenavailableModelsallows them即使在availableModels已放行的情况下——这说明deniedModels是一道独立于允许清单的否决层它不负责放行任何模型只负责在允许矩阵之上做减法。二、核心语义允许清单之外的否决层原始 Schema 描述data-deniedmodels-setting.md开篇即给出定义Models users cannot select, even when availableModels allows them.翻译过来就是deniedModels列出的是用户无法选择的模型即使availableModels允许它们。这意味着availableModels决定哪些模型可以出现在可选范围中deniedModels决定在可选范围中哪些模型被最终剔除两条规则叠加后最终生效的模型集合 availableModels 允许集合 − deniedModels 封锁集合。因此在配置模型管控时deniedModels适合用来做定向禁选例如公司希望只开放 Opus 5.5 系列但临时要封禁某个已发布的次版本如 5.5 的某一天期快照无需改动允许清单直接在deniedModels中追加即可。三、匹配规则一家族别名Family Alias整体封锁文档给出的第一条匹配规则是A family alias (opus) blocks that family.即如果条目是家族别名family alias例如opus那么它会封锁整个家族——所有属于 Opus 家族的模型 ID 都将被禁止选择无论它们的具体版本、日期后缀或厂商前缀是什么。这一行为与 availableModelsMatch 设置 中的家族别名语义是对称的那边Family aliases (opus) still allow the whole family家族别名仍放行整个家族这边则是家族别名封锁整个家族。两套规则同源同构只是方向相反。实践含义如果你想彻底下线某个模型家族例如组织迁移期不再允许任何 Sonnet 型号使用家族别名是最省力、最不会漏掉日期/-fast变体的写法。四、匹配规则二模型 ID 的全拼写封锁对于具体的模型 ID 条目deniedModels采用**版本级version-wide**的匹配语义A model ID blocks that version in every spelling: dates, -fast and provider prefixes are ignored, so claude-opus-5-5 blocks every Opus 5.5 ID but not Opus 5.拆解如下一个模型 ID 封锁该版本的每一种拼写every spelling匹配时忽略日期后缀dates、忽略-fast后缀、忽略 provider 前缀provider prefixes举例claude-opus-5-5会封锁所有Opus 5.5 的 ID如claude-opus-5-5-20260601、claude-opus-5-5-fast、aws.claude-opus-5-5等各种变体但不会波及 Opus 5。也就是说你不需要穷举某版本的每一个日期快照、每一种速度档位、每一个供应商前缀——只要写一次裸版本 ID该版本的全部拼写形式就都被覆盖了。这一设计大幅降低了管控配置的维护成本也避免因拼写变体漏配而出现禁了但没禁干净的缝隙。五、匹配规则三无次版本号 ID 的后向封锁文档还明确了省略次版本号minor version时的行为An ID with no minor version (claude-opus-5) also blocks later minor versions, as it allows them in availableModels.即如果条目是不带次版本号的 ID例如claude-opus-5它同样会封锁之后的小版本later minor versions——这与它在availableModels中允许后续小版本的语义是对称的在availableModels中claude-opus-5这类前缀条目会同时放行claude-opus-5-5等后续次版本在deniedModels中claude-opus-5同样覆盖后续次版本确保允许范围与封锁范围在版本演进上保持一致。实践含义如果你希望Opus 5 家族只保留某一具体次版本正确的做法是——availableModels中按需精确列出允许的版本deniedModels中写入claude-opus-5之类的主版本级条目封锁掉所有后续次版本再配合availableModelsMatch的 exact 匹配模式精确控制放行粒度详见下文协同章节。六、被忽略的别名best / opusplan / default并非所有别名都会生效。文档明确指出Aliases whose model depends on the release or settings (best, opusplan, default) are ignored.即其目标模型随发布版本release或设置settings动态变化的别名会被忽略包括best跟随当前最优模型选择opusplan计划模式专用别名default默认模型别名这些别名的实际指向由 Claude Code 在当前发布版本和当前设置环境下动态解析无法在deniedModels中静态地对应到某个确定的模型版本因此列入deniedModels不会产生封锁效果。实践含义不要试图用default或best这类别名来兜底封锁——它们会被静默忽略。如果需要封锁默认模型实际指向的型号必须查出该别名在当前版本下解析出的具体模型 ID再以具体 ID 或家族别名形式写入。七、Default 模型的逐步降级与启动失败deniedModels对 Default默认模型选项有专门的联动行为The Default option steps down past a blocked model; if the Default has no allowed model to step down to, Claude Code will not start.要点有二逐步降级step-down当 Default 默认指向的模型被deniedModels封锁时Default 选项会自动降级跳过被封锁的模型退而选择下一个仍被允许的模型——而不是停留在被封锁的模型上报错启动失败边界如果 Default 降级后没有可用的允许模型可退例如允许清单同时被收紧导致没有任何模型既满足availableModels又不落入deniedModels那么Claude Code 将无法启动will not start。这一点与 availableModelsMatch 设置 中描述的 Default 约束行为互相呼应——那边提到Withexactand a list that names at least one model, the Default option also uses only a listed model; if none can be used, Claude Code will not start。任何一条管控规则把 Default 的可退路全部封死都会导致启动失败。运维建议调整deniedModels前先确认 Default 模型的可选回退链是否仍然存在若同时收紧availableModels/availableModelsMatch与deniedModels务必至少保留一个未被封锁的模型否则会造成客户端启动即失败、且原因隐蔽表现为无法选择模型而非明确的配置错误提示。八、与 availableModels / availableModelsMatch 的协同要正确使用deniedModels必须理解它与允许侧设置的叠加关系。根据 availableModelsMatch 设置availableModels条目按prefix前缀默认或exact精确两种模式匹配模型 IDprefix 模式下claude-opus-5可放行claude-opus-5-5等一切以其为前缀的 IDexact 模式下claude-opus-5只放行 Opus 5 及其日期/-fast变体不再放行 Opus 5.5 及之后的版本-latest类 ID 需要单独的-latest条目家族别名opus在两侧都按整个家族处理best、opusplan、default这类发布/设置相关别名在两侧都被忽略。由此可以梳理出三层管控组合层级设置作用放行层availableModelsavailableModelsMatch决定哪些模型/家族可被选择以及匹配粒度前缀 vs 精确否决层deniedModels在放行集合内剔除特定家族、特定版本或其全部拼写兜底层Default 降级逻辑默认模型自动跳过被封锁项无路可退时拒绝启动例如只允许 Opus 5.5、但临时封禁 5.5 的-fast变体——由于文档规定-fast会被忽略模型 ID 封锁该版本的所有拼写deniedModels无法只封-fast而不封标准版这种粒度诉求需要在availableModelsMatch的 exact 模式下逐条列白名单、同时把不允许的版本整体列入deniedModels来实现。九、作用域边界仅从托管设置读取文档最后强调Read from managed settings only.deniedModels只能通过托管设置managed settings来源读取用户级、项目级、本地--settings文件等普通配置通道无法设置它。这与仓库中其他托管设置如 allowManagedPermissionRulesOnly它同样要求set in managed settings一致说明这是一类面向组织/管理员治理能力的设置。关于托管设置的读取链路仓库中的 WSL 托管设置双重选择提示 给出了可验证的落点示例在 Windows 上托管设置来自HKLM SOFTWARE/Policies/ClaudeCode注册表键与C:/Program Files/ClaudeCode/managed-settings.json文件WSL 场景还会合并/etc/claude-code及 HKCU 链。因此deniedModels的实际配置入口应为管理员分发的托管设置通道如上述managed-settings.json或对应策略键而非开发者本地配置文件。实践含义在个人本地配置里写deniedModels不会生效——它只从托管设置读取排查为什么我写了但没生效时应首先确认配置是否落入了托管设置通道Windows 策略键/managed-settings.json、WSL 的/etc/claude-code等并确认该通道的读取优先级文档示例中 Windows 来源优先于 WSL 来源结合 WSL 文档 提到的双重选择double opt-in机制WSL 下还需管理员先启用整条策略链、用户再确认 HKCU托管设置才会被读取。十、仓库中的验证依据本文全部核心语义均可在本仓库中交叉印证deniedModels 设置 Schema 描述 —— 本文主体包含家族别名、全拼写封锁、无次版本号封锁、忽略别名、Default 降级/启动失败与托管设置作用域等全部规则availableModelsMatch 设置 Schema 描述 —— 放行侧的匹配语义、家族别名与忽略别名规则以及 Default 限制与启动失败边界README.md#L308 —— 对deniedModels能力的官方一句话总览含 token 计数CHANGELOG.md#L158-L159 ——availableModelsMatch与deniedModels作为新增托管设置的发布记录allowManagedPermissionRulesOnly 设置 与 WSL 托管设置双重选择提示 —— 托管设置体系的定位与具体读取落点。结语deniedModels虽然只是 Claude Code 托管设置体系中的一个数据项但其匹配语义相当精细家族别名封锁整族、模型 ID 封锁版本全拼写、无次版本号 ID 顺带封锁后续小版本、best/opusplan/default等动态别名被忽略并且 Default 模型会自动降级跳过被封锁项、无路可退时拒绝启动。配置时把它当作允许清单之上的否决层来使用并始终注意仅从托管设置读取的作用域约束即可实现组织级的精确模型管控。赞分享文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载相关推荐Claude Code 权限模型深度解析allowManagedPermissionRulesOnly 托管设置与「拒绝/询问规则依旧生效」机制Claude Code 权限模型深度解析allowManagedPermissionRulesOnly 托管设置与「拒绝/询问规则依旧生效」机制 导读 本篇技文档提示工程人工智能Claude Code 托管设置 allowManagedPermissionRulesOnly 详解让工具权限规则只来自托管配置Claude Code 托管设置 allowManagedPermissionRulesOnly 详解让工具权限规则只来自托管配置 本篇基于当前仓库clau文档提示工程人工智能Claude Code Router多模型路由配置完全指南在AI技术快速发展的今天开发者面临着模型选择多样化和成本控制的挑战。Claude Code Router作为一款创新的AI模型路由工具能够帮助开发者在不同A后端API网关LLM 网关大模型上一篇Rust性能优化的终极指南使用FLAME火焰图库快速定位性能瓶颈下一篇WiFi-DensePose性能优化提升实时性的10个实用技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考