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 章节: 第13章 — 架构哲学对比 Model: openai/gpt-5.4 Generated: 2026-04-01 Token Usage: 当前API环境不可见

13.3 控制 vs 自主

如果说“开放与封闭”决定了系统边界,“简单与复杂”决定了复杂性分布,那么“控制与自主”决定的就是 Agent 到底能走多远。这里的 control,指的是人类、策略系统、权限机制、运行时边界对代理行为的约束程度;autonomy,指的是代理在多大程度上可以不被打断地自行判断、自行执行。这不是“保守 vs 激进”的简单价值判断,而是一条牵涉速度、安全、责任归属与任务完成质量的工程光谱。

Claude Code 是三者里最典型的 safety-first、human-in-the-loop 模型。所谓 human-in-the-loop,是控制系统里一个很经典的概念,意思是人类仍然保留在关键决策回路中,不完全退出执行链。Claude Code 的权限模式、分类器、危险模式检测、操作系统沙箱,本质上都在服务这个目标:即便代理能力已经很强,它也不应在完全无边界的条件下自行扩张。它可以自动处理大量低风险步骤,但高风险或模糊动作仍然要经过清晰的边界控制。

从商业角度看,这种设计非常合理。企业真正购买的不是“绝对自治”,而是“可被审计、可被解释、可被约束的自治”。在这种场景里,审批、提示、沙箱并不只是烦人的打断,而是信任契约的一部分。Claude Code 的哲学很清楚:代理可以快,但必须在已经工程化的安全边界里快。换句话说,它卖的不是野生自治,而是被封装后的、可控的自治。

OpenCode 则更像把这个问题交回给用户和开发者自己决定。它不强行预设唯一答案,而是暴露更多控制面,让不同团队自行选择希望达到什么自治级别。如果某个团队要强审批、强确认、低风险,那可以配得很保守;如果另一个团队想追求更高自动化,也能把系统往更激进方向推。OpenCode 的核心哲学不是“自主优先”或者“控制优先”,而是 autonomy should be configurable。也就是说,自主程度不应被宿主产品完全规定,而应成为一个可调参数。

从控制理论角度说,OpenCode 暴露了更多 control surface。所谓控制面,就是系统中那些可以调节行为模式的杠杆集合。谁掌握控制面,谁就决定系统行为在多大程度上可塑。OpenCode 的优点,是把自由给了用户;代价,则是用户也必须承担更多责任:你需要自己设计合适的权限、工具、工作流和操作习惯,才能真正把自治用好。

OMO 则把这一哲学推进到了极端。它隐含的核心命题几乎可以概括成一句话:人类介入越频繁,越说明系统设计不够好。这是一种非常强的自治立场。这里并不是说人类不重要,而是说,在理想状态下,系统应该能够自己拆解任务、自己调用工具、自己委派子代理、自己恢复中断、自己继续推进,以至于人类不必反复回来“救场”。在 OMO 的语境里,频繁的人工干预不只是体验不好,而是一种架构失败信号。

这与大多数商业 Agent 的价值观差异非常明显。OMO 大量机制——todo 强约束、后台代理、session 延续、specialized agents、纪律型系统提示词——都在服务同一个目标:让工作连续推进,而不是每走几步就等人重新下指令。从 AI 规划系统的角度看,OMO 试图把 Agent 从“响应式助手”往“持续性自主执行器”推进一步。而这也解释了为什么它需要更厚的编排层:高自治不是一句“让模型自己多做点”就能达成的,它需要恢复机制、委派机制、角色分工、状态续存、过程纪律。

当然,这种哲学天然伴随风险。自治程度越高,误解任务的代价越大;系统一旦走偏,可能会在错误方向上高强度前进。高自治如果缺乏验证环,就会从“高效”滑向“鲁莽”。所以 OMO 真正值得讨论的,不是它是否追求极端自主,而是它试图用结构化纪律去替代人类频繁介入:用 todo、hook、委派和会话续跑,让“内部过程”承担一部分本来由人类随时纠偏的工作。

于是我们得到三种非常鲜明的立场。Claude Code 认为:自主很有价值,但必须服从安全架构与商业信任边界。OpenCode 认为:自主程度应该由用户自己决定,它是一个可配置变量。OMO 则认为:只要架构支撑得住,就应该尽量把自主推高,因为反复依赖人类介入是不可扩展的。

对未来 Agent 设计者而言,真正该问的不是“Agent 该不该自主”,而是:对谁自主、在什么约束下自主、出了问题如何回滚、靠什么做验证。控制与自主并不是成熟系统中的绝对对立面。好的控制,恰恰是为了让自主变得可用。Claude Code 通过约束来实现这一点,OpenCode 通过开放控制面来实现这一点,OMO 则试图通过更重的内部“操作系统”来实现这一点。三者一起,几乎已经把这一光谱画完整了。