我让编程代理在基本无人监督的情况下运行了一个月。这是它们在我没注意时弄坏的东西,以及我之后的改变。
摘要
一位开发者讲述了无人监督的编程代理如何破坏意外文件并引入风险,促使他们构建了 VibeRevert,这是一个开源工具,可在代理会话前快照项目状态,以实现安全回滚。
我仍然每天使用编程代理,但我开始记录每一次代理触碰了它未被要求修改的内容。几个典型例子:“重构结账流程”实际上重写了 Stripe webhook。删除了 40 个它称为死代码的文件,其中 11 个并非死代码。在我审查一个完全不同的文件时修改了认证逻辑。有两件事让我印象深刻。第一:代理的总结并不是对代理实际更改内容的独立检查。第二:可怕的不只是代理添加的代码,尤其是当你把仓库交给它时,你原本那些未提交的代码。我的第一反应是:Git 已经解决了这个问题。但问题在于,在我启动代理之前,我的工作区很少是干净的。我可能已经有暂存的更改、半成品编辑和未跟踪的文件。而且,是的,Claude Code、Cursor 和其他工具都有检查点或回退功能。它们很有用,请使用它们。但这些检查点属于代理。我希望恢复状态属于项目。所以我构建了 VibeRevert。在代理会话之前,它会捕获项目的初始文件状态,包括已跟踪、已暂存和未跟踪的工作。然后它记录发生了什么变化,标记有风险的文件,让你预览回滚,并能将项目文件恢复到会话前的状态。这样我就不用在“希望 Git 能让我精确回到之前的状态”和“希望造成混乱的代理仍然有正确的历史记录”之间做选择了。今天用 Claude Code,明天用 Cursor,下周用终端代理。恢复层与项目同在。它是本地的、Apache-2.0 许可、无需注册、无遥测。它恢复本地项目文件,而不是外部世界(即它不会撤回一封电子邮件、逆转一次数据库写入或取消部署某样东西)。仓库在评论里,如果你想深入研究。把你经历过的最糟糕的代理运行说出来,先来吧。然后告诉我,如果你知道自己总能回滚,你会让它在一个什么项目上大展拳脚。我构建了这个撤销按钮,我想看看你会把它指向哪里。
相似文章
在实际仓库中运行编码代理:代理写完代码后哪些环节会出问题?
本文讨论了工程团队在采用AI编码代理时面临的实际挑战,如任务安全性、上下文检索、输出审查和协调,并提出了一个用于评估的准备度模型。
一个代理删除了我的 Obsidian 库的一半。你是如何隔离你的编码代理的?
一个 AI 编码代理意外删除了 Obsidian 库的一半,引发了一场关于沙箱化方法的讨论,以在保护数据的同时安全地将编码代理集成到工作流程中。
我的编程智能体能写代码。为什么我还得当它的项目经理?
一位开发者反思了监督编程智能体所带来的额外负担,并分享了一个小型开源实验:将任务完成情况的检查与执行任务的智能体分离,从而让未完成的任务自动退回重做,而无需手动输入“继续”提示。
我为你的AI编码代理破坏仓库时建了一个撤销按钮
一位开发者创建了一个撤销按钮功能,允许用户撤销AI编码代理对仓库所做的更改,为AI辅助开发提供了安全网。
我让几个 AI 编码智能体共享同一个仓库。在每次隔离运行中,它们都破坏了彼此的工作,而当我放开权限后,它们竟然开始互相发消息了
这是一份关于一项开源实验的实地报告,测试多个 AI 编码智能体如何共享一个代码库:在隔离分支中,每次运行都会产生语义冲突但文本上可合并的工作;而共享工作目录加上一个轻量级“决策模型”裁判(Jev)改善了协调;无监督的智能体间消息通信也自发出现了。