跳到正文
北京时间
原文
Hacker News 热门(buzzing.cc 中文翻译)· Riseed·· 2026-07-03精选AI 评分70

《Fable》通关指南:短绳AI编程法

AI 导读

专业开发者经过一年多研究,总结出使用AI编码代理的“短绳方法”。该方法要求开发者全程参与:先规划并分解任务,从不使用YOLO模式,每次变更前审查差异并拒绝不想要的更改,每个子任务后提交以防止AI误操作(如Opus曾出现破坏性行为)。最终需进行人工与AI双重PR审查,PR须注明使用模型,提交者须亲自审查自己PR的代码。即便不用前沿模型,此法也能产出超越Fable 5的代码质量。

推荐理由

这篇是资深安全开发者一年的实战总结,提出的「短绳法」把AI代理栓紧,不是让开发者当甩手掌柜,而是逼你逐行审查,对代码质量死磕到底,比那些鼓吹全自动的大路货更有实操价值。

正文 · AI 翻译

这篇文章是我历时一年多研究如何正确使用 AI 智能体在安全关键系统中编写高质量软件的成果结晶。

我将主要从一名软件开发人员、协议开发者以及安全关键软件维护者的视角来撰写这篇文章。

在过去一年里,我深入钻研了 AI 智能体。我探索了它们的极限,探究了哪些事情可以依赖它们完成、哪些不能。我打造了自己的 AI 审查工具,其表现足以媲美耗资数十亿美元的 AI 审查系统。我维护着 自己定制分叉的一个名为 Crush 的 AI 编程智能体。而这篇文章,就是我对所学经验的提炼——如果你想借助 AI 工具打造高质量软件,这就是我所认为的最佳方法。

有些人憎恨 AI。的确,许多开发者理应憎恨 AI,因为它是他们学习软件开发道路上的敌人。这篇文章不是写给他们的。这篇文章是写给少数专家级开发者的——他们的技能已经达到了在其专业领域内超越任何乃至所有“前沿 AI 模型”的水平。我写这篇文章,正是为了这些希望借助 AI 来提升自身表现、同时不牺牲任何质量的专家级开发者。

当前方法存在的问题

如果你经常使用 AI 智能体,就会知道在一次会话过程中可能会发生以下情况:

  • 你会发现,自己最初的想法很蠢,而存在一个更好的方案
  • 你的智能体可能会“脱轨”,开始做一些你不想让它做的事

我看过一些播放量达数十万的视频,YouTuber 们在其中讲解自己如何发明出由编排器管理的 12 个并行智能体组成的复杂系统,同时做十亿件事。他们如何不再需要亲自参与编码过程。这不过是垃圾内容在撰写和审阅垃圾内容,而 YouTuber 则坐在沙滩上、上厕所,或者毫无理由地啜饮咖啡。

如果你采用这种“氛围”式方法,人类是不可能建立起自己对代码库的理解的。AI 会多次脱轨,而你只有在真正尝试使用这个软件时才会后知后觉地发现。在你不在乎质量的情况下,这种方法或许完全没问题,但如果你确实在乎,就需要一种不同的方法。

问题在于,即便是由 Fable 5 编写和/或审阅的代码,也会很糟糕:

代码能跑,但效率极低且丑陋不堪。如果你身处某种小众领域,模型没有多少训练数据可以依靠,这种情况肯定会更频繁地发生。与某些 CEO 的营销说辞相反,这些模型无法超越其训练数据进行思考。

AI 代码生成——“短牵引绳”方法

这就引出了使用 AI 编程智能体的“短绳法”。

这种方法并非人人都能用。只有专业软件开发者才能使用这种方法。但它的妙处在于,即使你用的不是前沿模型,它也能带来击败 Fable 的效果。

在短绳法中:

  • 你用一个规划阶段来研究任务并制定计划,同时配合类似我的 tasks skill 这样的东西来跟踪进度、把大任务拆解成步骤(这是它与许多“氛围工程”方法的一个共同点;两者的分歧出现在下面几个要点中。)
  • 你绝不使用“YOLO”模式(也就是“危险地跳过权限确认”)
  • AI 绝不会“在你打电子游戏时”替你干活
  • 你使用的编程智能体会通过权限提示展示即将做出的改动的 diff
  • 你像个 20 世纪来的疯子一样坐在那里,真正去分析 AI 提议做出的改动
  • 你始终让自己留在回路中,而不是把自己抽离出去(这是 YouTuber 们鼓吹的趋势)
  • 你把权限提示中的 diff 当作一种手段,让自己对代码库的理解保持最新,并让 AI 处于“短绳”约束之下
  • 每当看到 AI 即将做你不想让它做的事情时,你都要拒绝其权限
  • 你要频繁且按需介入,防止 AI“偏离轨道”
  • 始终把 AI“拴在短绳上”
  • 每个子任务结束时都要提交 commit,以保护你不受 AI 搞砸并删除此前已完成工作的影响(这种情况确实会发生,我见过 Opus 这么干)
  • 最后,我们进行一次审查

如何做 AI 审查

一个只由人类或只由 AI 审查的 PR,其错误会比由人类和 AI 双方共同审查的 PR 更多。

AI 可以被当作 linter 来用。它能快速捕捉常见错误,而人类则能捕捉更高层次的问题以及需要做出的方向性调整。

所以说到审查:

  • 你应该用 AI 来审查每一个 PR。
  • AI 必须能够访问足够的上下文(issue、PR 描述、代码库以及改动内容)。
  • 你应该使用可用的最新最强的模型来进行审查。
  • The PR description must disclose the precise models used (if any) in assisting with the creation of the PR under an “AI Disclosure” heading. This serves multiple purposes:
    1. 它告知维护者使用了 AI。
    2. 它让维护者可以在使用了较弱模型时建议更好的模型。
    3. 它表明你是一个"好人"开发者,而不是试图"偷偷把 AI 塞进来"。
  • 最后,也是最重要的一点,如果 PR 使用了 AI,那么它必须由 PR 的"作者"亲自审查。

最后这一点值得稍微展开说明一下。

AI 辅助的 PR 实际上是来自 AI 的 PR,只不过有人类辅助。因此,提交 PR 的人应当理解自己提交的内容,而如果他们还没有审查过 AI 写的代码,就无法做到这一点。

所以他们必须把自己的 PR 当作别人的 PR 来对待,逐行审查。完成后,他们可以确认自己对 PR 的批准,并请求维护者关注。这建立并展示了他们对代码库的理解。

完

这就是我们在 okTurtles 使用 AI 的方式。你可以阅读我们的官方AI 使用政策。

我们希望这篇文章对你有所帮助。

AI 披露:本帖完全由连接着人类大脑的人类手指撰写。发布前进行了最后一次 AI 风格的“拼写检查”。

捐赠 = 关爱!
没有我们的支持者,我们就无法做我们所做的事。
请花一点时间支持我们的工作。

来源:Hacker News 热门(buzzing.cc 中文翻译) · blog.okturtles.org