Claude Code 到底强在哪?以及哪些优势是换掉它就没了
很多人在被封之后的第一反应是"换掉它",但换了两个星期又回来了。原因通常不是感情,而是没搞清楚自己到底依赖它哪一部分——于是迁移时把关键的部分一起扔了,留下的又正好是可替代的。
优势分三层:agent 循环的稳定性(多步任务不跑偏、失败能恢复)、工程化扩展点(CLAUDE.md、subagents、hooks、MCP)、与模型的配合调优。换 harness 会丢掉第一、三层的部分,换模型会丢掉第三层,而扩展点能不能带走,取决于目标 harness 有没有等价设计。
先把三件不同的事分开
讨论"Claude Code 好不好用"时,三个东西常被混在一起说,于是结论永远对不上:
- 模型——负责推理,决定上限。换后端换的就是这一层。
- harness——负责把模型变成一个能读文件、改代码、跑命令的 agent。决定下限与稳定性。换客户端换的是这一层。
- 使用约定——你的
CLAUDE.md、团队规范、hooks、自定义命令。这是资产,理论上可以带走,但每个 harness 的格式都不一样。
把这三层分开之后,很多争论就消失了:有人说"换了模型感觉变笨了",那多半是第一层与第三层同时在起作用;有人说"换了个客户端,模型还是那个模型但不好用",那是第二层的差距。
第一层:agent 循环的稳定性
这是最难被量化、也最容易被低估的部分。一个编码 agent 的实际体验,取决于它在一次任务里能连续做对多少步:读文件、定位问题、改代码、跑测试、读报错、再改。中间任何一步"理解偏了",整个任务就跑飞。
稳定性体现在几个具体位置:
- 工具调用的格式保真度。模型生成的工具调用参数能不能被稳定解析,不出现格式漂移。
- 失败后的自我纠正。命令报错了,它是否回头读错误、改参数重试,而不是换个方式继续错。
- 长任务的上下文管理。跑了二十几分钟之后,它是否还记得最初的约束条件。
- 不该动的地方不动。大范围重构时是否只改需要的行,而不是顺手把整个文件重写。
这四条恰好都不是"换个大模型"就能自动补上的——harness 的提示词编排、工具集设计、上下文压缩策略都在起作用。这也是为什么很多人换了客户端后觉得"模型明明一样,手感差很多"。
第二层:四个扩展点
这一层是 Claude Code 真正的护城河,因为它把"个人手感"变成了"团队资产"。
1. CLAUDE.md —— 把项目约定变成可执行上下文
一个放在仓库里的 Markdown 文件,描述代码规范、目录约定、常用命令、禁止事项。它的价值不在于"提示模型",而在于把团队隐性知识固化成版本化文件。新人上手、CI 里跑 agent、换人接手,读的都是同一份约定。
这一项是可以迁移的——多数 harness 都支持类似的规则文件(AGENTS.md 之类),格式不同但思路一致。详见第 7 篇的对照表。
2. subagents —— 并行与上下文隔离
把一个大任务拆给若干个子 agent 分别执行,各自有独立的上下文。好处是并行提速,更重要的是隔离:某个子任务读了五千行日志,不会把这五千行污染主上下文。
这项能力在开源 harness 里覆盖度最低。多数替代品没有真正等价的实现,只能靠开多个终端手工模拟——效果差一截,而且状态不共享。
3. hooks —— 把流程钉在工具调用前后
在特定事件(比如修改文件前、执行命令后)自动触发你的脚本。用途很实际:改完文件自动跑格式化、执行危险命令前做一次拦截、任务结束后发通知。
它把"记得去做"变成了"不可能忘记"。这类强制约束在团队里价值极高,也是最能体现"这是给工程团队用的,不是给演示用的"的一层。
4. MCP —— 把外部系统接进来
通过统一的协议接数据库、监控、内部 API、工单系统。MCP 这一层目前是跨 harness 兼容性最好的——多数主流替代品都支持,所以它是迁移时最容易带走的资产。
第三层:与模型的配合调优
官方 harness 与官方模型之间存在一层看不见的适配:系统提示词的写法、工具描述的组织方式、对特定模型行为的补偿,都是针对自家模型反复调过的。
这层适配在换模型时会明显体现出来,具体表现为:
- prompt cache 命中率下降。换后端后缓存策略可能不同,同样的长上下文会反复计费。
- thinking 块处理不一致。部分模型的推理过程与客户端的预期格式对不上,导致要么被截断,要么被当成正文。
- 工具调用风格差异。有些模型倾向于一次生成多个工具调用,有些倾向于逐个执行,客户端如果只适配了一种,另一种就会显得"笨"。
- 上下文窗口利用率。标称窗口一样大,实际可用比例不同。
这些都不是致命问题,但都属于"迁移之后才发现"的成本。评估一个网关时该怎么测,写在第 6 篇。
客观说缺点
如果只讲优点,这篇就成了软文,反而不可信。它的结构性缺点也很明确:
- 区域与服务条款的绑定。这是本专题存在的原因。它是唯一一个"随时可能整体失去"的劣势。
- 价格不便宜。高强度使用下,订阅档位的额度限制会成为实际瓶颈。
- 强锁定。你的约定、hooks、自定义命令都长在它上面,迁移成本随使用深度线性上升。
- 模型单一。不能按任务类型切模型——写样板代码和啃复杂 bug 用同一个模型,成本上不划算。
最后一条反过来正是"换模型"这条路线的最大优点:你可以让便宜模型跑批量任务,贵模型只啃硬骨头。
换掉会失去什么:一张对照表
这张表是本文的核心,建议在动手迁移前先看它。
| 能力 | 换 harness | 只换模型(保留 Claude Code) |
|---|---|---|
| agent 循环稳定性 | 可能下降,取决于替代品成熟度 | 可能下降,取决于后端 |
| CLAUDE.md 约定 | 可迁移,需改写格式 | 完全保留 |
| subagents | 多数没有等价物 | 完全保留 |
| hooks | 要自己用 git hooks 或包装脚本重建 | 完全保留 |
| MCP | 多数支持,可迁移 | 完全保留 |
| 与官方模型的调优 | 失去 | 失去(但换来模型可切换) |
| 条款与区域风险 | 解除 | 未解除(客户端仍属官方产品) |
读这张表能得到一个反直觉的结论:"只换模型"这条路保留了最多的东西——除了模型本身,其它几乎全在。代价是条款风险没完全解除,因为你用的仍然是官方客户端。这条权衡的细节在第 6 篇展开。
所以该不该换
三个判断,按顺序问自己:
- 你的痛点主要是"可能被封",还是"已经被封"?只是担心的话,先做一致性(第 8 篇),别急着迁移。
- 你依赖的主要是扩展点,还是模型本身?依赖扩展点(hooks、subagents、团队约定),说明你在意的是 harness——那换模型是更划算的选择。
- 你的团队能承受多久的产力下降?迁移几乎一定伴随两到四周的效率损失。如果当前项目在关键期,先做双跑过渡。