Claude Code 0331 系统报告

第10章 · 权限模型

第10章 · 权限模型

10.1 三级决策树

每个工具操作经过以下决策流程:

           ┌──────────────┐
           │  工具调用请求  │
           └──────┬───────┘

           ┌──────────────┐
           │ 检查Allow规则 │──── 匹配 ──▶ 允许执行
           └──────┬───────┘
                  │ 不匹配

           ┌──────────────┐
           │ 检查Deny规则  │──── 匹配 ──▶ 拒绝执行
           └──────┬───────┘
                  │ 不匹配

           ┌──────────────┐
           │ 请求用户确认  │──── Allow ──▶ 允许执行
           │   (Ask)      │──── Deny  ──▶ 拒绝执行
           └──────────────┘

10.2 四层规则来源

权限规则按以下优先级合并:

  1. Settings配置settings.json):用户的全局权限偏好
  2. CLI参数:命令行传入的权限覆盖
  3. Command参数:特定命令的权限上下文
  4. Session状态:会话中动态积累的权限决策

10.3 拒绝追踪机制

当用户拒绝某个工具的权限请求时,系统会追踪拒绝计数:

  • 连续拒绝3次 → 触发"策略回退提示"
  • 累计拒绝20次 → 触发更强的回退信号

"策略回退"意味着让Claude换一种方式完成任务,而不是继续请求被拒绝的工具。这避免了"AI反复骚扰用户请求权限"的糟糕体验。

10.4 AI分类器辅助

TRANSCRIPT_CLASSIFIER 特性标志门控了一个独立的AI分类器。当启用时,对话transcript会被发送给分类器,分类器判断操作是否安全:

  • 分类器确认安全 → 自动允许
  • 分类器不确定 → 回退到用户确认(故障关闭)
  • 分类器判断不安全 → 自动拒绝

10.5 Hook系统

PreToolUsePostToolUse 钩子提供了扩展权限模型的能力:

  • PreToolUse:在工具执行前触发。可以修改输入参数、拒绝执行、或添加额外验证。
  • PostToolUse:在工具执行后触发。可以检查输出、记录审计日志、触发后续操作。

企业用户可以通过Hook实现自定义的安全策略——例如,禁止修改特定目录的文件,或要求特定操作必须经过审批流程。

第四部分:KAIROS与自主Agent系统

On this page