理解是新的瓶颈
热烈讨论:我认为理解我们代理编写的代码仍然很重要!在这次演讲中,我将解释为什么在这种情况下理解是重要的,并展示一些有效理解代码的想法。好吧,我们开始吧。代理为我们编写的代码越来越多,而我们都知道要跟上这些代码变得越来越困难。但好消息是:有许多理解代码的方法!逐行阅读差异并不是唯一的方法。本次演讲的大部分内容将围绕我发现有助于理解我的代理构建的系统的技术展开: - 代码解释文档 - 检查我理解的测验 - 我可以玩的小世界来理解系统 但首先我们必须问一个更基本的问题… 为什么要理解?为什么?为什么理解?难道我们现在不应该让自己脱离循环,让代理自己循环吗?随着代理变得越来越聪明,我们在细节中是否变得不那么重要?我认为许多人——甚至那些支持理解的人——对此问题的答案略有不准确! 一个可能的答案是:我们理解是为了验证。我们检查代理的工作,看看它是否正确。正确可以有很多含义:是否符合规范,架构是否良好……但从根本上来说,这是一个赞成/反对的问题。事情是这样的:代理们在验证自己的工作方面越来越出色。这很好!我喜欢我的代理不犯错误。但嗯。这让我们人类处于何种境地呢?这就是另一个答案出现的地方:我们可以理解以参与。你可以学习代理正在做的事情,以确保你能积极参与创造过程。这就是为什么这很重要…… 这绝不仅仅是一个循环!一个项目是与代理之间的许多循环。而你对系统的理解是你提出下一个想法以推动其发展的能力的一部分。你需要在脑海中拥有丰富的概念集,以创造性和流畅地思考如何推动事物的发展。如果你缺乏这种流畅感,你参与项目的能力将受到实质性的限制。顺便说一句,这与认知债务的想法密切相关,这一概念是由玛格丽特·斯托里和西蒙·威利森所普及的。这就像技术债务:在短期内你可以躲避不理解发生了什么,但最终它会对你造成伤害。 好吧,理解很重要。但是这引出了下一个问题:如何?在我们与人工智能合作并快速推进时,我们如何建立这种人类理解?好吧,事实证明,这并不是第一次有人思考如何沟通理解。我认为我们可以把教育作为灵感来源。我们能够窃取为教育发明的最佳想法并应用于这个问题吗? 技术1:解释 今天我想分享三种技术,展示我们如何可以尝试做到这一点。首先:解释。什么是一个好的解释?每当一个代理完成某些工作时,这都是一个解释的机会——一种文档。最简单的方法是我们可以阅读代码差异:被更改的原材料。但如果我们问:最好的解释是什么?如果你有一个团队——人类或人工智能——真的在努力将某些内容解释得很好,那是什么感觉?这是一个答案。我制作了一个名为 /explain-diff 的技能,我每天都在使用,许多同事发现它非常有价值。它以 HTML、Markdown 或 Notion 文档输出精心结构化的代码解释。Notion 是一个很好的地方,可以在团队中对这些解释进行协作和讨论。(免责声明:我在 Notion 工作,所以我会有偏见。) 让我们看看这些解释中的一个,使用编辑视频游戏视角的示例。第一个原则:教我背景信息!在我们甚至到达变更内容之前,帮助我理解已经存在的内容。在这种情况下,教我关于游戏引擎的知识。第二个原则:直觉优于细节。在任何代码之前,它陈述了目标——“通过二维绘图技巧使花园感觉三维”——并解释相关概念,比如等距投影是什么。所有这些都为变化的本质建立了我的直觉。它让我赶上作为人类的理解,以便我能够平等地参与理解。 你还可以通过交互图形建立直觉。在这里,我通过拖动花园中的石头并观察它们的坐标变化来理解等距透视。(这使用的是 Notion 刚刚推出的新功能:你现在可以在页面中嵌入互动 HTML。)我们最终到达代码。但是典型的差异是一堆按字母顺序编辑的文件,没有解释。我称之为“文艺差异”的内容结构化为散文——以合理的顺序描述变化,并附带解释和嵌入代码片段。比原始差异更容易审查。所有这些的最终结果是一个很好的解释包。我仍然阅读代码差异,但我总是先阅读这个。有时我会打印这些出来,带到咖啡馆——不那么分散注意力。这是一个美妙的讽刺:人工智能变得更好了。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡