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

模型: openai/gpt-5.4
生成日期: 2026-04-01
书名: Claude Code VS OpenCode:架构、设计与未来
章节: 第18章 — 理想编码Agent的架构
Token用量: 约 6,200 input + 1,550 output

18.3 三个系统的启示

对 OpenCode、OMO、Claude Code 做足够深入的比较之后,会有三条结论变得很难忽视。它们不是简单的产品口号,而是足以指导后续 agent 设计的原则性启示:OpenCode 告诉我们,可编程性是不可谈判的;OMO 告诉我们,编排质量比 agent 数量更重要;Claude Code 告诉我们,安全并不是自治的限制,而是自治成立的前提。

一、OpenCode 的启示:可编程性不可谈判

OpenCode 最重要的贡献,不只是它开源,也不只是它支持多接口、多扩展。它更深层的贡献是:它提醒我们,coding agent 必须首先是一个可被塑形的平台,而不是一个只能被消费的人格化助手。

为什么说可编程性不可谈判?因为真实的软件工程场景差异太大。不同团队的目录结构不一样,代码规范不一样,审批流程不一样,部署路径不一样,风险模型不一样,甚至“一个好 agent 应该先做什么”这件事都不一样。如果 agent 无法被团队自己的规则和工作流重新塑形,它再聪明,也只能停留在通用演示层面。

这里的“可编程性”不是狭义的“能不能写插件”,而是多层次的。工具能否被注册和组合?会话状态能否被外部系统理解和利用?宿主是否支持不同界面共享同一引擎?配置能否表达团队级策略?第三方是否能在其上构建新的 orchestration layer(编排层)?

OpenCode 的价值在于,它给出的不是封闭黑盒,而是一套相对清晰、可重组的底盘。很多系统虽然也开源,但内部组织很乱,别人很难真正构建在上面。OpenCode 的不同在于,它不仅开放,还具备平台气质。正因为如此,OMO 才有可能在不 fork 宿主的前提下长成一个更复杂的系统。

所以,第一条原则可以写得非常直接:如果一个 coding agent 不能被程序化地重塑,它就不够格成为长期基础设施。

二、OMO 的启示:编排质量大于 agent 数量

OMO 给行业带来的最关键修正,是纠正了“多 agent 越多越高级”这类直觉。多 agent 体系真正难的,不是造出很多角色,而是让这些角色在对的时机、以对的边界、拿着对的上下文、通过对的工具去做对的事情。

也就是说,multi-agent 的核心不是 multiplicity(数量增加),而是 orchestration(编排)。如果编排不好,agent 再多也只会产生重复搜索、相互打扰、结果碎片化、token 浪费和责任边界模糊的问题。很多看似华丽的 swarm(群体)系统,本质上只是在把混乱并行化。

OMO 可贵的地方在于,它把编排当成正式问题来处理。什么时候要委派?委派给谁?要不要后台执行?子 agent 的上下文要窄到什么程度?结果如何回收?todo 如何衔接?规则如何延续?这些都不是边角料,而是系统成败的核心。

这给后续设计一个很重要的原则:不要问“我是否也应该搞 8 个 agent、12 个 agent”,而要问“哪些工作真的值得隔离,哪些工作真的值得并行,哪些工作真的需要专门 prompt,哪些结果真的值得再汇总回来”。如果这些问题没有被认真回答,那么 agent 数量就是伪指标。

换句话说,OMO 的启示不是“多搞点 agent”,而是“把任务组织做成一门工程”。这比表面上的多角色架构深得多。

三、Claude Code 的启示:安全使自治成为可能

Claude Code 最值得学习的一点,是它让我们重新理解了安全在 agent 架构里的位置。很多人下意识会把安全看成一组限制:它让 agent 变慢,增加确认,阻挡自由度。但 Claude Code 的演化方向表明,更准确的说法其实是:没有安全基础设施,就没有可规模化的自治。

原因很现实。只要 agent 有文件系统权限、shell 权限、网络权限、长期运行能力、自动多步执行能力,组织就一定会问:如果它错了怎么办?如果它越权了怎么办?如果它误删、误提交、误操作、误泄露怎么办?

在没有强安全机制的情况下,这些担忧会让自治永远停留在低风险场景里。用户要么频繁确认,要么不敢开权限,要么干脆不用。此时 agent 看起来“理论上很强”,实际上却很难获得真正授权。

Claude Code 的重要之处在于,它把 permission system、审批机制、压缩、审计、特别是 sandboxing(沙箱化)做成了运行时基础设施。这样安全就不再只是写在 prompt 里的提醒,而是由系统边界直接 enforce(强制执行)。一旦做到这一点,自治的提升就不再只是冒险,而是可以被治理、被接受、被部署。

这也是为什么开源系统未来若想进入更广泛的生产场景,不能只强调“开放”和“聪明”,还必须强调“可信执行边界”。否则再好的编排,也可能因为风险不可控而无法获得组织授权。

三条启示如何合并成一套设计原则

把这三条启示放在一起,可以形成一套非常清晰的理想 agent 设计原则。

第一,系统必须可编程。否则它无法适配不同团队、不同仓库、不同流程,也无法成为长期基础设施。

第二,系统必须重视编排。否则多工具、多 agent、多扩展只会让复杂度上升,而不会稳定带来更好的任务表现。

第三,系统必须把安全基础设施化。否则自治能力越强,组织的不信任就越强,最终会把自治本身压回去。

这三者不是并列孤岛,而是相互依赖。可编程性没有安全,容易危险;安全没有可编程性,容易僵化;编排没有前两者,容易沦为昂贵表演。只有三者同时成立,coding agent 才可能既适应现实工作流,又在复杂任务上伸缩,还能被真正放心地交付给团队使用。

因此,三套系统给我们的不是三条互斥道路,而是三个互补的方向:OpenCode 代表平台意识,OMO 代表编排意识,Claude Code 代表部署意识。未来最好的 coding agent,大概率不是三者中的任意一个原样复制品,而是同时吸收这三种意识之后形成的综合体。真正优秀的 agent,不只是会写代码,而是既能被塑形、能被组织、也能被信任。