💻 computer science
Beyond Human-Readable: Rethinking Software Engineering Conventions for the Agentic Development Era
该论文指出,随着 AI 代理成为代码的主要消费者,软件工程需从“人类可读”转向“语义密度优化”,并通过实验证明过度压缩反而会增加推理成本,进而提出了程序骨架等新范式以重构软件设计原则。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文探讨了一个非常有趣且反直觉的话题:当写代码的主力从“人”变成了"AI 智能体”时,我们写代码的方式是不是该彻底改改了?
为了让你轻松理解,我们可以把软件开发想象成**“给厨师(AI)写菜谱”**的过程。
1. 过去的逻辑:为了“人”写的菜谱
过去六十年,软件工程师写代码(菜谱),主要是为了让人类开发者能看懂。
- 人类的特点:记性不好(一次只能记 7 件事),喜欢按部就班,需要清晰的排版和注释。
- 结果:为了让人类好读,我们发明了很多“仪式感”的规矩。比如:把一个大功能拆成几十个小文件,每个文件都要有复杂的开头声明、注释、目录结构。
- 比喻:这就像为了让人类厨师看懂,你把一道菜的做法写成了 10 本厚厚的书,每页都印着精美的装饰花纹,虽然人类看着舒服,但书太厚了,翻起来很慢。
2. 现在的变化:AI 来了,它是个“贪吃”但“记性差”的超级厨师
现在,AI 智能体(Agent)开始自动写代码、修 Bug 了。
- AI 的特点:
- 记性有限:它的“工作记忆”(上下文窗口)虽然很大,但也是有上限的。
- 按字收费:它读一个字(Token)都要花钱,而且读得越多,思考时间越长,成本越高。
- 擅长猜谜:它不像人那样靠“直觉”理解,而是靠“概率”和“模式匹配”来猜意思。
- 冲突:如果我们继续用“给人看”的那套厚书(充满装饰和废话的代码)给 AI 看,AI 会读得很慢,而且因为要处理太多没用的装饰花纹,它容易“走神”或算错账。
3. 核心发现:压缩不是答案,“密度”才是关键
论文做了一个实验,就像给 AI 厨师看四种不同格式的“故障报告”:
- 人类版:写得像散文,字多但好懂。
- 结构化版:像表格,整齐。
- 压缩版:像电报,全是缩写(比如用
E|PS|pf代表“支付失败”)。 - 工具辅助版:压缩版 + 一个翻译工具。
反直觉的结论来了:
大家以为把字缩得越短(压缩版),AI 读得越快、越省钱。
但实验发现恰恰相反!
- 压缩版虽然输入给 AI 的字变少了(省了 17% 的输入费),但 AI 为了猜懂那些缩写,在脑子里“思考”的时间变长了,导致总成本反而暴涨了 67%。
- 比喻:如果你给 AI 看“支付失败(Payment Failed)”,它一眼就懂了。如果你给它看"PF",它得停下来想:"PF 是 Payment Failed 还是 Power Failure?哦,是前者。”这一瞬间的“思考”消耗了它更多的算力和金钱。
核心原则:语义密度(Semantic Density)
- 零信息垃圾:那些为了人类好看而存在的“装饰花纹”(比如重复的类声明、多余的括号、复杂的文件分割),对 AI 来说是纯粹的垃圾,必须删掉。
- 高价值信息:那些真正解释“这是什么”的词(比如函数名叫
CalculateTax而不是Func1),必须保留甚至加强。 - 结论:不要为了省字数而把意思写模糊了。字越少越好,但前提是每一个字都必须有信息量。
4. 论文提出的新玩法
A. 把“菜谱”合并成“一本大书”(文件合并)
- 旧习惯:为了让人类不晕,把一个功能拆成 10 个文件。
- 新建议:AI 不怕文件大,它怕翻文件(每次翻文件都要花钱)。所以,把相关的代码合并到一个大文件里,让 AI 一次读完,反而更省钱、更快。
- 比喻:与其给 AI 10 张散落的纸条,不如给它一张写满所有步骤的长卷。
B. 复活“坏味道”(反模式)
- 旧习惯:以前我们说“上帝对象”(God Object,指一个文件里塞了太多功能)是坏代码,因为人类看不过来。
- 新建议:如果这个文件能让 AI 一次性拿到所有信息,那它可能反而是好代码。只要逻辑清晰,文件大点没关系。
C. 引入“程序骨架”(Program Skeleton)
- 概念:想象你有一本很厚的书,AI 不需要读每一页,它只需要一张**“目录地图”**。
- 做法:生成一个叫
CODEMAP.md的文件,里面只写:这个模块是干嘛的?入口在哪里?函数叫什么? - 作用:AI 先看这张地图(骨架),知道去哪里找细节,而不是盲目地翻遍整个代码库。这就像给 AI 配了一个**“导航仪”**。
5. 总结:我们要怎么改?
这篇论文告诉我们,未来的软件工程不再是“为了让人类读得爽”,而是**“为了让人类和 AI 都能最高效地工作”**。
- 对 AI:少一点废话(去掉装饰),多一点干货(清晰的命名和逻辑)。
- 对人:我们可能需要接受代码看起来“不那么整洁”(比如文件变大了),或者我们需要开发新的工具(像“骨架”生成器),把给 AI 看的“高密度代码”和给人看的“整洁代码”自动转换。
一句话总结:
以前我们写代码是为了**“给人看”,所以我们要把代码写得像“精装书”;
现在 AI 要读代码了,我们要把代码变成“信息密度极高的数据流”**——去掉所有没用的装饰,只保留最核心的信息,让 AI 一眼就能看懂,不用动脑筋去猜。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。