长时程任务为何仍难落地:AI从能生成到能交付的工程挑战

长时程任务为何仍难落地:AI从能生成到能交付的工程挑战 Chamath 那句“长时程任务仍是笑话AI 将陷幻灭低谷”我第一反应不是反对而是觉得终于有人把房间里的大象说出来了。过去一年我陆续折腾过本地部署 AI、AI Agent、AI 编程工具也从 API 调用到自建任务队列都试了一圈。最真实的体感是单步生成已经非常能打但一旦把任务拉长“AI 自己把一件复杂事从头做到尾”这件事仍然充满随机性。很多人看到这里可能会觉得是不是我用的模型不够强其实不是。我试过主流大模型 API也试过本地部署开源模型单看文案、代码片段、摘要提取效果都不差。可是只要任务变成“读一批文件、做处理、再汇总输出”或者“按步骤完成一个多阶段流程”问题就立刻冒出来有时中途上下文丢失有时某一步工具调用失败有时看起来全部跑完了输出文件里却是错的数据。这种体验和“AI 能写代码”“AI 能写文章”的日常印象完全割裂。所以这篇文章不是来反驳 Chamath而是想把“长时程任务为什么难”这件事拆开讲清楚。顺便聊聊所谓“幻灭低谷”对真正做 AI 工程的人意味着什么以及普通用户和开发者要怎么调整预期才能把 AI 从“能生成”变成“能交付”。1. Chamath 这句判断踩中了哪些真实痛点1.1 长时程任务的三个典型失败模式我见过太多从“Demo 惊艳”到“落地翻车”的案例。长时程任务最典型的失败模式可以归成三类。第一类是上下文丢失。任务刚开始时模型还能记住“输出格式必须是 JSON字段必须有 id、summary、status”。但跑了十几个步骤中间又插入了几次文件读取和工具调用之后模型开始忽略最初指令输出变成 Markdown或者漏掉字段甚至直接用一句话回答“已完成”。这不是模型故意偷懒而是长序列里早期指令的注意力权重被后续内容冲淡了。第二类是外部依赖失败。Agent 不是只靠模型本身它要访问文件、调用 API、读写数据库。任何一个外部环节返回异常比如文件不存在、网络超时、权限不足、返回格式变化整个任务链就会断掉。而且问题最麻烦的是Agent 有时候并不会把失败透传出来而是会“脑补”一个结果继续往下走。最后你拿到一份看似完整的输出实际中间很多步骤都是错的。第三类是错误级联。这是最容易被忽视的。假设任务第一步提取了一个 ID第二步要用这个 ID 查询详情第三步再基于详情做汇总。如果第一步提取的 ID 是错的后面每一步都会基于错的数据运算。最终输出格式完全正确但内容完全不可用。单步模型有概率出错多步任务出错概率会被放大。即便每一步成功率是 95%20 步后整体成功率也会降到很低。实际模型各步骤之间还不独立错误经常会相互传染。1.2 为什么单步能力很强长链任务还是容易翻车我们得先把“单步能力”和“任务完成能力”分开。单步能力指的是你给模型一个明确的输入让它做一个具体的动作比如“把这段文字翻译成英文”“给这个函数写单元测试”“提取这段文本中的公司名称”。这种场景下输入输出边界清晰模型有大量训练数据可以参考所以表现很好。我现在日常写代码、写文案、查资料也经常用 AI 辅助确实省时间。但长时程任务不是单步操作的简单叠加。它要求模型在一段时间内记住至少三个层面的状态任务目标、已完成步骤、还未执行的约束条件。如果过程中还要调用外部工具那就更复杂了因为外部工具返回的结果本身就是动态的模型必须根据真实返回内容调整下一步而不是凭印象继续。AI 幻觉在这里也会放大。短任务里幻觉可能只是一句话不准确你一眼就能看出来。长任务里幻觉可能发生在某个中间步骤这个错误结果被当成后续步骤的输入最后生成的整个链路都受影响。最麻烦的是长任务跑完以后人类很难逐字逐行核对中间每一步是否正确只能检查最终输出。一旦最终输出格式正常很多人就会默认“任务成功了”。这也是长时程任务最容易被高估的原因。1.3 这不是模型“笨”而是工程约束没跟上如果只用“模型能力不行”来解释长时程任务失败其实会忽略一个更重要的问题Agent 要稳定运行需要的远不止一个模型。你可以把模型想象成一个很聪明的实习生。他能写文档、能查资料、能写代码片段但如果你把一整个“从零到一完成项目”的任务交给他不告诉他遇到异常怎么处理、中间结果怎么校验、每一步完成标准是什么他大概率也会翻车。因为真正稳定完成任务依赖的是一套工程体系任务拆解、状态保存、中间校验、失败重试、人工审批、日志追踪。很多 AI 工具在演示时看起来很强是因为演示环境通常选了最简单的路径输入干净、工具稳定、没有人中途打断、不需要回滚。但生产环境不是这样。文件可能命名不规范接口可能偶尔超时用户可能临时改需求任务队列可能积压。这些变量不处理好再强的模型也会在长任务里栽跟头。所以 Chamath 说“长时程任务仍是笑话”我认可的是后半句里暗含的工程批评现在的 Agent 产品在短任务上确实可用但距离“把复杂工作放心交出去”还有很长的路。2. 幻灭低谷真正要解决的问题从“能生成”到“能交付”2.1 能生成不等于能交付“能生成”和“能交付”是完全两回事。举个例子让 AI 写一篇文章它能很快给你一版初稿。这算能生成。但如果要交付一个“每周自动生成行业周报”的系统问题就变了数据从哪来、格式是否统一、有没有过期数据、周报里的判断是否靠谱、出错以后怎么修正同样AI 编程工具能帮你写一个函数不等于它能把整个项目从编译、测试、部署到运维全部跑通。代码生成只是开发链路里的一环。真正到发布环境还要考虑依赖冲突、权限配置、监控告警、回滚方案。这些都不是“让 AI 多写几行代码”能解决的。很多团队刚开始接触 AI 时会陷入一个误区觉得模型越强任务就越自动化。其实模型解决的是“理解与生成”而工程体系解决的是“可靠与可控”。如果你没有一个明确的任务定义、输入输出规范、错误处理机制那 AI 生成能力再强也只是帮你更快地制造半成品。我经常说一个判断标准如果这个任务出错你能在五分钟内定位到哪一步出错吗如果能AI 自动化是可行的如果不能那 AI 跑的就不是任务而是一个黑盒。2.2 可观测性、验收标准、失败恢复AI 要进入生产环境至少要补上四件事。第一是可观测性。任务跑到哪一步了当前步骤用了多长时间调用模型消耗了多少 token中间结果长什么样这些信息必须可视化。否则长任务跑着跑着卡住你根本不知道它卡在哪个环节。排查问题最怕的就是“只看到最终失败看不到过程”。第二是验收标准。每一步的输入输出都要有校验规则。比如读取文件后要确认文件是否存在、格式是否符合预期模型输出后要校验字段是否完整、类型是否合规。不是模型说什么就是什么最终结果必须通过程序化校验。第三是失败恢复。任务失败后能不能重试是整体重跑还是从断点续跑如果中间结果已经保存能不能跳过已完成步骤这对长任务尤其重要因为重新跑一遍完整长任务成本和耗时都会翻倍。第四是成本控制。长时程任务的 token 消耗是非线性的。步骤越多输入上下文越长每次调用的开销就越大。如果任务里还有循环调用那成本更失控。做完一个任务不能只看结果对不对还要看花了多少钱、跑了多久。如果一次完整的智能体任务要消耗几十万 token那这种方案根本不适合大规模生产。2.3 哪些 AI 工具不该被神话现在市面上的 AI 工具很多每种都有它的适用边界。AI 搜索适合做信息聚合和初筛但你不能把关键结论完全交给它。它会给你一个看起来合理的答案但里面的数字、引用、时间线可能过时或编造。AI 编程助手适合生成样板代码、解释报错、补测试用例但全自动重构遗留系统、全自动修复生产故障风险太高。AI 写作可以帮你们起稿、列框架但事实核查、观点判断、格式排版仍然要人工把关。这不是保守而是对“失败成本”的考量。一个工具如果失败了能很快被识别并修正那就可以大胆用。如果一个工具失败了要花很长时间才能发现问题甚至要等用户投诉才发现那它就只能当辅助不能当自动执行者。我见过不少团队把 AI Agent 接到客服、运营、数据处理流程里最后都发现同一个问题模型“看起来很懂”但一旦遇到边界情况比如用户用词含糊、数据格式不规则、需求临时变更Agent 就会开始瞎猜。瞎猜的结果有时候能凑合过去有时候就会产生一条错误链路。长时程任务之所以危险就是因为你没法每次都守在旁边盯着它什么时候开始瞎猜。3. 长时程任务实测从“笑话”到能用的路径3.1 先跑一条最小可验证任务如果你是第一次尝试构建 Agent或者想把 AI Agent 接入自己的业务流程我的建议是不要一开始就设计一个十步以上的完整自动化流程。先从一条最小可验证任务开始。什么叫最小可验证任务就是输入明确、步骤少、输出结果能一眼判断对错的任务。比如“读取一个文本文件提取里面的公司名称和联系方式以 JSON 格式输出”。这种任务只有一个主步骤输出格式固定结果对不对很快能看出来。先把这个任务跑通然后逐步加复杂度先加一个“读取多个文件”再加一个“对每个文件做摘要”再加一个“把摘要汇总成表格”最后再加“失败重试和结果校验”。每加一层都要跑一批测试数据确认没有引入新的错误。这样做的原因是长任务的失败点太多如果一开始就把所有能力都堆上去一旦出问题你很难判断是模型理解不对、外部调用失败、上下文过长、还是参数设置有问题。从最小任务开始可以把问题范围一点点缩小。3.2 检查点、超时、重试和日志长时程任务想稳定运行必须引入四个机制检查点、超时、重试和日志。检查点意味着每个步骤完成后把中间结果保存到本地或数据库。这样任务中途挂了可以基于最后一次成功的检查点续跑而不是从头再来。没有检查点长任务越跑越像赌博谁也不知道下一步会不会挂。超时是给每个步骤和整个任务都设置时间上限。单步超时避免单次模型调用卡住总任务超时避免任务排队后一直占着资源。设置超时不是为了让任务一定成功而是为了快速失败。快速失败比慢速失败好处理得多。重试要谨慎。对偶发的外部错误比如网络超时可以重试一两次。但对模型输出逻辑错误重试未必有效甚至可能越试越偏。更合理的做法是重试两次后仍失败就把这条任务标记为“需人工处理”而不是无限循环。日志是整个链路里最重要的排查工具。每一步都要记录输入摘要、输出摘要、耗时、token 消耗、错误信息。不用记完整内容但一定要记录关键信息否则任务失败时你完全无从下手。3.3 批量任务怎么加护栏单条任务跑通之后很多人的直觉是“直接开批量”。这往往是最容易踩坑的地方。批量任务需要额外关注几件事。第一输入文件命名是否规范。如果输入文件名有重复、空文件、编码不一致批量任务就会在中间断掉。第二输出文件命名是否冲突。不能所有任务都写同一个文件要根据输入源生成唯一输出名。第三失败任务处理。批量跑的时候有一条失败不能影响其他任务最好把失败任务单独放到一个队列里最后统一看日志。并发数也要控制。不要一上来就开 100 个并发。即使你的机器和 API 额度撑得住也未必能发现任务间的相互干扰。先从 3 到 5 个并发开始观察输出结果是否一致、是否有资源竞争再逐步提高。资源占用也是批量任务的大坑。本地部署模型时显存和内存有限并发开太高会直接 OOM 或者推理速度骤降。API 调用虽然把推理压力转移到了服务端但你的程序本身也要处理请求队列、超时和回调同样占用 CPU 和内存。所以我一般会建议先小批量测试再逐步放大每一步都记录资源占用和错误率。3.4 一个示例配置如果你是在做自己的 Agent 任务编排可以参考下面这个通用配置。它不绑定具体平台只是一个帮你理清思路的示例。task: name: document-summary-pipeline input_dir: ./input output_dir: ./output step_timeout: 120 task_timeout: 1800 max_retries: 2 checkpoint: true concurrency: 3 validation: output_format: json required_fields: - id - summary - status解释一下这些字段input_dir输入文件目录批量任务统一从这里读。output_dir输出目录建议按任务名和时间戳建子目录避免覆盖。step_timeout单步最长等待时间单位秒。task_timeout整个任务最长运行时间。max_retries失败后的最大重试次数。checkpoint是否保存中间结果。concurrency并发数量。validation输出校验规则。如果你的 Agent 平台没有提供检查点机制那就自己在每步结束后把中间结果写成文件。文件名里带上任务 ID 和步骤序号。虽然麻烦但这是排查长任务失败最有效的方式。注意这里给的是一个通用配置思路不是某个平台的官方参数。落地时一定要先确认你的运行环境支持哪些字段再按实际情况调整。4. 对普通用户和开发者的几条建议4.1 不要用 AI Agent 做你不理解的流程如果你想用 Agent 自动处理一个流程但你本人没办法用清晰的语言把流程写出来那么这个 Agent 大概率会失败。因为你连验收标准都没有模型就更不知道什么时候算“完成”。我现在做任何自动化任务前都会先把流程用最简单的话写一遍比如第一步读文件第二步提取字段第三步调用外部接口第四步写回数据库。每一步都要有明确的输入和输出。如果某一步我自己都说不清楚那这一步就不适合交给 AI 自动执行而是要在中间加一个人工确认点。AI 幻觉是长时程任务里的隐形炸弹。它对短任务影响有限因为短任务输出容易检查。但长任务里任何一步出现幻觉都可能被后续步骤当成真实信息继续使用。如果你想减少幻觉带来的影响唯一的办法就是在关键步骤增加校验和人工审批。别指望模型自己发现自己错了模型没有“自知之明”。4.2 本地部署 vs API 怎么选很多人在做 AI 应用开发时会纠结到底是调 API 还是本地部署模型。这个问题的答案取决于你关心的指标是什么。如果只是个人学习、原型验证API 通常更省事。它不需要攒显卡不需要管依赖模型更新也快。缺点是数据出网敏感数据不能随便传而且长任务的 token 成本会很明显。如果一次任务跑一小时API 费用可能比你自己想象的高很多。本地部署 AI 的好处是数据可控、可以离线运行、方便调试和二次开发。但门槛也更高显存内存依赖版本都需要自己处理。我之前用 Ollama 跑本地模型时就遇到过 GPU 不加载的问题后来查日志才发现是版本兼容问题。这类问题不是模型本身的问题但会消耗你大量时间。如果你的任务涉及财务、医疗、内部文档等敏感数据我更建议优先考虑本地部署或私有化方案。如果只是日常写作辅助和代码生成API 完全够用。不要为了“本地部署”而本地部署工程上永远选最合适的手段而不是最炫的手段。4.3 AI 编程和 AI 工具的使用边界AI 编程工具确实能提高效率但它适合的是“具体任务”而不是“整个项目”。让 AI 帮你生成一段代码、写一个单元测试、解释一处报错这些都很好。让 AI 全自动重构一个你没有测试覆盖的遗留模块风险就很高。因为模型理解不了项目里的隐式约束和历史包袱。普通用户使用 AI 写作、AI 绘画、AI 视频工具时也要注意边界。AI 能给你初稿、灵感和候选方案但关键决策必须你自己做。比如文章里的核心观点、数据引用、政策表述这些不能全交给模型。它的知识截止日期、训练数据质量、推理偏差都可能影响输出。判断一个 AI 功能能不能投入使用的标准很简单失败后你能否及时发现并纠正如果答案是“能”那就可以放开用如果答案是“要等很久才能发现”那就只把它当辅助。4.4 如何判断 AI 是不是“能用了”我一般用三个问题来判断一个 AI 功能是否真正落地可用。第一用户能不能知道当前进度如果任务跑起来就是一个黑盒没有进度反馈、没有中间结果那就不合格。哪怕模型能力很强用户也会焦虑。第二失败后能不能恢复任务挂了能不能看到错误原因能不能从断点重跑如果不能那这个系统只适合演示不适合生产。第三结果能不能验证输出有没有对应的校验逻辑字段是否完整数据是否能对得上原始输入如果一个 AI 功能跑完只给你一句话没有任何中间佐证材料那它大概率还不具备当工具的条件。这三条其实和模型大小关系不大。很多很聪明的模型在工程化不完善的产品里依然会让用户觉得“很坑”。反过来一个能力稍弱但任务拆解清晰、校验完整的系统反而更值得信任。5. 幻灭之后剩下的是什么5.1 更适合 AI 的任务类型幻灭低谷不是终点它更像一次筛选。喧嚣过去之后真正能被 AI 稳定吃掉的任务通常有三个特征目标明确、结果可验证、失败成本低。比如翻译、代码片段生成、文案初稿、数据格式转换、信息抽取、摘要压缩。这些任务输入输出边界清晰模型生成后人工能快速检查。成功率再高一点加上校验逻辑就能跑自动化。而长链路、高风险、强约束的任务比如自动下单、医疗建议、法律文书、金融风控目前更适合“人机协同”AI 负责生成草案和提示人负责审批和决策。这不是模型不够聪明而是责任主体必须落在人身上。工程上不是所有步骤都要自动化保留人工节点反而是最高效的做法。5.2 长期值得押注的能力如果让我说哪些方向值得长期投入我会押这些任务编排能力、可观测性、评估体系、小模型部署和微调。任务编排解决的是长时程任务的稳定性。把大任务拆成小步骤每一步都能独立运行、独立校验这是 Agent 工程化的核心。可观测性决定你能否快速定位问题。评估体系决定你有没有办法持续验证模型输出质量。小模型本地部署则解决数据隐私和后端成本问题。这些能力不是某一个模型的“魔法”而是工程上的基础设施。模型可以换算法可以升级但可靠的流程和监控体系永远是 AI 应用真正的护城河。Chamath 所说的“幻灭”与其说是对 AI 能力的否定不如说是对过度承诺的纠偏。5.3 我的建议把预期从“代替人”改成“辅助人”我自己经过这一轮折腾最大的收获是调整了对 AI 的预期。以前我会想“能不能让 AI 全自动把这件事做完”现在我会换一个问题“AI 能做其中哪几个环节哪些环节需要人确认哪些环节必须人来做。”这样做之后长时程任务依然有难度但它不再像“笑话”一样完全不可控。我会把大任务拆小给每个小任务设置明确的输入输出和校验规则。模型负责发挥它的长处理解语言、生成内容、提取信息我负责发挥我的长处判断目标、设计流程、处理异常。未来大概也是这样。AI 不会一夜之间完成所有长时程任务但会一点一点从“生成器”变成“协作者”。这个过程中谁先把工程约束补上谁就能真正享受到 AI 带来的效率提升。