正在刊行长文 · Essay
2026-10-07所有内容
随机比特 · Random Bits

代码写得越多,Agent 越平庸

2026-10-07AI Engineering / Systemsrbits.uk
代码写得越多,Agent 越平庸

在日常全栈项目开发中,让智能体处理一个微小需求。比如在网页表单中,添加一个生日选择输入框。

资深工程师看到这个需求,通常只需要调用浏览器原生提供的输入标签,几分钟就能提交合并。

但交给具备终端执行能力的编程智能体后,过程往往走向失控。在未经规则约束的默认状态下,智能体会调用命令行下载第三方日期组件库,手写包括包装组件与配置样式在内的四百多行代码。原本调用一行原生标签即可交付的改动,演变成了庞大的代码提交。

这种现象在日常开发中极其普遍。许多团队误以为智能体输出的代码量越多,代表它的工程实现能力越深入。然而工程现场恰恰相反。未经引导的模型缺乏对运行环境的判断,倾向于给出全套自包含的脚手架代码,把宿主平台已经解决的能力在业务层重新实现一遍。

只要一个日期输入框却手写四百行封装组件

为了扭转这种代码膨胀惯性,开源项目 Ponytail 提出了一套决策阶梯机制。它的核心逻辑非常朴素:通过在项目规则文件中注入引导,要求智能体在动笔写新代码之前,必须先按优先级寻找现成解法。

这套阶梯规定了自顶向下的评估顺序:

  1. 是否必须存在?不必要则直接跳过;
  2. 当前工程已有?直接复用既有模块,避免重复编写;
  3. 语言标准库支持?优先调用内置工具库;
  4. 平台或浏览器原生具备?优先使用原生标签与接口;
  5. 已安装依赖支持?直接引入,不安装新类库;
  6. 仅在上述路径均不满足时,编写最小增量实现。

这套规则在真实的开源项目中展现了显著效果。在针对开源全栈项目 full-stack-fastapi-template 的基准测试中,基于 Haiku 4.5 模型的无人值守编程智能体执行了十二项日常开发工单,每个工单独立运行四次。测试结果表明,引入决策阶梯后,智能体最终提交的代码行数平均下降了百分之五十四。

在日期选择器场景中,智能体直接调用原生 HTML 标签,代码量从四百零四行降至二十三行,降幅达到百分之九十四。在颜色选择器场景中,代码量也由二百八十七行降至二十三行。由于省去了多余的依赖解析与抽象封装,任务执行耗时缩短了百分之二十七,Token 消耗下降百分之二十二,总体 API 成本降低了百分之二十。

大模型没有代码维护的痛感;如果不给决策设拦截点,最勤奋的智能体也会把最简单的需求写成臃肿的架构工程。

把基础能力交还给平台原生实现,不仅缩减了前端打包体积,更把复杂的底层状态维护直接卸载给了浏览器引擎。

盲目追求最少行数往往最先丢掉安全防护

面对代码膨胀,许多工程团队的第一反应是在提示词里粗暴下达指令,要求智能体用最少行数或单行代码完成任务。但实测数据暴露了这种极端做法的巨大风险。

在基准设计的二十次独立安全边界测试中,仅靠提示词强行压低行数的对照组,在一次测试中意外裁撤了路径穿越防御,安全合规率降至百分之九十五。为了达成机械的字数指标,智能体在生成代码时最先缩减的,往往是入参边界校验、异常捕获以及权限防御。

代码变短并不等同于代码变好。高水平的工程克制,是对实现路径保持最小侵入,同时对系统防御边界保持绝对敬畏。

在实际落地中,团队可以将决策阶梯直接固化在开发工具的规则配置中。要求智能体在编写业务逻辑时遵循原生优先,但在处理接口传参、文件路径与权限校验时,严禁削减防御性代码。当页面需要复杂的日期区间禁用、跨时区计算或高度定制主题时,再显式升级为专业组件库。

真正的精简是砍掉不必要的中间抽象,而不是在防御边界和参数校验上偷工减料。

让编程智能体学会优先调用平台现有积木,人类工程师才能从繁重的多余代码审查中真正抽出身来。

随机比特公众号二维码
公众号 · 随机比特
从 AI 工具热闹里拆工程真相

写边界、控制面、上下文、成本与安全。