跳到正文

软件工程的终结:代码正在成为运行时产物

标题听起来像是一个预言:软件工程即将结束。

我的读法比较保守,也比较有用。这篇论文并不是说工程学消失了。更准确地说,耐久工程的中心可能会移动。在传统软件中,代码库是系统的长期主体。在智能体软件中,一些代码会变成运行时产物:在更大的推理循环中生成、执行、检查和丢弃。

这并没有结束工程。它改变了必须设计的内容。

概念图像

浅读

浅读是:

AI writes code, so programmers matter less.

这个框太小了它仍然将代码想象为最终对象,仅由不同的参与者生成。

更强的框架是:

Some decision logic moves from static code into a runtime agent loop.

然后,长期资产成为使循环可靠的东西:任务规范、工具、内存、策略、评估、跟踪、权限边界和人工审查点。

从软件对象到交付结果

这篇论文描述了从本地软件到 SaaS,再到智能体即服务的历史演变。

方向不仅仅是“更多云”。这是一种更深层次的复杂性外包:

时代用户购买供应商携带
本地软件已安装的对象有限的更新和支持
SaaS维护服务基础设施、部署、升级
智能体即服务结果循环规划、工具使用、执行、验证

在最后一帧中,用户可能不关心特定脚本是否存活。用户关心智能体在变化的条件下是否能够持续产生期望的结果。

这就是这篇论文变得有趣的地方。如果代码有时是一个临时工具,那么问题就不再只是“代码优雅吗?”这也是“循环能否选择正确的工具、验证结果、从故障中恢复并保留有用的状态?”

什么变得持久

如果生成的代码不太持久,则必须有其他东西来保持连续性。

明显的候选人是:

  • 内存:系统保留有关用户、项目、故障和偏好的内容。
  • 工具:智能体可以安全调用的稳定操作。
  • skill:模型权重之外的可重用程序和约束。
  • 评估:可接受结果的长期定义。
  • 可观察性:跟踪、日志、重播和解释。
  • 治理:许可、审计、审批、回滚和策略。

这些不是模型周围的装饰。它们是工程表面。

证据是定向的,而不是最终的

这篇论文的证据支持该方向,但并不能证明最终状态。

智能体修复孤立问题的基准显示出明显的进展。与此同时,持续的软件进化仍然更加困难:上下文变得陈旧,错误累积,测试偏离意图,长期工作需要记忆和治理。这种对比才是真正的教训。智能体已经可以在有强烈反馈的有界任务中发挥作用。当任务是长期的、跨领域的并且依赖于模糊的产品判断时,他们就不太成熟。

因此,我不会将路线图解读为“我们已经处于自我进化的生态系统”。我会将其视为缺失基础设施的地图:

tool-augmented work
 -> single-task autonomy
 -> multi-agent teams
 -> self-evolving systems

第二阶段和第三阶段之间的差距不仅仅是模型能力。它是角色设计、共享记忆、评估、可观察性和人类治理。

新的工程工作

这篇论文最好的短语不是标题。这是角色转变:工程师成为意图架构师、智能体协调员和结果审计员。

这听起来很抽象,所以我把它转化为具体的工作:

  • 编写能够在与混乱的 repo 接触后仍然存在的目标;
  • 公开带有类型边界的安全工具;
  • 设计有帮助且不会污染上下文的内存;
  • 构建捕获回归的评估;
  • 创建使故障可检查的痕迹;
  • 决定哪些行动需要人工审批;
  • 保持压缩重复练习的 skill。

所有这些都比编写代码技术含量低。它是不同层面的技术。

我的收获

有用的主张并不是软件工程的终结,而是代码可能不再是唯一值得组织的持久产物。

如果智能体可以按需生成代码,那么稀缺资产就变成了运行时,告诉它生成什么、何时信任它、如何测试它、如何记住结果以及何时寻求帮助。

这样这篇文章成为智能体构建者的一个很好的概念图。未来可能包含更少的手工维护样板,但需要对意图、工具、skill、记忆、评估、可观察性和治理进行更仔细的设计。

论文 | HTML | PDF