让AI自动化消失
摘要
本文讨论了将非确定性LLM与确定性工具和正式工作流相结合以自动化AI开发的理念,并以Beagle SCM为例。它建议让LLM自行自动化消失,转而采用可靠的确定性流程。
暂无内容
查看缓存全文
缓存时间: 2026/07/07 17:13
# 消失
原文链接:https://replicated.live/blog/away
## 自动化自身
Escher:StarsA. Karpathy 曾说过,OpenAI 的研究人员通过改进 AI,实际上是在“自动化自身,直到消失”。现在我正用 Anthropic 的 Fable 开发 Beagle SCM,它确实是个才华横溢的模型,能在海量代码中找出瑕疵、提交工单、修复问题。但昨天,它居然两次把 `build/` 目录提交进了项目。它才华横溢,却也笨手笨脚。
由于 LLM 的本质,这个问题并不会随着它们进步而消失。它们往往不够精确,且非确定性。而 Ragel(https://www.colm.net/open-source/ragel/)这个解析器生成器,能瞬间**形式化地**生成一个 10 KLoC 的正确解析器,且具有确定性。那 Claude 呢?我的指令里用全大写写着:永远不要手动解析任何东西。那太折磨人,而且容易出错,千万别做。但它还是试图这么做,所以我定期让它扫描代码库,找出并删除任何手动解析的尝试。这基本能行。
它变得愈发才华横溢,却一点也没少笨手笨脚。
应对一个昂贵、缓慢、笨拙但才华横溢的 LLM 的方法是:给它快速、强大且具有确定性的工具,并将整个流程构建成确定性的形式化工作流。让它更快,让它能在正确的时间看到相关内容,让它少些笨拙,让它能自我纠正。将那种才华横溢但不一致的非确定性,夹在强大的确定性工具和同样形式化的流程之间。
如果我们让这些工具和流程变得可塑,这个故事的趣味性就更大了。这样,如果 Claude 太多次执行某个动作序列,我们就将其自动化。如果它反复在某件事上失败,我们就自动化验证步骤。
本质上,我们让 LLM 自动化自身,直至消失,转而使用简单可靠的确定性工具。
Beagle SCM 允许 LLM 用 JavaScript 脚本编写自己的例程(https://replicated.live/blog/js.html)。虽然所有的重活(https://github.com/gritzko/libdog)都是用 C 实现的且很少改动,但工具层(三明治的下层)和工作流层(三明治的上层)全都是 JavaScript(https://github.com/gritzko/beagle-ext),并且像 `node_modules` 那样从文件系统中读取代码。想象一下 `git` 钩子可以分词几乎任何语言的源文件、检查文件历史和提交历史、交叉验证链接,以及基本上能够访问 `git` 内部可访问的任何数据。那就是 Beagle。
相似文章
@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.
@bibryam: 我作为高级工程师在2026年如何使用LLMs https://seangoedecke.com/how-i-use-llms-in-2026… 最大的AI工作流变化…
一位高级工程师描述了到2026年LLM代理如何演变成编码、调试和代码库研究的可靠协作者,而人类仍负责判断和审查。
低延迟系统中工具制作与自进化LLM代理
本文提出了一种方法,将重复的标准操作流程步骤编译为经过验证、有版本管理的工具,在部署前完成,替代推理时的代码生成。在一个配送中心的报警分类系统中,该方法将p50延迟降低了42%,端到端错误率降低了最多53%。
我发布过的最可靠的数据代理,其 ~90% 是确定性代码。LLM 只负责解析意图和进行对话。不服来辩。
作者认为,AI 代理的可靠性来自于确定性代码,而非 LLM,并分享了在混乱的真实世界数据上构建可信代理的五项关键实践。
尽可能使代理具有确定性的最佳尝试
本文讨论了使基于LLM的代理更具确定性的各种技术,例如黄金数据集、护栏、共识机制、回归测试、编码逻辑和超参数调优,并询问其他成功的方法。