2026 年 4 月 16 日,QCon 全球软件开发大会在北京开幕,2000 多名观众参会,现场座无虚席。TiDB 联合创始人兼 CTO 黄东旭结合自己在过去几个月中,消耗了上百亿的 Token 得到的感受以及与“Agent 员工”协同工作的实践,分享了在 Agent 时代 软件构建、软件形态及未来发展的思考。
黄东旭《The Age of Autonomous Systems 自主系统的时代》主题演讲主要观点:
-
软件生产变革 :Coding “已死”,代码成为执行载体,软件生产走向民主化,Agent 时代的思考媒介由 Goal(目标工程)、Context(上下文工程)、Constraints(约束)构成,对应 Skill、Harness Engineering、Agent Infra 等领域。
-
人机协同模式 :纯黑盒模式不可行,人需通过 SPEC 定义软件工程规范,并组织 Agent 团队协作;需要使用高智商模型,通过大量 Token 消耗激发 Agent 灵光一闪的创新。
-
软件形态进化 :从静态固定形态转向以意图为接口的灵活形态,Unix 哲学因灵活性复兴;软件生态将向 “面向人” 和 “面向机器” 两端集中,中间市场被压缩。
-
未来软件形态 :Skill 非最终形态,未来将出现更复杂的抽象,通过自然语言描述、人机协同生成,可 Debug 和分发,核心是蒸馏人类专家知识。
以下为演讲实录。
大家好 。我已经好几个月没有跟这么多活人说话了。大概去年年底的时候,因为 Agent 的能力,包括 Coding Agent 的能力大幅提升,当时我就在公司内部做了一个决定:我不再开会了,所有的时间都在跟我的 Agent 开会。这几周算是“出关”了,今天带给大家一些闭关这几个月得到的感受。
今天的分享可能更多是从我个人的一些思考,以及这段时间燃烧了上百亿 Token 后得到的一些感受出发。
我先介绍一下我自己,我叫黄东旭,是 TiDB 的联合创始人兼 CTO。首先我觉得我肯定还是个工程师,现在每天依然在写代码。现在大家介绍自己时,似乎都喜欢放一点每日 Token 消耗量,我觉得这确实也是一个指标,但是大家不应该把这个作为目标去看。真正的目标应该是去完成了一些有意义的事情,然后再回头审视,在这个旅程中你得到了什么。我以前一直做基础软件、做数据库,但最近这几个月,大家认识我的渠道好像都是从我最近开始写的微信公众号,我在上面写了一些关于 Agent Coding 相关的思考。所以目前就是这么一个状态,最近主要都在做 Agent Infra 相关的探索。
今天讲这场 Keynote 还挺有意思的。因为以前我做这种大会分享,主办方经常提前一个月就开始追在屁股后面说“你赶紧把 PPT 给做好”。但是今天我们去聊 Agent 或者 AI 的这个时代,我可以非常大方地说:“不好意思,因为现在这个行业发展实在太快了,如果我一个月前就把 PPT 写好了,那讲出来的内容肯定早就过时了。”所以我理直气壮地犯了拖延症,这套 PPT 其实昨天才刚刚写好。
首先我先抛出一个观点: Coding 这件事情基本上已经死掉了。
今天早上我来的时候看了一下,整个 PPT 100% 是纯人工、手工“古法”来写的,没有任何 AI 含量。我比较真诚,可能以后我们会有一个 QCon for Agents,那到时候再说,但至少今天是给人看的大会,我还是坚持用人来写 PPT。但在代码层面,我已经完全不用人来写了,所以对 Coding 来说,这个问题基本上已经被解决了。
回到刚才,我看到今天这两天的整个大会议程,其实已经没有跟 Agent 无关的内容了。这跟前几年技术大会的感觉非常不一样。 但我觉得大家也不用悲观,软件这件事情其实反而会迎来一种类似“寒武纪大爆发”的状态。
接下来的分享,我可能会围绕三个比较宏观的主题来展开:
-
第一, Agent 时代对于软件构建方向(生产端)发生了什么样的变化?
-
第二, 软件本身的形态 。今天我们明显感觉到这是一个非常混乱的时代,比如 Claude Code 和 Cursor,大家天天用的这两个编程工具代表着两种完全不同的编程理念,也不好说最后谁会赢。眼看着 Claude Code 这种自主形态已经走在比较前面的位置了,但变化实在太快,我会从宏观上谈谈我的思考。
-
第三, What's Next? 刚才嘉宾也聊到了 Skill,但 Skill 就是未来吗?不好说,所以我会在最后聊一下未来的演进,我认为 Skill 并不是一个最终的状态。
01
当我们回头去看计算机历史,尤其在这种比较混沌的时期,其实能从历史里学到非常多的东西。我觉得今天有各种各样新东西出现的时候,大家千万别盲目去学。比如 Open Claw 刚出来时,我疯狂地在里面搞,结果最近两天我又把我的整个 Agent 体系切到 Hermes 上面了。不学其实反而是最优的策略。这种时候,你反而应该回到计算机的根源,去看看什么东西永远不变。
最早期的计算机,你想让它做点事情,可能需要去改变晶体管等物理结构。那个时代,每个人既是硬件工程师,又是软件工程师,甚至是物理学家。慢慢地大家发现,这样对人的要求太高了,所以开始进行抽象。今天我们每一个人看到的代码,其实是我们跟计算机交互、思考的一个载体。本质上,计算机的发展史就是一部关于抽象的历史。 我们让计算机完成一件事情,其实有两个特别关键的媒介 (或者说载体):一个是 执行载体 ,即你的思想和目标怎么在物理机器上被执行;另一个是 思考载体 ,即你的需求怎么通过语言或代码在头脑里被构建出来。
计算机诞生之初,硬件既是执行载体,也是思考载体。 但计算机能变成一个产业的关键节点,就是编程语言的诞生。 没有编程语言,是不会有软件行业的。编程语言的诞生,其实就是把“执行载体”跟“思考载体”分开了。
在大模型和 Coding Agent 出来之前,整个计算机历史其实没有发生过本质的创新,只是我们在不停地把硬件能力变强,把编程语言翻来覆去地变得更加友好(从机器语言到高级语言)。本质没有变化:都是硬件在做执行,大家在用代码做思考。
但是 Coding Agent 这一波非常不一样。这可能是自编程语言发明以来,同等级别的变革。大家仔细想想,今天我们看待代码的方式,已经跟几个月前不一样了。
几个月前,我们作为程序员还在用代码去思考;但今天,我已经完全不再看代码了,AI 在生成什么东西我完全不看。那代码变成了什么?代码变成了跟硬件一样的执行载体。 所以,作为“思考代码”的人——架构师也好,程序员也好,我们的历史使命已经完成了。
软件不会变革,但 软件生产会变得非常民主化 。想象一下,上一次这种级别的载体变革(编程语言的发明),诞生了整个软件行业;那这一次它会产生什么?这还是一个 Open Question。
这里我想分享一个新闻:大概今年 2 月份,Anthropic 的官方博客发布消息称,他们用 Claude Code 加上一个 Agent Team,零人工、纯黑盒地完整实现了一个 C 编译器。其实在这篇新闻发出来之前,我一直在硅谷,大概从去年 11 月份开始,我已经独立在尝试类似的事情了。只是这篇文章把当时硅谷最前沿工程师的实践,变成了一个让大家看见的东西。
我为什么反复强调去年 11 月份这个时间点?因为正好是前沿头部大模型发布的时间。在那个时间点之前,你可以认为所有的 Coding Agent 对程序员做复杂工程只能起到辅助作用。但在那个时间点之后,它跨过了某一个极限的阈值——系统可以完全自主地去完成长程、复杂的软件任务,且交付的结果已经可以用了。
仔细想想,虽然每个 Agent 在干事时上下文窗口是有限的,但任意复杂的软件工程项目,都可以被拆解成局部不那么复杂的模块。当局部模块的完成能力已经 Ready 时,你会发现现在的模型和 Agent 已经能够完成任意复杂度的软件了。当时在那个时间点,我就觉得这个世界已经彻底变了,对于程序员来说,AGI 已经实现了。
而且更可怕的是,我们现在其实没有办法去评估 Coding Agent 的能力边界在哪里,这是我一个切身的感受。虽然今天有很多朋友说这个东西太蠢、觉得还是得靠古法编程更安心,但我只能说,那是因为第一没有给模型正确的、足够多的上下文,第二是你本身的需求描述得不够清楚。模型本身是一定能干的。
最近这三个月,我一个人做了一个几百万行代码的基础软件项目(有点像编译器,是个数据库项目),100% 无人工,目前已经在生产环境中上线并有了客户。甚至现在我发表演讲的时候,我的 Agent Team 还在不停地开发,人肯定是 Review 不过来了。
所以大家想想刚才的判断:当代码已经变成执行载体后, 我们今天去生产和构建软件的“思考媒介”是什么?我认为大概是由三个维度的组合:Goal(目标)、Context(上下文)和 Constraints(约束)。 在这其中,人类最应该关注最多的是 Goal 这一块。
人类其实有一个普遍的逻辑弱点——经常不知道自己到底要什么。这对于 AI 来说是特别麻烦的事情。我提出这个思考框架,是为了让大家把今天所有流行的技术放到大框架里去看,大家就能看到整个 Agent 行业现在到底是什么样子。
比如说我们思考今天搞得非常热火朝天的 Skill 和各种上层应用生态的人机交互,我觉得其实都是放在 Goal 这块,即怎么让人更快地跟 Agent 交互并完成目标。
在Context 这块,目前特别火的 Harness Engineering,包括 Ralph Loop、Memory、RAG 等各种各样的技术,其实都是在优化上下文。
而 Constraints 其实是现在 Agent Infra 里最火的赛道。你会看到无数创业公司跑出来做 Sandbox、Agent 测试环境、CICD、Lint 等等,其实都是在 Agent 生产软件的过程中,去控制约束和边界的东西。
所以今天你会看到,任何我们在 agent 上做的事都可以放到这个大的框架里边。那既然都能放到这个大的框架里,那这个就是未来软件的样子和架构。
关于软件生产,还有一个很重要的点是人机如何协同。
大概从去年年中,我也经历了一次思维上的转变。我最初非常激进,一直尝试让它完全纯粹地黑盒运行——人不要干预,让 Agent 自己去讨论、开发,消耗多少 Token 无所谓,我坚信“The more tokens, the more intelligence”。我当时做了一整套 Agent Infra,让无数 Agent 组织成一个社会去工作,人只能看不能干预。因为我毕竟是开公司的,有个特别大的经验教训:老板一微操,系统就容易搞挂。所以我一开始的目标是我完全不关心 Agent 怎么做,给我交付结果就行。
但后来慢慢发现这个模式不太 Work,人还是要在这个流程里“点拨”一下。现在我跟我的 Agent Team 的工作模式更像我是 HR:我每天在群里让大家签到,总结昨天干了什么,谁表现得最好让大家学习,谁表现得不好让他反思。另一方面,我作为老程序员,这些经验是特别重要的。无人监督时模型容易跑飞,此时一份写得非常好的 Spec(需求规格说明书),远比单纯把多个 Agent 放在一个群里聊天的 Harness Engineering 要重要得多。
另外一个点是怎么去发掘模型的潜力。我相信大多数用 Coding Agent 的朋友,现在的模式是:开一个 Claude Code,把需求告诉 Agent,等它干完活验收。如果你还是这种模式,你就会变成最大的瓶颈,你的生产速度完全取决于你吃饭睡觉的速度;而且你也没法判断 Agent 给的建议是不是最优的。所以我后来的实践是:对于任何需求,我都会强制要求数十个 Agent 不停地、一遍又一遍地重写、删改并互相讨论。 可以说 99% 的时间它们产出的都是废话,但我要的就是那 1% 灵光一闪的 Idea。这种时刻出现时,你会发现整个代码质量会发生直接的跃迁。
所以今天大家想做个好软件还要省 Token,是不行的,必须要大力出奇迹。其次,模型的智商是决定性要素。经常有朋友问用智商低一点的模型行不行?不行。在成千上万步的长程任务里,智商差 1%,跑到后面肯定就飞了。
其实刚才还有一个迷思, 就是到底是三个臭皮匠协同产出更好的结果,还是一个脑子特别厉害的单 agent 产生的结果更好 。
这个问题今天我觉得没有争论了。一个典型的例子,前天 Anthropic 推出了一个新的 Routine 功能。这个功能有点像触发器,发生什么事件时触发另一个 Agent 去干事。这意味着 Claude Code 已经不再觉得在单一机器上做 Agentic Loop 是完成复杂任务的终极方式了,它需要去构建一个 Agent 网络才能去干一些更 Next Stage 的事情。所以我觉得这个功能本身大家玩玩就好了,但是它背后代表的意义是更重要的。
软件构建的这个部分,其实我相信大家听完了以后会觉得作为软件工程师的这个已经结束了,没错,但是我们这一群最后的程序员其实还是给这个世界留下了一些宝贵的遗产。
其实今天大家说 Harness Engineering 等等,真的,我们这个行业真的太爱发明一些稀奇古怪的词了。Harness engineering你翻译过来看,它就是 Still Good Engineering ,它没有什么特别的,也许可能三年以后这个 Agent 自己的社会网络形成了以后,它能搞出一些自己的 Engineering 的方式。但是在那个时候我们已经看不懂他们在想什么了,所以至少今天我们作为 Bootstrap 阶段的人类,能够给 Agent 最好的东西就是我们在上一个时代积累下来这种朴素的软件工程、复杂性管理、需求分析、项目管理这些东西。
02
在大语言模型和 Agent 出来之前,软件形态是静态的:UI 固定的,功能固定的。这意味着软件的智商上限,等于设计这个软件的程序员和产品经理的智商上限。
但今天,软件已经没有固定形态了。Open Claw(小龙虾)最大的意义,在于它定义了 Agent 时代软件的“60 分及格线”。如果未来的新软件,体验和灵活性不如 Open Claw,那就是旧时代的东西。 今天其实已经没有什么 UI 和固定形态了,“意图”才是用户未来操作软件的真正接口。
最近大家发现 CLI 和 Unix 哲学又复兴了,我特别高兴,因为我是 Unix philosophy 忠实粉丝。Unix 从来不是一个黑白的操作系统,它是一套生产软件的思想体系。比起固定的图形 Dashboard(如果想看新指标只能重新开发界面),Unix 哲学里改需求就是把 grep error 改成 grep warning 这么简单。你不需要从头开发新软件。大模型只要学会了 Unix 哲学和常用Unix Tool,就能满足各种需求。
我画了一根轴,现在我们的大多数行业其实是落在这根轴的中间的某个位置。在 Agent 诞生之前,整个软件的产业链我觉得会更像纺锤形——靠近两头的公司或者创新是比较少,但是靠近中间,尤其美国的企业服务市场,你会发现有很多 Saas, 很多这些行业软件其实是落在这个轴的中间的。
但是我觉得在 Agent 普及了以后,不远的未来,整个产业轴会被严重压缩,创新和资本会往两头走:你要么做极其贴近人的端,要么做极其贴近机器的端( 编译器、数据库、操作系统) ,中间那些 SaaS 和行业软件的空间会被严重挤压。
靠近人这一端,决定传播的特征是“情绪价值给满”,让用户发号施令并且感觉“I'm in control”。但决定留存的依然是交付的结果是否扎实。这就是为什么我毫不犹豫从 Open Claw 切换到了 Hermes,因为 Hermes 交付的结果更好。未来哪怕出现了比 Hermes 更好的,我也会毫不犹豫地迁移。
第二个大的判断是,下一次的计算机革命其实会发生在人机交互领域。 今天我们的人机交互,其实还是 Agent 时代之前的交互方式。比如说,为什么我要去学习用键盘?为什么我要去用屏幕和笔记本?如果你有小孩,他从来没有接触过计算机,你让他去完成一件事,他可能更自然的反应是拿纸笔,或者在墙上涂涂画画。那为什么以后的计算机,不能是我们在墙上涂涂画画就能出来结果呢?
所以,一切东西都会往跟人更接近、更自然的方向去发展,我觉得这是一定会出现的趋势。当然,任何交互改进最终的评价标准,就是人的输入是否能让 Agent 交付更好的结果,我觉得这是决定性的东西。如果你的交互设计只是给大家提供了很好的情绪价值,但你提供给 Agent 的 Input 对它来说全是废话,那这种软件肯定也是不长久的。
靠近机器这一端,趋势非常明显:基础软件已经不再是给开发者用了。我的 Kubernetes 已经完全交给 Agent 运维,我再也不用写 YAML 文件了。一个很好玩的例子是,我们的 TiDB Cloud 有个新产品线叫 Zero,特点是没有账号体系。有账号体系的意思就是说人要登录,要去鉴权,但是 Agent 的数量和需求可能是人的 100 倍、1,000 倍、1 万倍,这时候你再用人的账号体系去限制 Agent 其实是不明智的,所以应该把自己变成一个这个纯粹的招之即来、挥之即去的这个基础设施。
我只是举个例子,因为这是我自己做的,所以就有点感觉,但是其实更想让大家知道的是这背后代表着一种思维的变化。包括现在我的数据库的 onboarding, 其实就已经完全不是说让人安装一个什么东西了,把一段 Skill 贴进对话框,它自己就跑起来了。
没有注册,没有 Configuration,“ Everything is Skill”。
围绕这个话题再往前走一步, 我觉得马上会有一个非常重要的行业或者说生态诞生,这个方向就是“人体工学”,或者叫“Agent 体工学” 。以前,开发者体验(Developer Experience)在国内可能没有那么多人关注,但在美国其实被研究得非常多,主要就是从程序员的角度去看一个软件到底好不好用,怎么去系统性地描述“好用”这件事情。我觉得,马上也会有一个专门针对 Agent 使用软件的行业出现——怎么去给 Agent 设计更好用的软件。
我先总结几点:
-
第一, 最小化使用的摩擦 。比如数据库,如果你发现结构化数据在数据库里,Memory 在另外一个地方,日志又在别的地方,这对于 Agent 来说就很分裂。这就有点像它一边要看这个小本本,一边又要看那个小本本,非常烦。但如果你能给它提供一个 Unified Platform(统一平台),它其实会更爽。所以为什么今天的数据库我都得去提供文件系统?因为 Agent 或者说大语言模型非常喜欢文件系统,这就有点像“人民需要什么我们就给它造什么”的感觉。
-
第二, 最大化的信息密度 。这点大家也很好理解,Markdown 文档跟给人看的 HTML 区别是什么?区别就是信息密度更高。
-
第三, 我觉得这点很重要 ,也是人类经常会犯的错误——就是不相信模型的能力,只相信设计自己的流程。但经常 99% 的情况是,所谓咱们自己想出来的那些流程规范,放在 Agent 面前都是非常愚蠢的,反而限制了这些 Agent 能力的发挥。
03
回到一开始的问题,软件的未来会发生什么?
上一次这种级别的变革就是软件行业的诞生了。 这一次其实我觉得会诞生一种新形态的软件 。
比如像 GStack 和 Superpower 这样的工具,其实它们就是几百个没有代码的 Markdown 文档,放在 Claude Code 上运行。用户看到的不再是底层模型,而是技术栈代表的思考框架。比如 YC 的 CEO 就是把自己多年的创投经验,变成了一系列自动执行的套件。它们最大的意义在于,把 Claude Code 这种 Coding Agent 当作底层操作系统在用。
所以,Skill 核心问题在于太简单、太粗糙了。今天我们交换 Skill 的方式,就跟当年这些交换奇奇怪怪的 recipe 的方式是一样的。但是未来像 AWS 或者 Photoshop 等庞杂的软件,是不可能通过“一张纸”去交付的。
所以我觉得未来在 Skill之后一定会有更好的抽象。这个抽象能表达更复杂的协同、通过自然语言人机协同生成、有一定的结构且能被 Debug,最核心的目标是:蒸馏人类专家的知识。
有了这样的抽象,软件开发的门槛将真正被击穿。比如我今天是个厨师,以前受限于开发门槛没法做做菜的 APP;但今天只要跟 Agent 聊上三天三夜,把我的 Know-How 蒸馏出来变成一个“Cooking Stack”,就可以变现了。
最后做个总结: 既然 Coding 已经退化成了执行载体,为什么我们还在热烈讨论它?为什么看起来是 Anthropic 赢了?
这不是因为发现了新的科学规律,而是因为这就是目前的战略路径。如果 Google 赢了,世界可能是纯多模态的;但今天是 Anthropic 赢了,所有的资金和算力都在疯狂加强模型的编程能力。于是,世界变成了一个“以编程为通用手段来改变一切”的形态,未来的所有通用 Agent 都将构建在编程能力这个基石之上。
这是我今天想让大家理解的。谢谢!