安全与权限模型对比分析
2026/4/27大约 1 分钟
安全与权限模型对比分析
1. Claude Code (claude-code-rev)
安全逻辑集中在 src/utils/permissions/permissions.ts。
核心特性:
- 4路权限竞争模型:
- User:通过交互式 TTY 向用户索取审批。
- Hook:检查已注册的
executePermissionRequestHooks(如企业安全策略插件)。 - Classifier (YOLO):使用一个较小的 LLM(如 Claude 3 Haiku)作为分类器,判断当前操作是否属于安全范围。如果分类器判定为安全,可自动执行。
- Bridge:在远程连接或 IDE 扩展模式下,将审批权转交给 Bridge 端(如本地 IDE 的确认框)。
- 原子裁决:这四个模块处于竞争关系,第一个给出明确指令(批准或拒绝)的模块胜出,极大地提高了自动化效率。
2. Opencode (opencode)
权限系统位于 packages/opencode/src/permission/。
核心特性:
- Schema-based Evaluation:基于工具的权限定义(Permission Schema)进行校验。
- Effect-driven Approval:审批流被建模为一个
Effect,可以在不中断执行流的情况下挂起等待用户输入或策略检查。 - 高危操作隔离:对 Shell 执行和敏感文件写入有独立的沙箱或严格的权限提升逻辑。
3. 对比总结
| 维度 | Claude Code | Opencode |
|---|---|---|
| 自动化审批 | 引入 AI 分类器 (YOLO Classifier) | 策略引擎驱动 |
| 多场景支持 | 原生支持 Bridge/Remote 模式 | 扩展性较强 |
| 响应机制 | 四路原子竞争 | 线性策略检查 |
| 用户体验 | 灵活的 dontAsk 和 auto 模式 | 严格的权限梯度 |
Claude Code 的 YOLO 分类器是其一大特色,它在“安全性”和“顺滑度”之间通过 AI 找到了平衡点;Opencode 则更符合传统安全工程的实践,逻辑清晰且可审计性强。