@mitchellh: 我的经验法则是,任何由AI代理生成的超过约1500行的diff都太大了,表明问题需要分解。

X AI KOLs Timeline 工具

摘要

Mitchell Hashimoto 分享了使用AI代理的经验法则:超过1500行的diff意味着需要分解问题,并概述了一种使用代理生成代码进行迭代开发的模式。

我的经验法则是,任何由AI代理生成的超过约1500行的diff都太大了,表明问题需要分解。以下是我现在进行功能开发的一般模式: 1. 尝试实现整个功能,仅给予松散指导。我称之为“draw the owl”提示,源自那个梗。期望得到垃圾,你确实会得到垃圾。 2. 如果diff少于1500行,就审查并按正常方式迭代。如果diff超过1500行,则提示代理将问题分解为原子化、增量式、可审查的任务。同时,你自己也这样做。 3. 代理往往会将这些任务设置得过于具体,完全契合它们已经解决的问题形态。你需要将其塑造成正确的通用形态。完成这一步。 4. 启动新的代理来处理那些增量任务(尽可能并行化)。应用相同的规则。 5. 在某个节点,再次使用“draw the owl”提示。最终,你会达到低于可审查阈值的状态。 这一直在生成质量稳定、可维护、可审查的代码块,并且可以很好地交接——要么直接合并,要么进行人工优化。 而借助最新的前沿模型在xhigh思考模式下,这些操作都足够慢,以至于你通常可以同时运行多个代理,同时积极审查其他代理的成果或处理自己的任务。 HITL(人在回路中)代理仍然非常重要,尤其是在功能开发中。功能开发会触及用户界面、API等人类边界。全新的东西还可能引入架构上的病态问题,破坏期望的不变量(这些不变量应该体现在规范或测试中,但我们也做不到完美!)。 我知道很多前沿的代理话语都在谈论“循环”和代理不断驱动代理。我也做了一些这方面的工作(稍后报告)。但单就日常把事干成的工作而言,这是目前我最满意的模式。
查看原文
查看缓存全文

缓存时间: 2026/06/16 21:42

我的经验法则是:智能体生成的代码差异若超过约1500行,就说明太大,需要拆解问题。以下是我目前在功能开发中常用的模式:

  1. 先尝试在松散引导下实现整个功能。我称这个提示为“画猫头鹰“(参考那个梗图)。预期结果可能很糟糕,但就是要先产出垃圾代码。

  2. 如果差异小于1500行,就正常审查并迭代。如果差异超过1500行,则提示智能体将问题拆解为原子化、增量、可审查的任务。同时,你自己也做这件事。

  3. 智能体常常会把这些任务定义得过于贴合它们自己解决问题的形状。你需要将其调整成正确的通用形式。动手做这件事。

  4. 启动新的智能体来处理这些增量任务(尽量并行)。对它们应用同样的规则。

  5. 到某个节点,重复“画猫头鹰“提示。最终你会得到低于你可审查阈值的代码。

这个模式一直在生成高质量、可维护、可审查的代码块,并且能很好地交接——要么直接合并,要么进行人工精炼。

而且,使用最新的前沿模型进行高深度思考时,这些过程都足够慢,通常你可以同时运行多个智能体,同时积极审查其他智能体的输出或处理你自己的任务。

人机协同(HITL)智能体仍然非常重要,尤其是功能开发。功能会触及UI、API等人类边界。全新的东西可能在架构中引入病态,破坏期望的不变量(这些应该在规范或测试中体现,但我们并不完美!)。

我知道很多前沿的智能体讨论集中在“循环“和智能体持续驱动智能体上。我也会做一些这类工作(后续再报告)。但就日常“把事情搞定“的工作类型而言,这是目前我最满意的模式。

相似文章

AI代理重现了“rockstar developer”问题,只是速度更快

Reddit r/AI_Agents

该文章将AI代理与“rockstar developers”进行对比,他们编写巧妙但难以维护的代码,指出AI代理缺乏对自己行为的记忆。它建议使用可见的约定,如AGENTS.md、ADRs和测试,以使AI代理生成的代码对团队来说易于理解。