AI 代理的“长期运行”困局:当演示完美,现实却寸步难行
一篇来自 LocalLLaMA 社区的帖子直击痛点——人们真的在运行长期代理吗?答案令人尴尬。当行业为每一次短循环对话的惊艳表现欢呼时,一个更根本的问题被压下:代理一旦需要存活数小时甚至数天,为什么立刻变得脆弱不堪?这不仅是工程问题,更是对 AI 实用主义幻觉的拷问。
核心观点:当前 AI 代理社区正陷入一种危险的自我欺骗:过度沉迷于演示性、短周期的任务,而回避了真正决定其价值的长期运行可靠性问题;不解决状态一致性、崩溃恢复和运行时韧性,代理永远只是高级版宏指令。
AI 代理正处于一个奇特的时刻。一方面,从 Sequoia 的闭门会议到社交媒体的开源分享,无数人正在演示代理如何自主编写代码、安装软件、甚至重构整个代码库。Andrej Karpathy 在他的 Sequoia Ascent 炉边谈话中提到的“menugen”和“install.md”概念,展示了一个极富吸引力的未来:我们无需再写复杂的 bash 脚本,只需用自然语言描述需求,LLM 就能像高级解释器一样精准执行。然而,这份迷人的叙事在一篇来自 LocalLLaMA 社区的真实提问面前,露出了巨大的裂缝:“Are people actually running long-lived agents yet?”
这个问题的分量远超它表面的技术细节。它实质上在问:当掌声散去、演示结束,那些被吹得天花乱坠的代理,是否真的有能力离开精心准备的沙盒,进入充满意外、干扰、崩溃和状态混乱的现实世界?答案,至少从社区反馈和工程实践来看,是否定的。大多数人仍然在有意保持代理的“短命”——它们被设计成一次性的 request/response 工作流,要么作为 copilot 辅助人类决策,要么执行一个明确定义且时间极短的任务。一旦任务周期拉长到小时级别,或者需要跨会话保持状态,几乎所有现成的方案都开始崩溃。
这种工程上的自我设限,根源不在于模型能力不足,而在于一种认知上的懒惰。我们太习惯于将 LLM 视为一个聪明但无状态的“大脑”,每次对话都是从零开始的推理。当任务变长,状态需要持久化,代理需要从崩溃中恢复时,问题的性质就彻底改变了——从“模型能理解我的意图吗”变成了“系统如何保证在断电后,代理还记得它执行到哪一步,以及下一步该做什么”。
这里存在一个关键的误解:许多人将代理与 LLM 本身等同。他们相信,只要模型足够强,代理自然强大。但现实是,代理是一个系统工程,它的可靠性上限由最薄弱的环节决定——通常是状态管理、任务编排和错误恢复。这就像建造一栋大楼,LLM 是最高级的智能建材,但如果建筑规范(即代理框架)只考虑了标准天气,当暴风雨(崩溃和异常)来临时,大楼依然会倒塌。
从技术细节看,长期运行的代理面临的核心挑战是“状态一致性”。当代理的任务涉及与外部系统交互(如调用 API、操作文件系统、执行网络请求),它的内部状态与外部世界之间就产生了复杂的依赖关系。一个简单的例子:代理正在执行一个包含五个步骤的部署流程,在第三步完成后,服务器突然重启。代理如何知道它已经完成了第三步?它需要重新从第一步开始吗?如果重新开始,是否会导致重复操作(如重复创建资源)?这些问题在短周期任务中几乎不存在,因为任务要么成功完成,要么重试整个流程——但在需要数小时的任务中,每一次重试的代价都可能巨大。
更有甚者,代理的“幻觉”问题在长期运行时会被放大。一个短周期内的幻觉可能只是生成了一段无意义的代码,但一个在长时间跨度内积累的幻觉,可能导致代理构建出完全错误的内部世界模型,并基于这个错误模型做出后续所有决策,形成一种“错误链式反应”。修正这种错误远比修正单次输出困难,因为它需要回滚整个状态,而目前几乎没有框架具备这种能力。
那么,为什么社区仍然在回避这个问题?一个可能的解释是,长期运行代理的挑战暴露了当前 AI 工程化路径上的一个根本性矛盾:我们习惯于用“演示驱动开发”,即优先确保代理在精心设计的场景中表现惊艳,以此吸引投资和关注。而可靠性、韧性这类“无聊”的工程属性,则被推后处理。这种策略在创业初期有效,但当代理开始触及生产环境,这种欠债就会以事故的形式集中爆发。
另一个不可忽视的原因是,解决长期运行问题需要跨学科的知识融合。它不再只是机器学习或自然语言处理的问题,而是涉及分布式系统、数据库理论(尤其是事务和状态管理)、甚至形式化验证。一个只懂 Transformer 的开发者,很难设计出一个能在断电后优雅恢复的代理架构。这导致大部分开源项目在达到“演示可行”的阶段后就停滞了,因为后续的工程难度陡增,且回报不明显——毕竟,修复一个崩溃恢复 bug 不会像演示一个新功能那样引人注目。
当然,也有乐观的信号。Cloudflare Tunnel 类工具的出现,本质上是将“网络连接可靠性”外包给了更专业的系统,这为代理的长期运行提供了底层基础设施保障。类似地,Tailscale 等工具简化了安全持久连接的建立。但这些只是解决了“连接”层面的问题,远未触及状态管理和任务编排的核心。
真正的突破可能需要来自两个方向:一是对代理框架的重新设计,使其从“无状态对话”模式转向“有状态事务”模式,引入类似数据库的 checkpoint 和回滚机制;二是对 LLM 本身进行改造,让模型能够显式地输出“状态变更日志”,而不是隐含在推理过程中。但这两者目前都处于极其早期的探索阶段。
讽刺的是,就在社区为代理的未来狂欢时,那些真正在生产环境中运行代理的团队,往往选择了一条截然不同的路:他们将任务极度碎片化,让每个代理只存活几秒钟,让执行结果写入持久存储,并由一个独立的编排器负责跨代理的状态协调。这实际上回归了微服务架构的理念,只是用 LLM 替代了部分逻辑。而“一个代理包打天下”的浪漫愿景,至少在工程上,仍然是一个遥远的承诺。
最后,Karpathy 在 Sequoia 谈话中提到的“锯齿能力模式”(jaggedness)——即同一个模型既能优雅地重构十万行代码,又能建议你开车去洗车——或许也揭示了长期运行代理的另一个弱点。模型在熟悉的、经过强化的领域(如代码生成)上表现稳定,但在边界模糊或训练数据稀疏的领域(如长期任务规划)上则容易脱轨。这种不均衡的能力分布,使得代理在长期运行中几乎必然会遭遇“能力悬崖”:它可能在 90% 的时间里完美运作,但一旦遇到那 10% 的模糊地带,整个任务就会螺旋式下滑。
因此,当我们追问“人们是否真的运行长期代理”时,得到的沉默说明了一切。社区还没有准备好。铺天盖地的演示让我们误以为代理已经成熟,但真正的考验在于,当一个代理需要连续工作一周,期间经历三次系统重启、两次网络中断和一次 API 版本变更时,它还能不能从它停下的地方重新站起来。这不仅是技术问题,更是对 AI 实用主义的一次诚实检验。
参考来源
- Fireside chat at Sequoia Ascent 2026 from a ~week ago. Some highlights:
- The first theme I tried to push on is that LLMs are about a lot more than just speeding up what existed before (e.g. coding). Three examples of new horizons:
- 1. menugen: an app that can be fully engulfed by LLMs, with no classical code needed: input an image, output an image and an LLM can natively do the thing.
- 2. install .md skills instead of install .sh scripts. Why create a complex Software 1.0 bash script for e.g. installing a piece of software if you can write the installation out in words and say "just show this to your LLM". The LLM is an advanced interpreter of English and can intelligently target installation to your setup, debug everything inline, etc.
- 3. LLM knowledge bases as an example of something that was *impossible* with classical code because it's computation over unstructured data (knowledge) from arbitrary sources and in arbitrary formats, including simply text articles etc.
- I pushed on these because in every new paradigm change, the obvious things are always in the realm of speeding up or somehow improving what existed, but here we have examples of functionality that either suddenly perhaps shouldn't even exist (1,2), or was fundamentally not possible before (3).
- The second (ongoing) theme is trying to explain the pattern of jaggedness in LLMs. How it can be true that a single artifact will simultaneously 1) coherently refactor a 100,000-line code base *and* 2) tell you to walk to the car wash to wash your car. I previously wrote about the source of this as having to do with verifiability of a domain, here I expand on this as having to also do with economics because revenue/TAM dictates what the frontier labs choose to package into training data distributions during RL. You're either in the data distribution (on the rails of the RL circuits) and flying or you're off-roading in the jungle with a machete, in relative terms. Still not 100% satisfied with this, but it's an ongoing struggle to build an accurate model of LLM capabilities if you wish to practically take advantage of their power while avoiding their pitfalls, which brings me to...
- Last theme is the agent-native economy. The decomposition of products and services into sensors, actuators and logic (split up across all of 1.0/2.0/3.0 computing paradigms), how we can make information maximally legible to LLMs, some words on the quickly emerging agentic engineering and its skill set, related hiring practices, etc., possibly even hints/dreams of fully neural computing handling the vast majority of computation with some help from (classical) CPU coprocessors. - https://nitter.net/karpathy/status/2049903821095354523#m
- Are people actually running long-lived agents yet? If so, how are you handling restarts and state consistency? - https://www.reddit.com/r/LocalLLaMA/comments/1t5gx4d/are_people_actually_running_longlived_agents_yet/
- The House That Hungers: Part 1 - https://www.reddit.com/r/TalesFromTheCreeps/comments/1t4jxhm/the_house_that_hungers_part_1/