@geoffreylitt: 热论:我认为理解我们的代理编写的代码仍然很重要!在这个超长帖子中(基于我的 A…
摘要
Geoffrey Litt 认为,开发者理解 AI 代理编写的代码仍然很重要,并分享了高效理解这类代码的想法。
查看缓存全文
缓存时间: 2026/07/08 00:24
热点观点:我认为理解我们的代理编写的代码仍然非常重要!
在这个超级长帖中(基于我今天在AIE的演讲),我将解释为什么需要理解,并展示一些高效理解代码的思路。好了,让我们开始吧。1/
代理正在为我们编写越来越多的代码,我们都知道跟上节奏变得越来越难。
但好消息是:理解代码的方式有很多种!逐行阅读差异代码并不是唯一的方法。2/
本帖的大部分内容将介绍一些我发现对理解代理构建的系统非常有帮助的技巧:
代码解释文档 用于检验理解的测验 可以动手玩的微观世界来理解系统
但首先,我们必须问一个更基本的问题……3/
为什么?为什么还要理解?
难道我们现在不应该把自己从循环中抽离出来,让代理自己循环吗?随着代理越来越智能,我们深入细节的必要性不就越小吗?
我认为很多人——甚至那些支持理解的人——对这个问题的答案都有些偏差!4/
一种可能的答案:我们理解是为了验证。我们检查代理的工作,看它是否正确。
“正确“可以有很多含义:是否符合规格说明,架构是否良好……但本质上是一个点赞/点踩的问题。5/
问题是:代理正在变得越来越擅长自我验证。这是好事!我喜欢我的代理不犯错。
但嗯……那我们人类还有什么用呢?6/
这时另一个答案出现了:我们理解是为了参与其中。
你可以了解代理在做什么,从而确保自己能积极参与到创作过程中。以下是为什么这很重要……7/
永远不止一个循环!一个项目是与代理进行的无数次循环。
你对系统的理解,是你能想出下一个演进想法的基础。
你的脑海中需要有一个丰富的概念集,才能创造性地、流畅地思考如何推进项目。如果你缺乏这种流畅度,你参与项目的能力就会受到严重限制。8/
顺便提一下,这紧密关联到Margaret Storey和@simonw推广的“认知债务“概念。
它就像技术债务:短期内你可以不去理解发生了什么,但最终它会反噬你。9/
好,没错,理解很重要。
但这就引出了下一个问题:怎么做?当我们与AI合作并快速推进时,如何建立这种人类的理解?
好吧,事实证明,这并不是人类第一次思考如何传达理解。我认为我们可以从教育中汲取灵感。我们能借鉴教育领域有史以来最棒的想法,并将其应用到这个问题上吗??10/
今天我想分享三种技巧,展示我们如何尝试做到这一点。
第一:解释。一个好的解释应该是什么样子的?11/
每当代理完成一些工作,它都是一个解释的机会——一个工件。
最朴素的方式是,我们可以阅读代码差异:即那些发生了变化的原始材料。12/
但如果我们问:
什么是最好的解释?如果你的团队——无论是人类还是AI——真的花心思把一件事向你解释得很清楚,那会是什么样的感觉?13/
这里有一个答案。我创建了一个名为/explain-diff的技能,我每天都在使用它,许多同事也发现它很有价值。
它会以HTML、Markdown或Notion文档的形式输出结构严谨的代码解释器。(Notion是一个很好的团队协作和讨论这些解释器的地方)
让我们通过一个编辑视频游戏视角的例子,来看看这些解释器里包含什么内容。
14/
第一原则:先教我背景信息! 在我们看到发生了什么变化之前,先帮我理解已有的信息。 在这个例子里,先教我游戏引擎的相关知识。15/
第二原则:直觉优先,细节靠后。 在展示任何代码之前,先陈述目标——“用2D绘图技巧让花园感觉像三维的”——并解释相关概念,比如什么是等距投影。
所有这些都构建了我对变更本质的直觉。它帮我这个人类跟上节奏,以便我能在理解中成为平等的参与者。16/
你也可以用交互式图形来建立直觉。 这里我正在通过拖动花园里的石头并观察它们的坐标变化,来理解等距视角。
这使用了Notion今天刚刚发布的一个新功能:你可以在页面中嵌入交互式HTML。17/
最后我们终于看到了代码。但典型的差异文件是按字母顺序排列的一个个文件,没有解释。 而我所谓的“有文化的差异“则被组织成散文形式——按照合理的顺序介绍变更,并附上周围的解释和嵌入的代码片段。比原始差异更易于审阅。18/
所有这些的最终结果就是一个漂亮的解释包。我仍然会阅读代码差异,但总是先读这个。 有时我会把这些打印出来,带到咖啡馆——更少分心。 这真是一个美丽的反讽:AI将交互活动变成了一份静态的纸质报告,让我能够深度专注 :)19/
只有一个问题:阅读是件苦差事。
正如@andy_matuschak所说:“书本不管用”!你很容易自欺欺人地认为自己读了,但实际上并没有记住或理解。
如何解决这个问题?我从Andy和@michael_nielsen在文章中嵌入间隔重复测验的工作中获得了灵感。20/
现在,我在自己的代码解释器中也做了类似的事情。在解释器的末尾有一个交互式测验——关于变更的五个问题——我试着回答它们。
我的规则是:在通过测验之前,我不会把代码发给别人;同样,在审查别人的代码时,我也会这样做。21/
相似文章
理解才能参与
关于Geoffrey Litt在AIE 2026上演讲的反思,讨论了理解AI编程代理所做出的代码变更的重要性,以避免认知债务并在过程中保持积极创造力。
理解成为新的瓶颈
Geoffrey Litt认为,随着AI代理生成更多代码,理解这些代码成为了新的瓶颈,他提出了代码解释文档、测验和微世界等技术,帮助人类在创意过程中保持参与,而不仅仅是验证正确性。
@MaximeRivest: 只有当愿意接受可能无法完全理解它们创建的过度复杂的系统时,编码代理才能加速我们的工作...
本文讨论了AI编码代理如何要求工程师接受他们可能无法完全理解所创建的复杂系统,并借鉴了自然资源管理等其他领域的经验。
@leerob:你可能认为因为AI,你应该少花时间思考代码。我强烈反对!我们正看到这……
文章认为,尽管AI取得了进步,工程师仍然必须理解代码和系统,因为AI生成的代码可能成为负担,并强调了计算机科学基础和系统设计的重要性。
@jeffreyliu_05: 可能是目前关于构建优秀智能体最好的文章
一条推文推荐了一篇关于构建优秀AI智能体的文章,暗示它对开发者极具价值。