Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Book: Claude Code VS OpenCode: Architecture, Design and The Road Ahead 章节: 第11章 — Claude Code的商业设计 Model: openai/gpt-5.4 Generated: 2026-04-01 Token Usage: 当前API环境不可见

11.1 安全架构

Claude Code 的安全设计,最值得注意的地方,不是“它会弹权限框”,而是它把安全做成了一条分层流水线。核心实现集中在 src/utils/permissions/permissionSetup.ts,配套还有 yoloClassifier.tsbashClassifier.tsdangerousPatterns.ts。换句话说,它不是把安全当成某一个确认按钮,而是把安全嵌入了代理执行的整个控制面。

第一层是四种权限模式:default、auto、bypass、plan。default 是传统模式,危险操作仍然要显式确认。auto 模式更激进,它试图自动批准低风险操作,但前提是先通过分类器。bypass 模式则是高信任、高自由度模式,主要面向知道自己在做什么的高级用户。plan 模式恰好相反,它强调先规划、少执行,把代理限制在“思考与分解任务”阶段。商业上,这种四段式设计很重要,因为它把“安全”和“效率”做成了连续光谱,而不是二选一。

其中最关键的机制,是所谓的 ML YOLO classifier。这里的 YOLO 不是“放飞自我”,而是一个模型驱动的自动批准层,用来判断某个待执行动作是否足够安全,是否可以不打断用户直接执行。yoloClassifier.ts 会构建分类提示词、记录分类转录、估算 token,并输出是否应该拦截。实质上,Claude Code 用一个模型判断系统去监督另一个模型代理的行为。这是非常典型的商业工程思路:不是完全信任主模型,而是在关键动作前再套一层可控的“二次裁决”。官方材料中常提到它配合沙箱后可带来 84% 的权限提示减少,这恰好说明其目标:在不放弃控制的前提下,把打断感降到最低。

第二层是 Bash 命令分类器。它不是只看命令长什么样,而是看命令“想做什么”。这就是所谓的语义分析。比如 ls srcpython -c "..." 都是 shell 命令,但风险完全不同。Claude Code 并不满足于简单的字符串匹配,而是试图理解命令的行为语义、参数结构和执行意图。这比传统 allowlist 更接近人工安全审查的思维方式。

第三层是 危险模式检测dangerousPatterns.tspermissionSetup.ts 会识别那些会把自动模式安全边界直接打穿的规则。典型例子包括脚本解释器:pythonnoderubyperlphplua;shell 包装器:bashshzsh;以及包运行器:npxbunxnpm run。此外,像 python:*node** 这类通配规则也会被视为危险。原因很直接:一旦代理可以自由调用解释器,它就等于获得了近乎无限的新行为生成空间;而一旦规则是裸通配符,分类器就会被绕过去。Claude Code 甚至把这个逻辑扩展到了 PowerShell 和子代理创建,因为“无限委派”本身也可能成为安全逃逸通道。

第四层是 操作系统级沙箱。Claude Code 不只依赖提示词和分类器,它还把限制下沉到 OS 边界:Linux 上用 Bubblewrap,macOS 上用 Seatbelt。Bubblewrap 是 Linux 常见的进程级沙箱机制;Seatbelt 是 Apple 的策略型沙箱框架。二者的意义在于:即使上层模型判断失误,底层系统仍然可以约束文件访问、进程能力或网络行为。这就是典型的纵深防御:模型层先拦一遍,操作系统层再兜底一遍。

从商业设计角度看,这套体系真正有价值的地方,不只是“更安全”,而是让 高自治代理可以被卖出去。企业真正购买的不是自治本身,而是“有边界的自治”。Claude Code 的权限模式、语义命令分析、危险规则剔除、以及 OS 级隔离,正是对这种需求的工程回答。OpenCode 与 Oh-My-OpenCode 更强调开放控制面与可插拔能力;Claude Code 则更强调把安全做成内建产品能力。

因此,本节最重要的结论是:优秀的代理安全架构,不是最严格也不是最宽松,而是能够把低风险操作变成无感流程,把高风险或模糊操作升级为显式控制点。Claude Code 在这一点上给出了一个很成熟的商业答案。