最近想给一个 agent 选框架的人,大概都有过这种眩晕:一周内能刷到三四个新东西,每个都贴着 agentic、agent-native、agent harness 的标签,README 一个比一个像未来。点进去,A 说支持 20 个模型,B 说 benchmark 屠榜,C 说零配置接入。看完一圈你还是不知道选哪个——因为它们晒的全是参数,没人告诉你彼此到底有没有本质区别。
这阵子在 GitHub 上同时火起来的三个框架,正好凑成一组样本。一个叫 flue,Astro 团队做的;一个叫 agent-native,Builder.io 做的;一个叫 superpowers。三者定位差得很远:flue 是个 TypeScript 运行时,agent-native 是个做应用的框架,superpowers 干脆是一套开发方法论,连运行时都不算。表面上八竿子打不着。
但摊开放一起看,会发现一件有意思的事:它们都在删掉同一层东西。
它们删掉的那一层
flue 把话说得最直白。它 README 第一句不是介绍功能,是一句划界限的话——“Not another SDK”,不是又一个 SDK。理由它也给了:最早那批 agent 是拿裸的大模型 API 调用拼出来的,这套能搭聊天机器人、能跑脚本,但也就到此为止;像 Claude Code、Codex 那种才是真 agent,是另一种架构——你给它的是一个任务,而不是一串预先定义好的步骤,然后给够上下文和工具,信它自己跑完。
这句话其实把 agent 框架劈成了两半。
一半是 raw API call 那一套:你写的是步骤。你把一件事拆成预定义的一二三,每一步调什么、拿到结果怎么判断、下一步走哪个分支,全你写死,模型只在你留好的空里填字。这种东西你可以叫它 agent,但它本质是一段你编排好的流程,模型是其中一个被调用的函数——聪明不聪明不重要,因为它没有自主权,所有判断都在你手里。
另一半是 harness 那一套:你写的是任务。你不再规定它先干嘛后干嘛,你给一个目标、给够上下文、把工具和一个能动手的环境交给它,然后退后一步,信它自己把活干完。中间那行你原本要写的"调模型、解析返回、决定下一步"——被删掉了。删掉的不是一行代码那么简单,是"你来编排"这件事本身。
<!-- diagram:写步骤vs写任务 -->
flue 里有个细节很说明问题。它让你在代码里直接 import 一个 SKILL.md——一份技能就是一个 markdown 文档,harness 把它装上去,agent 自己决定什么时候用、怎么用。你没写"如果用户问 X 就执行 Y",只是把一份"会做某件事"的说明丢进它的环境。写过这种东西的人会有体感:你交出去的不是逻辑,是能力;编排权从你手里转移到了它手里。
三个切面,同一件事
认出这条分界线,再回头看那三个框架,它们就不再是三个互不相干的东西,而是同一件事的三个切面。
flue 删的是运行时那一层。sessions、tools、skills、sandbox(虚拟的、本地的、远程容器的都有)打包成一套 harness,你不用自己拼"调模型—管状态—跑工具"的循环,这套环境直接给你。
agent-native 删的是界面那一层。它的核心主张是:agent 和 UI 是同一个系统里平等的两个公民,每个操作都双向可达——你能点它,也能让 agent 替你做。agent 跟人共享同一个数据库、同一份状态,是个一等的协作者,跟另一个真人坐在同一个文档里没区别。应用不再只是"给人看的界面",它同时成了"给 agent 用的环境"。
superpowers 删的是流程那一层。它不给运行时,给一套方法论:让你的编码 agent 先别急着写代码,先把需求逼成一份 spec,再拆成计划,再走 TDD、派 subagent 跑实现,能自己连续干几个小时不跑偏。它把"人盯着每一步"换成"人定目标和边界、agent 自己推进",而且装在 Claude Code、Codex、Cursor、Gemini CLI 这些 harness 上,自己不挑窝。
运行时、界面、流程——三个完全不同的位置,删的是同一行代码:那行"你来编排模型"。它们都在把环境原生地交给 agent,区别只在交的是哪一块。
一把能直接用的尺子
所以下次再刷到一个标着 agentic 的框架,先别看它支持多少模型、benchmark 多高、接入多省事——那些都是包装。问一个更钝的问题就够了:
它让你写的是步骤,还是任务?
翻它的示例代码,如果看到的是"调一次模型、解析结果、按结果决定下一步"这种你亲手编排的流程,那它再怎么贴 agentic 标签,本质还是包了层壳的 API 调用,模型只是流程里一个聪明点的函数。如果看到的是"给个任务、配上上下文和工具、把环境交给它跑完",那它才真删掉了那一层,把方向盘交了出去。
这把尺子不挑框架、不挑语言、不会过时,因为它量的不是功能,是架构里那个最根本的决定——到底谁在做判断。三个框架同期走红不是赶巧,是越来越多人意识到:模型早就不是瓶颈了,真正的活儿在于你给它搭一个什么样的环境,然后敢不敢把编排权交出去。
那些还让你一行行写步骤的框架,本质上还没敢交。