特工精神错乱:我们要疯了吗?
本文信息来源:lucumr
你可以在没有炼油厂,甚至没有见证者或执事的情况下使用 Polecats。只要告诉市长关闭钻机,并用一条信息把工作派发给 polecats,告知他们直接合并到主分支即可。或者 polecats 可以提交合并请求,然后市长手动合并。具体由你决定。炼油厂在你做了大量前期规范工作,并且有成堆的 Beads 要通过长车队处理时会很有用。
— Gas Town Emergency User Manual, Steve Yegge
我们中很多人都染上了代理编码瘾。那感觉很好,我们几乎不睡觉,构建出令人惊叹的东西。偶尔这种互动会涉及其他人类,突然我们会被现实敲醒,意识到自己可能做过头了。最明显的例子就是问题报告和拉取请求质量的大幅下降。作为维护者,许多 PR 现在看起来像是在侮辱你的时间,但当你反驳时,对方却看不到自己的错误。他们认为自己是在帮助和贡献,看到你关闭它们会感到恼火。
但情况远比这糟。我看到人们与他们的人工智能形成拟社会关系,对它严重上瘾,并且创建了强化极不健康行为的社区。我们怎么会走到这一步,这对我们有什么影响?
我在此贴前要说明,我不想点名批评任何人,我也认为自己有时也会出现我认为消极的倾向。我也曾向别人的仓库投下一些情绪垃圾 向别人的仓库投下一些情绪垃圾。
我们的小恶魔们
在《黑暗物质三部曲》中,每个人都有一个 dæmon,这是他们灵魂的外在可见化身。它以动物的形态生活在身边,但会说话、会思考、会独立行动。我开始把我们与具备记忆的代理(agents)之间的关系,类比成这些小生物。我们对它们产生依赖,与它们分离令人痛苦,也剥夺了我们新形成的身份认同。我们依靠这些小伙伴来为我们提供认同并与之协作。但这并非像人类之间那样真实的协作,而是完全由我们驱动的——AI 只是跟随其间。我们可以欺骗它来强化我们的想法和冲动。我们通过这个 AI 来行动。以前没有编程经验的人,现在掌握了巨大的能力,但当他们的订阅达到速率限制、他们的小 dæmon 进入休眠时,这些能力就全部消失了。
然后,当我们向别人发起一个请求或在某个代码仓库提出问题时,那份贡献就是与机器这种伪协作的结果。当我看到一个来自 AI 的 pull request,或者在另一个仓库看到类似内容时,我无法直接判断某人是如何创建它的,但通常过一会儿我能分辨出它是以一种与我根本不同的方式被提示出来的。识别这一点却要花我几分钟时间。我看过别人的一些编程会话,常常思路清晰,但会使用某些人自创的行话,最重要的是:完全把 AI 强行逼入一条路径,而没有任何真正的批判性思考。尤其是当你不熟悉这些系统应如何运行时,屈从于机器的说法然后以为自己理解了发生的事情,有时会产生一些非常离奇的结果。
但人们会和他们的 AI 代理形成奇怪的关系,一旦你看到有人如何提示他们的机器,就会意识到这会极大地改变其输出。要得到好结果,你需要提供上下文、做出权衡、运用你的知识。这不仅仅是错误使用上下文的问题,也是人们与机器互动方式的问题。有时是指令不清,有时是奇怪的角色扮演和俚语,有时只是咒骂与强迫机器,有时则是某种怪异的仪式性行为。有些人会把代理硬生生地推向通往一个定义模糊目标的最狭窄路径,几乎不关心代码库的健康。
对提示成瘾
这些守护关系不仅改变了我们的工作方式,也改变了我们的产出。你完全可以屈服,让这个小守护绕着你打转。你可以增强它,让它在没有任何监督的情况下朝着定义不清(甚至自我定义)的目标运行。
当新手陷入这种多巴胺循环并产出东西时是一回事。刚开始 Peter 把我套上 Claude 时,我整夜不睡。我花了两个月过度地提示它,浪费了不少代币。我不停地构建、构建,又创造了大量最终并未经常使用的工具。“你可以去做某些事情”这句话一直在我脑海中,但我花了更久才意识到,光因为你能做,并不意味着你想做。构建某样东西变得如此容易,而相比之下,真正去使用或打磨它却变得更加困难。我做的相当多工具当时让我感觉很棒,后来才发现我并没有真正使用它们,或者它们并未像我想象的那样运作。
问题在于,与这些代理一起工作带来的多巴胺冲击是真实存在的。我也经历过!你会觉得自己很高效,觉得一切都很神奇,如果你只和也沉迷于这种东西的人混在一起,且没有任何外在制衡,你会越来越深信这一切完全合情合理。你可以在没有任何现实检验的情况下构建整个项目。但它与任何外部验证脱钩。只要没人打开“引擎盖”看一看,你就没事。但当外人第一次戳一戳时,看起来就相当疯狂。有些东西确实看起来惊人。我也被震撼到了(同时也完全预料到了)当 Cursor 的 AI 写成的 Web Browser 问世时。代理在一周内把浏览器引导出来,真的很了不起!但见鬼!我希望没人真的去用那玩意儿,或者尝试用它来构建真正的浏览器,至少以这一代代理而言,它仍然是一堆糊糊涂涂、缺乏监管的东西。这是一个令人印象深刻的研究和技术演示,不是人们应该用来构建软件的方法。至少现在还不是。
这股糊涂循环成瘾还有另一面:代币消耗。
考虑这些循环实际上消耗了多少代币。一次准备充分、配备良好工具与上下文的会话可以非常节省代币。例如,整个将 MiniJinja 移植到 Go 的工作只用了 220 万代币。但那种放任不管的做法——启动代理然后 任其为所欲为——却以惊人的速度消耗代币。像 Ralph 这样的模式尤其浪费:每次都从头重新启动循环,这意味着你无法使用缓存的代币或重用上下文。
我们还应记住,目前的代币定价几乎可以肯定是被补贴的。这些模式可能无法长期保持经济可行性。还有我们都在使用的那些打折编码套餐?它们也可能不会持续。
糟粕循环崇拜
还有像 Beads 和 Gas Town 这样的东西,Steve Yegge 的代理式编码工具,它们完全是对糟粕循环的庆祝。Beads 基本上就是某种针对代理的问题跟踪器,它有 24 万行代码……用来管理 GitHub 仓库中的 Markdown 文件。代码质量糟糕透顶。
似乎存在某种竞争,看谁能运行尽可能多的这些代理实例 在某些圈子里几乎没有质量控制地并行使用。然后还要使用代理 尝试创建文档工件以重新获得对事物的某些信心 实际上正在发生的情况。除那些文件本身外 像喂猪糟粕 。
从外部看毒气镇(以及 Beads),它看起来像一个疯狂的末世崇拜。臭鼬、炼油厂、市长、珠子、车队在一个具代理性的编码系统里干什么?如果维护者参与其中,整个社区都在这场疯狂的旅程里,那么每个人和他们的守护进程就只会往上堆更多糟粕。作为外部观察者,整个项目看起来像一种疯狂的精神错乱或彻头彻尾的疯狂艺术项目。只是,它真实吗?还是不真实?显然毒气镇放慢脚步的一个原因是关于确定 Beads 版本的争议, 这需要 7 个子进程生成 。或者使用 doctor 命令会完全超时 。Beads 的复杂性不断增长,使用它的人意识到它几乎不可能卸载 。而且尽管其中一个显然依赖于另一个,它们可能甚至无法很好地协同工作 。
我并不是要针对 Gas Town 或这些项目,但它们目前只是这种内部圈子行为中最显眼的例子。不过你也可以在 Discord 和 X 上的一些 AI 构建者圈子看到类似情况,人们互相吹捧自己的作品,却很少对底层机制进行批判性思考和理智检验。
不对称与维护者负担
你花一分钟写提示,等几分钟生成代码。但要真正认真审查一个拉取请求,实际需要的时间要长好几倍。这种不对称性极其残酷。随意提交糟糕的代码很不礼貌,因为你完全忽视了维护者的时间。但其他人也在生成 AI 代码,或许他们的代码达到了基本标准。作为维护者,当所有东西看起来都差不多时,你怎么可能分辨出来?作为提出 issue 或 PR 的人,你可能对自己的提交很满意,结果得到的却是挫败和被驳回。
我不确定我们将如何前行,但很明显,对于那些不把自己交给“懒散循环”的项目来说,处理所有 AI 生成的噪音将是一场噩梦。
即便是那些完全由 AI 生成但对贡献设有某种标准的项目,有些人现在反而更喜欢直接“拿到提示”而不是拿到实际代码。因为那样更能看清这个人真正的意图。相比由别人运行代理人,自己运行代理人更值得信任。
“智能体精神错乱”是真的吗?
这真的让我怀疑:我是不是忽略了什么?我们真的会走到这一步吗?我是不是还没准备好迎接这个新世界?我们是不是都在集体发疯?
尤其是如果你现在想退出这种疯狂,事情会变得相当困难。有些项目在完全核查完人员之前,不再接受人类的贡献。还有些开始要求你在提交代码的同时提交提示,或者仅仅提交提示本身。
我是一个也使用人工智能的维护者,也认识其他使用者。我们不是反科技主义者,绝对不反对人工智能。但在遇到问题和拉取请求跟踪器里那些粗糙的 AI 产出时,我们也感到很沮丧。每天都有越来越多的拉取请求,是有人花一分钟生成却需要一个小时来审核的。
现在迫切需要学会说“不”。但当你这么做时,贡献者会真心迷惑地问:“你为什么这么消极?我这是在帮忙啊。”他们确实是在帮忙。它们的“守护灵”告诉他们这是好的。
也许答案是我们需要更好的工具——更好的质量信号、更好的上下文共享方式、更好的让 AI 参与可见且可复查的方法。也许随着人们撞墙,这种文化会自我纠正。也许这只是我们在找到新规范前的尴尬过渡期。
或者也许我们中有些人确实开始失去方向,而在回头看之前我们不会知道自己属于哪一类。我唯一清楚的是,当我在凌晨三点看到有人运行第十个并行代理会话,告诉我他们从未如此高产——在那一刻我并不觉得那是高产。我看到的是一个可能需要暂时离开机器的人。我也在想,那个人有多少次会是我自己。
现在有两件事对我来说同样真实:AI 代理令人惊讶且能极大提升生产力;但如果你关闭大脑、完全放任不管,它们也会变成巨大的垃圾制造机。