击败Fable的短缰绳式AI编码方法
摘要
一位专家开发者发布的文章,分享了“短缰绳”方法,用于在安全关键系统中使用AI编码代理生成高质量软件,强调与自动化的“vibe编码”相比,更注重密切监督和规划。
暂无内容
查看缓存全文
缓存时间: 2026/07/02 23:10
# 击败 Fable 的“短绳”AI 编码方法
来源:https://blog.okturtles.org/2026/07/short-leash-ai-method/
本文是我一年多来研究如何正确使用 AI 代理编写安全关键系统高质量软件的经验总结。
我将主要从软件开发人员、协议开发者以及安全关键软件维护者的角度来撰写本文。
过去一年,我深入研究了 AI 代理。我探索了它们的极限,以及哪些事情可以信赖它们去做,哪些不能。我构建了我们自己的 AI 审查工具,其性能不亚于价值数十亿美元的 AI 审查系统。我也维护了自己的 AI 编码代理 Crush 的自定义分支(https://github.com/taoeffect/crush)。而本文是我提炼出的最佳方法——如果你希望通过 AI 工具创建高质量软件。
有些人讨厌 AI。确实,许多开发者*应该*讨厌 AI(https://crib.social/notice/B6UvD7W49PF8Sj2pEG),因为对于他们学习软件开发来说,AI 是敌人。这篇文章不是写给他们的。这篇文章是写给那些技能已达到在其专业领域超越任何“前沿 AI 模型”的少数专家开发者的。正是为了这些希望在*不牺牲任何质量*的前提下利用 AI 提升效率的专家开发者,我写下此文。
## 当前方法存在的问题
如果你经常使用 AI 代理,你会知道在会话过程中可能发生以下情况:
- 你发现最初的想法很蠢,有更好的方案存在
- 你的代理可能“脱离轨道”,开始做一些你不希望它做的事情
我见过一些播放量数十万的视频,YouTuber 们解释他们如何发明了由编排器管理的 12 个并行代理的复杂系统,同时执行无数任务。他们声称自己不再需要参与编码过程——只是 AI 写屎山、AI 审屎山,而 YouTuber 则坐在沙滩上、上厕所、或无缘无故地啜饮咖啡。
如果使用这种“氛围”方法,你根本不可能建立对代码库的自身理解。AI 会多次“脱轨”,只有当你想真正使用软件时才会发现问题。在你不关心质量的情况下,这种方法或许完全没问题;但如果你*确实在意*,就需要不同的方法。
问题是,即使是由 Fable 5 编写和/或审查的代码,也会有问题:
代码能用,但极其低效且丑陋。尤其当你在某个训练数据稀少的细分领域工作时,这种情况会更频繁地发生。与某些 CEO 的市场宣传相反,这些模型无法超越其训练数据进行思考。
## AI 代码生成 —— “短绳”方法
这就引出了使用 AI 编码代理的“短绳方法”。
并非任何人都能使用这种方法。只有专业软件开发人员才能用。但它的美妙之处在于:即使你没有使用前沿模型,也能获得超越 Fable 的结果。
在短绳方法中:
- 你使用规划阶段来研究任务并制定计划,同时借助类似我的 tasks 技能(https://github.com/taoeffect/tasks)来跟踪进度并将大任务分解为步骤(这与许多“氛围工程”方法有共同点;后续步骤则分道扬镳)。
- 你绝不使用“YOLO”模式(又名“危险地跳过权限”)
- AI 永远不会在你“打游戏的时候”工作
- 你使用一个能通过权限提示显示即将做出的变更差异的编码代理
- 你像 20 世纪的狂人一样坐在那里,仔细分析 AI 建议做出的更改
- 你始终让自己处于循环中,而不是将自己抽离出来(YouTuber 们推崇的趋势)
- 你将权限提示中的差异作为保持对代码库理解和让 AI“拴在短绳上”的方式
- 每当你看到 AI 即将做你不希望它做的事情时,就**拒绝**权限
- 你根据需要频繁介入,防止 AI“脱轨”
- 自始至终,AI 都“被拴在短绳上”
- 每个子任务结束时提交一次,以保护你不受 AI 搞砸并删除已完成工作的影响(这种情况可能发生,我看到过 Opus 这么干)
- 最后,我们进行审查
## 如何进行 AI 审查
一个仅由人类或仅由 AI 审查的 PR,会比**同时**由人类和 AI 审查的 PR 包含更多错误。
AI 可以被视为一个 lint 工具。它能快速捕获常见错误,而人类则捕获更高级别的问题和需要调整的方向。
因此,在审查方面:
- 你应该使用 AI 审查每一个 PR。
- AI 必须拥有足够的上下文(议题、PR 描述、代码库以及变更内容)。
- 你应该使用最新最好的模型进行审查。
- PR 描述必须在“AI 披露”标题下披露在创建 PR 过程中使用的具体模型(如有)。这有多个目的:1. 通知维护者使用了 AI。2. 让他们在模型较弱时建议更好的模型。3. 表明你是一个“好人”开发者,并不是试图“偷偷使用 AI”。
- 最后也是最重要的一点:如果 PR 使用了 AI,那么 PR 的**作者必须审查该 PR**。
最后一点值得进一步阐述。
AI 辅助的 PR 实际上是 AI 提交、人类辅助的 PR。因此,提交 PR 的人类应该理解他们提交的内容,而如果他们不审查 AI 编写的代码,就不可能做到这一点。
所以他们必须像审查别人的 PR 一样对待自己的 PR,逐行审查自己的代码。完成后,他们可以确认自己对 PR 的批准,并请求维护者关注。这建立并展示了他们对代码库的理解。
## 完
这就是我们在 okTurtles 使用 AI 的方式。你可以阅读我们的官方 AI 使用政策(https://github.com/okTurtles/group-income/blob/master/CONTRIBUTING.md#ai-usage-policy)。
希望这篇文章对你有帮助。
*AI 披露:本文完全由连接人类大脑的人类手指撰写。发布前进行了最终的 AI 式“拼写检查”。*
**捐赠 = 热爱!** 没有你们的支持,我们无法做我们所做的事情。请在此刻支持我们的工作(https://okturtles.org/donate/)。
相似文章
问题不在代理,而在缰绳。
本文探讨了AI编程代理如何逐步引发代码库问题,并提供了一系列规则以最小化损害,这些规则适用于终端、桌面和集成开发环境等不同开发环境。
@elvissun: https://x.com/elvissun/status/2065035615800864954
Elvis Sun 分享了一份详细的操作手册,介绍如何使用 AI 编码代理、工程框架和损失函数开发来自主解决复杂工程问题,并展示了如何避免代理作弊等常见陷阱。
加拉帕戈斯群岛上的智能体编程笔记
Dan Luu 反思了他使用 AI 编程代理的经验,指出虽然 AI 可能会编造看似可信但实际错误的复现步骤,但在调试和测试等领域仍能带来生产力提升。他讨论了现代软件开发中信任、自动化和质量之间的平衡。
@Xudong07452910: 最好的 AI Coding 工作流,可能是让 AI 把自己的不稳定性慢慢沉淀成系统。 文章作者用 Fable 开发面向 LLM 时代的源码管理系统,体验很真实:模型很聪明,能读大量代码、提 issue、修问题,但也会犯很低级的错,比如两次…
A blog post discusses the need to complement brilliant but clumsy LLMs with deterministic tools and formal workflows, using the author's experience developing the Beagle SCM with Fable as an example.
规格驱动的智能体编程正在悄然削弱我们监督智能体的能力
作者认为,过度依赖 AI 编程智能体会导致人类开发者逐渐丧失关键的技术直觉和代码审查技能,并提出了诸如强制手动编码日等措施,以维持监督能力。