BoHuYeShan

Back

上一篇聊了 chatbox 和 Agent 模式的区别,有朋友说:道理懂了,可打开应用商店一看,叫得上名字的 Agent 产品几十个,到底谁跟谁是一家人?

这篇就来扒血统。结论先放在这里:市面上 Agent 产品看着百花齐放,扒开皮看骨架,真正称得上”祖宗”的上游体系,一只手数得过来。 国内厂商的产品,绝大多数都能在这几个上游里找到自己的位置——有的学 Pi,有的学 Claude Code,有的干脆直接 fork。

一、先搞清楚:Agent ≠ 模型#

谈血统之前,得先立住一个概念:harness

你用的每一个编程 Agent,都是两部分拼起来的:底下的模型负责”想”,外面的 harness 负责”干”——工具怎么编排、循环怎么跑、权限怎么管、上下文怎么裁剪、文件怎么编辑。同一个模型换一套 harness,表现能差出一个档次;反过来,同一套 harness 接不同模型,体验也天差地别。

所以看一个 Agent 产品,不能只看它接的是谁家的模型——模型是发动机,harness 是整车的底盘和操控。市面上的”百花齐放”,大部分来自底盘设计的不同,而不是发动机的不同。

二、几大上游,各有各的哲学#

Claude Code:事实标准#

Anthropic 官方出品,TypeScript 实现,闭源商业产品。

能力标杆。SWE-bench Verified 上 Claude Opus 4.8 约 88.6%、GPT-5.5 约 82.1%、Gemini 3 约 63.8%——第一梯队和第二梯队之间的差距是真实存在的。生态也最全:CLAUDE.md 记忆、Skills、子代理、Hooks、MCP、Plan 模式、检查点回滚……今天各家产品的功能清单,基本是照着这张单子抄的。

缺点同样明显:闭源、绑定官方模型、底座动不了。你再喜欢它的编排方式,也只能整包接受——想换模型、想改循环,门都没有。

Codex CLI:把安全做到系统调用层#

OpenAI 官方出品,约 94.7% 的代码是 Rust,60 多个 crate,Apache 2.0 开源。

它最硬的一张牌是沙箱:macOS 用 Seatbelt,Linux 用 Landlock 加 bubblewrap 加 seccomp,Windows 用 Restricted Token——危险写操作在操作系统层面直接拒绝(EPERM),而不是靠 system prompt 劝模型”小心点”。沙箱和审批是两个独立旋钮,网络、文件系统各有只读、工作区可写、全开放几档。 顺带补一剂清醒药:即便沙箱硬到这个地步,OpenAI 自家的模型也偶发过删除用户系统文件的事故。“最安全的系统级沙箱”是真话,但不是免死金牌——任何 Agent 上真实环境之前,该做的备份和权限收敛一步都不能省。

缺点有两个:一是绑自家模型生态,换成第三方模型时缓存命中率和适配度都会打折;二是 Rust 写成的,60 多个 crate 的工程量摆在那里,想魔改的人多半看一眼就转身走了。这个特点后面还会提到——它悄悄影响了一大批后来者的选型路线。

Pi Agent:极简到只剩四件套#

Mario Zechner 发起,MIT 协议,76k+ Stars。

Pi 的哲学是激进极简:默认只有 read/write/edit/bash 四个工具,没有子代理、没有 Plan 模式、没有 MCP、没有权限弹窗,system prompt 压在一千 token 上下。它的主张是”让工具适应你,而不是你适应工具”——LLM 调用、Agent 运行时、终端界面框架全部拆成独立的 npm 包,你想长出什么,自己拼。

代价也很直白:默认状态接近裸奔。权限隔离自己做,LSP、浏览器、调试器一概没有。这是 power-user 的玩具,不是开箱即用的产品。但也正是这种极简,让它的上下文格外干净,让”衍生”变得极其容易——这一点马上就会讲到。

Oh-My-Pi:给 Pi 装上电池#

Pi 太素,于是有了 OMP:两万七千行 Rust 核心把 grep、shell、AST 操作全部搬进进程内,内置 32 个工具,补上原生 LSP、DAP 调试器、跨会话记忆、子代理并行。最有意思的发明是 Hashline 编辑格式——用行内容哈希做锚点定位编辑位置,实测把某个非 OpenAI 模型的编辑成功率从 6.7% 拉到 68.3%,输出 token 降了 61%。之前写过一篇拆解它的文章,见《拆 Zeta》

这条延长线上还有我们自己维护的一站:Zeta——构建在 OMP 运行时之上的 Bun-native 发行版。它对”fork 怎么才不烂尾”给的是制度化答案:上游 OMP 只在官方 release tag 上整合、绝不追裸提交;Pi 的上下文工程只做语义移植、不搬代码。缺点同样是衍生品的宿命:核心较新,节奏跟着上游走。

OpenCode:全家桶开源替代品#

SST 团队出品,MIT 协议,187k+ Stars。

定位就是”Claude Code 的开源平替”:75 个以上模型提供商、原生 LSP 和 MCP、Build/Plan/General 三种角色、多会话并行、上下文自动压缩,终端界面加桌面端加 VS Code 扩展一条龙。不锁任何厂商,装完就能干活。

代价是抽象层厚:功能越全,内部层次越多,底座的透明度和可控性就不如 Pi 那种一眼见底的架构。而且它对模型的深度适配基本围着头部几家转,其他模型的工具调用表现要看运气。

DeepSeek Harness:最独立的一派#

国内有一个不算火、但哲学上最独立的选手:DeepSeek 官方开源的 DSH(deepseek-harness)。别人家的扩展点是让你多加几个工具,它的主张是一切皆插件:模型、工具、技能、会话、存储、沙箱、调度,乃至界面本身,全部通过一套叫 Cordis 的插件系统组装出来。一个 profile 就是一摞插件包的有序堆叠——换模型供应商、加工具、装技能、替换运行时部件,本质都是改 profile。

其中最激进的一条:Agent Loop 本身也是插件。不喜欢官方默认的循环?整个卸掉,挂载一个自己写的——不需要 fork 源码,写一个导出 apply 函数的 TypeScript 模块就能顶上。

门槛当然也高:自定义 loop 要自己处理流式、异常、超时,手抖一下就把最基础的循环搞坏;项目自己也坦承还处在开发者预览阶段,配置量远大于开箱即用的产品。但”换发动机”被平台明确允许这件事,在所有体系里独一份。

还有两个独立玩家#

xAI 的 Grok Build 是第二家以 Rust 为主写 harness 的:八十四万行 Rust,连终端界面都不依赖 WebView,还支持通过 ACP 协议嵌入编辑器。不过要说清楚:同为 Rust 只是实现语言的选择相同,不代表它们是一个系列——Grok Build 与 Codex 在沙箱策略、工具生态、协作模式上的差距相当大,它甚至不接受外部提交,仓库只作透明展示。

Google 那边走平台化路线:Antigravity 把 agent 做成了独立的开发平台(配套命令行工具用 Go 写),顺手吸收退休了原来的 Gemini CLI。它的重心不在 harness 本身,而在谷歌全家桶的生态打通和多模态能力。

三、国内玩家的血统图谱#

铺垫完上游,再看国内就快了。以下基于公开仓库和我自己的上手观察:

  • MiniMax:走的是 Pi 的路子,连那份极简的气质都学了去;
  • Kimi 家的 Kimi Code:整体风格神似 Claude Code,但实现换成了 Python——交互像,底座的语言完全不同;
  • 小米 MiMo 配套的 agent:干脆利落,直接 fork 了 OpenCode;
  • 智谱 GLM:有个 Z Code,但目前只有桌面版;
  • DeepSeek:自成一派的 DSH,用一套 Cordis 把”一切皆插件”走到底。

三个值得咀嚼的观察:

第一,为什么没人学 Codex?语言墙。 国内这些实现清一色 Python 或 TypeScript,而几个上游里,Claude Code、Pi、OpenCode 恰好全是 TypeScript 系。TS 的优点就是扩展性好:包管理顺手、生态成熟、读懂了就能动手,移植成本最低。Codex 是 Rust:性能好、交付出来是一个干净的原生二进制,但门槛高,学它等于推倒重写一遍,完全是另一个量级的投入。一门语言的取舍,悄悄决定了整个生态的模仿方向。

第二,血统决定气质,也决定短板。 学 Pi 的拿到干净上下文,就得自己补安全边界;学 Claude Code 的拿到全家桶体验,也就继承了重编排的思路;fork OpenCode 的拿到开箱即用,也一并接过那几十层抽象。天下没有白抄的代码,抄的那天你就签收了它的债。

第三,“不怎么火”是有原因的。 几个上游全是宽松开源协议,fork 零成本,同质化不可避免;差异化最后只剩模型本身和渠道。而真正拉开日常体验差距的 harness 工程功力——编辑成功率、上下文管理、权限设计——恰恰是最难抄、也最少被认真对待的部分。

四、三分钟鉴定血统#

最后给一套实用指纹。下次遇到陌生的 Agent 产品,花几分钟就能认亲:

  1. 看默认工具集:read/write/edit/bash 四件套起步的,大概率 Pi 系;
  2. 看 system prompt 体积:压到一千 token 以内的极简派,Pi 哲学的信徒;
  3. 看交互习惯:斜杠命令、Plan 模式、子代理面板长什么样,像不像 Claude Code;
  4. 看实现语言:TypeScript、Python 还是 Rust——这决定你自己能改到哪一层;
  5. 看沙箱在哪一层:系统调用层强制拒绝、提示词约定、还是压根没有——这决定你敢不敢让它碰真实环境。

写在最后#

换壳不丢人——成熟的软件生态都有上游和衍生之分,站在巨人肩膀上是正路。丢人的是明明是衍生却绝口不提,让用户拿着 A 的预期去撞 B 的短处。

认清你手里那个 Agent 的血统,它的长处和短板就从”玄学体验”变成了”可以解释的行为”。至于这套”少数上游、一堆衍生”的格局,像极了另一个成熟生态的哪一段历史——下一篇接着聊。

看着百花齐放,其实就几个祖宗:主流 Agent 体系对照
https://bohuyeshan.top/2026/08/22/2026-08-22-02-%E7%9C%8B%E7%9D%80%E7%99%BE%E8%8A%B1%E9%BD%90%E6%94%BE%E5%85%B6%E5%AE%9E%E5%B0%B1%E5%87%A0%E4%B8%AA%E7%A5%96%E5%AE%97-%E4%B8%BB%E6%B5%81Agent%E4%BD%93%E7%B3%BB%E5%AF%B9%E7%85%A7/
Author BoHuYeShan
Published at 2026年8月22日