ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Qwen3.8-Max:2.4万亿参数与十数天自主编程的Agent分水岭

Qwen3.8-Max:2.4万亿参数与十数天自主编程的Agent分水岭

最近两天圈子里的讨论焦点,几乎都绕不开 Qwen3.8-Max 的发布。2.4 万亿参数,官方口径里还带了一句很有信息量的话——“自主编程十数天”。说实话,参数堆到万亿级别我一点都不意外,真正让我停下来的,是“十数天”这个尺度。在此之前,各家模型拼的是单次代码生成的准确率、是上下文窗口的长度,但 Qwen3.8-Max 直接把赛道拖到了“一个Agent能不能连续跑两周、独立交付一个项目”的层面。这篇文章我不打算替你复述发布会,我想站在一个常年用大模型写代码、也经常被Agent气到摔键盘的从业者角度,把这次发布背后的技术逻辑、能力分水岭和落地现实拆开聊一聊。无论你是想评估要不要接入 API、还是单纯好奇 2.4 万亿参数到底意味着什么,这篇文章都值得你读完。

1. 2.4万亿参数是怎么堆出来的:MoE路线与一张算力账单

1.1 参数规模意味着什么:先破除“参数越大越聪明”的朴素认知

先说结论:2.4 万亿这个数字,放在一年前是不可想象的,但放在今天,它并不等于模型每一步推理都要完整跑完 2.4 万亿个权重。这背后是架构路线的根本变化。

很多人听到“参数规模”第一反应是“参数更多 = 知识更多 = 更聪明”。这个直觉在早期稠密模型时代基本成立,但到了万亿级别,如果还是把所有参数全部激活,训练和推理成本都会直接爆炸到无法商用。行业里普遍采用的做法是混合专家架构,也就是大家常说的 MoE——把模型内部拆成很多个“专家子网络”,每次处理 token 时只路由到其中一小部分专家上。所以 Qwen3.8-Max 的 2.4 万亿,指的是模型的总参数量,也就是把所有专家权重加在一起的大小;而它单次推理时实际运行的“激活参数”,可能只有总参数量的零头。

我用一个生活化的类比:这就像一家大型综合性医院,全院有两万四千名医生(总参数 2.4 万亿),但你挂一个皮肤科的号,真正给你看病的可能就是皮肤科的两名医生(激活参数)。医院养了这一大批专家,给了综合诊疗能力;但每次问诊并不需要全院医生都到场。MoE 追求的就是这种“总规模大、单次开销可控”的平衡。

1.2 稀疏激活与混合专家:2.4万亿并不等于每步都跑满

在实际工程里,MoE 的挑战在于“路由”是否靠谱。如果一个 token 被路由到了明显不相关的专家,模型就会输出一些莫名其妙的结果。因此,Qwen3.8-Max 这类旗舰模型在专家数量、路由策略、专家容量上做了大量工作,才能保证 2.4 万亿的参数不是一种营销数字,而是真正转化为“知道得更多、判断得更准”的能力。

从行业公开经验和论文规律来看,MoE 模型的总参数与激活参数的比值通常在 10 到 100 倍之间。如果按 2.4 万亿总参数、激活几十百亿参数来估算,实际推理计算量大概接近一个几百 B 级别的稠密模型;但知识覆盖面和长尾任务的处理能力,却是在向着“2.4 万亿”这个量级靠拢。这就是为什么厂商敢把参数量作为旗舰标签——它代表的是模型的知识容量上限,而不完全是实时计算的成本。

当然,总参数翻倍不是没有代价。模型体积摆在那里,无论是训练还是推理,都要先把整套权重装进显存里。即便激活参数很少,MoE 在推理时也需要把全部专家的权重都加载到内存或显存中,才能根据路由结果随时取出对应专家。

1.3 训练账单的粗略估算:数据、算力、时间

既然到了 2.4 万亿参数,训练成本就不可能低。我按行业通用的缩放规律粗略算一笔账。

训练大模型的浮点运算量,通常可以用一个近似公式粗估:

训练 FLOPs ≈ 6 × 总参数量 × 训练 token 数

不过这是稠密模型的算法。对 MoE 来说,单次前向和反向的 FLOPs 应当按“激活参数”来算,而不是总参数。我们即便假设训练阶段激活参数约为总参数的 5%,也就是 120B 左右,再假设训练数据为 20 万亿 token:

训练 FLOPs ≈ 6 × 120e9 × 20e12 = 1.44e25

假如你手头有一个还算强力的 H100 集群,单卡算力标称 989 TFLOPS(即每秒约 1e15 FLOPs 量级),考虑分布式训练的通信开销和利用率损失,实际有效算力能到 30% 就非常不错了。那么需要的总算力时间大概是:

1.44e25 / (1e15 × 0.3 × 86400) ≈ 55.6 万卡日

也就是说,哪怕你有一千张 H100 插在那里满负荷跑,也要将近一年半。这还只是“主训练跑一遍”的估算,不包含数据清洗、实验调参、对齐训练、多轮评估。再叠加这些工程成本,2.4 万亿参数背后的算力账单,绝对是一个以“亿”为单位往下数的数字。这也是为什么很多人说,大模型竞争到最后就是资源竞争,真不是夸张。

2. 十数天自主编程的分量:从“补全代码”到“交付项目”

2.1 常规代码助手和自主编程的本质差异

我在写代码时常用的那些代码补全工具,本质上做的是“下一步预测”——你给我一段上下文,我帮你补下一行、下一个函数、或者一小段完整逻辑。这种模式下,人始终在回路里,每一段生成都需要人工确认,而且上下文一旦超过几万 token,模型就开始“失忆”。

自主编程是完全不同的玩法。它不只是在某个文件里补代码,而是要理解一个完整的任务目标,自己拆解步骤,自己创建文件,自己跑测试,自己看到报错之后修 bug,修完再继续往下走。整个过程持续数小时、数天,甚至十几天。在这个尺度下,模型需要解决的核心问题根本不是“某一句话怎么写”,而是“怎么在一个长周期里始终记得自己在干什么、做到哪一步了、下一步该干什么”。

“十数天”这个数字之所以扎眼,是因为它几乎跨过了所有普通代码助手的极限:上下文长度、任务规划能力、错误恢复能力、以及与外部环境的持续交互能力。如果这些能力没有系统性地解决,Agent 别说跑十几天,跑半天就会陷入死循环或者彻底跑偏。

2.2 一个持续两周的编程任务到底在做什么

我拆一个实际些的场景。假设你让一个自主编程 Agent 去“做一个带用户登录、数据看板和后台管理的企业内部工具”,它十数天的执行路径大致是这样的:

  • 前三到四天:理解需求,设计方案,搭项目骨架,定数据库表结构,写核心模块的初始版本。
  • 中间五天:补业务逻辑,处理各种边界条件,比如用户权限、异常输入、分页、数据校验之类。
  • 后面几天:持续运行测试、根据报错改代码、修安全漏洞、优化接口性能、补文档和部署脚本。
  • 最后一天:做一轮整体回归验证,整理交付说明,甚至把部署流程跑通。

你看,这个流程里真正的“写代码”只是其中一部分,而且是最容易的部分。难的是:Agent 要自己判断“这个需求我应该问用户还是先按默认方案做”,要在改了 A 模块之后记得可能影响 B 模块,要能在一次测试失败后定位到具体问题而不是盲目乱撞,还要能在整个项目跨了十几天之后不忘记最初的技术选型理由。

这已经达到了一个初级开发工程师连续工作两周的程度。而“自主编程十数天”就意味着,模型把这一整套能力打包成了默认产品能力。

2.3 为什么十数天在过去几乎不可能

过去的 Agent 跑不起来,卡在几个非常现实的问题上。

第一,上下文窗口不够。传统模型对话窗口只有几千到几万 token,根本装不下一个项目十几天的对话历史和代码轨迹。哪怕硬塞进去,早期 token 的信息也会被后续输入冲掉,模型表现就像金鱼记忆,昨天做的决定今天就不认账。

第二,没有可靠的错误恢复机制。自主编程和写作业不一样,代码不可能一次通过。一旦测试报错,Agent 需要在“报错信息、相关代码、环境状态、之前改动的意图”之间建立关联,这比生成代码本身难得多。

第三,缺少完整的工具循环。以前的模型只负责“生成文本”,你得手动把代码复制到文件里、手动跑编译、手动把报错贴回去。真要自主干活,模型必须能直接操作文件系统、执行命令、看日志,并且把这个循环闭合起来。

所以我才说,“十数天”是分水岭——它意味着上面这些问题,至少在产品层面被系统性解决了一大部分。

3. 长周期任务背后的四块基石:规划、记忆、容错、工具闭环

3.1 任务规划:把大需求拆成可执行的原子步骤

一个能连续跑十数天的 Agent,首先必须是一个合格的“项目经理”。它拿到一个模糊需求之后,要能自己把需求拆成阶段、把阶段拆成任务、把任务拆成原子操作,并排出一个合理的执行顺序。

我自己的经验是,任务规划能力是 Agent 最容易露馅的地方。很多模型生成单段代码没问题,但让它做一个“先调研、再设计、再开发、再测试”的完整计划时,它会给出一个看似合理但细看全是毛病的方案,比如把数据库设计放到写业务代码之后、或者一开始就去优化性能而没有先搭可用原型。

长周期自主编程对规划能力的要求,是“动态规划”而非“一次性规划”。项目在跑的过程中一定会遇到意外:某个依赖装不上、某个 API 设计有问题、用户中途改需求。Agent 必须在执行中动态调整计划,而不是死守最初方案。这个时候,模型底层的推理能力和对软件工程流程的理解,就成了硬指标。

3.2 长程记忆:跨天执行的前提

“十数天”意味着 Agent 需要把执行轨迹、决策记录、代码变更历史、测试状态等信息,在超长时间内保存并随时调用。这个问题不能靠无限扩大上下文窗口解决,因为上下文越长开销越大,而且真的会稀释注意力。

更合理的产品方案是分层记忆:核心任务目标、项目架构信息、最近变更记录这种“高优先记忆”常驻;历史日志、中间版本、详细测试输出这类“低优先信息”归档到外部存储,需要用的时候再检索回来。这有点像人脑的工作记忆和长期记忆的配合:你不可能把自己上周看过的每一行代码都记在脑子里,但你需要知道“项目当初为什么用 PostgreSQL 而不是 MySQL”,这种决定级的信息不能丢。

对开发者来说,这也带来一个使用习惯上的变化:过去我们担心模型“记不住”,所以要自己把上下文写得很全;现在面对长周期 Agent,我们更需要关注的是它是否把决策记录写清楚了、中途能不能回溯。我建议所有用过 Agent 的人,养成定期查看它生成的“决策日志”的习惯,这比看代码本身更能判断任务是否走在正确方向。

3.3 容错与闭环:只有写代码能力不够,还得会跑、会修、会重来

自主编程和普通代码生成的最大区别,在于它要为自己的错误买单。Agent 写完代码之后,需要自己执行测试,看到失败要能定位、修复、再验证,直到通过。

这个“容错闭环”是整个长周期执行里最考验工程水准的部分。因为在真实项目里,报错信息的形态极其多样:可能是语法错误、依赖冲突、环境变量缺失、数据库连不上,甚至可能是测试本身写得有问题。Agent 如果只会“看到报错就改代码”,很可能陷入一种怪圈:改了 A 错误,引发 B 错误,修了 B 又带回 A。

从架构上看,这要求模型具备很强的“因果追踪”能力:能区分哪些错误是根因、哪些只是表象;能判断某个错误是否需要修改代码,还是调整环境配置更合适;能在连续多次失败之后退一步,重新审视自己的方案,而不是硬着头皮继续走。

这一块也是我认为“十数天”最有含金量的地方。你让模型跑一两个小时,可以用各种 Prompt 技巧蒙混过关;但让它断断续续跑上两周,任何一个容错机制上的短板都会被无限放大。能稳定跑完十数天,说明这个系统的容错设计已经不是“补丁式”的。

3.4 工具闭环:文件、终端、Git、测试框架一体的操作能力

最后一块基石,是 Agent 对“外部世界”的操作能力。它不能只做一个“文本生成器”,它得能读写文件、执行 shell 命令、调用 Git、操作数据库、运行测试套件,并理解这些操作的输出。

我在实操中感受到一个很关键的细节:工具闭环的质量,很大程度体现在“操作中间态”的稳定性上。比如 Agent 改了三个文件,跑到第五步发现第一步改了没必要,它能不能精准回退第一步、保留后面两步的改动?如果它没有这种细粒度操作能力,就只能要么全部回退、要么带病前行,这两种结果在一个两周项目里都是灾难。

这也解释了为什么自主编程类产品通常不是单纯把大模型 API 包装一下就完事,而是需要一个复杂的 Agent 框架去管理状态、控制工具调用、记录每一步操作。Qwen3.8-Max 发布里强调“自主编程十数天”,背后真正秀的其实不只是模型本身,而是这一整套工程基础设施已经可以稳定支撑长周期任务。

4. Agent跑十数天后,开发者工作流要重新设计

4.1 从“亲手写”到“定义、监督、验收”

我越来越觉得,以后我们评价一个开发者的核心能力,可能不再是“你代码写得多快”,而是“你能不能把一个模糊需求讲清楚,并且在 Agent 跑偏的时候及时发现、把它拉回来”。

当一个 Agent 能连续工作十几天,开发者的角色就从“生产者”变成了“产品经理 + 架构师 + 验收员”。你不再需要自己写每一行代码,但你需要定义清楚验收标准,需要把项目拆成有意义的里程碑,需要在 Agent 执行到每个里程碑节点时检查交付物是否合格。

这个转变听起来轻松,实际并不容易。我自己第一次放手让 Agent 跑一个完整模块时,心情是非常忐忑的。它确实在正常工作,但我会忍不住频繁去检查它的输出,担心它是不是在某个文件里埋了雷。后来我逐渐总结出一个比较稳的协作方式:给 Agent 设置明确的阶段性目标和“停下来请示”的触发条件。比如“当遇到需要修改数据库 schema 的决策时,先停下来写一份变更说明让我确认”。这样既不打断它的长周期节奏,又能在关键节点保持人的控制力。

4.2 一个人跑通一个项目:实操分层和验收要点

如果你想让一个长周期 Agent 真正帮你完成一个项目,我把实操经验分成四个层次,你可以直接照搬:

第一层,需求定义。不要只给一句话“做一个XX系统”,至少要把用户角色、核心流程、交付形式、技术栈偏好写清楚。你越能把这个文档写清楚,Agent 后续的跑偏概率就越低。

第二层,里程碑拆分。把项目拆成三个阶段,比如“基础骨架”、“核心功能”、“测试与交付”,每个阶段结束后让 Agent 产出可运行的中间版本。这比一次性丢一个大目标要可靠得多。

第三层,巡检机制。每天至少看一次 Agent 的决策日志和执行摘要,重点不是看代码细节,而是看它有没有做出你无法接受的架构决策。如果它准备引入一个你没有听说过的高风险依赖,立刻叫停。

第四层,交验收。两周跑完后,不要直接相信“测试通过”这个结论。自己做一轮 code review、部署到测试环境跑一遍真实流程。这是最耗精力但也最必要的环节。

4.3 谁的工作最受影响,谁反而更被需要

长周期自主编程对研发体系的影响,不是“程序员要失业”这种粗暴结论。更准确地说,它重新分配了不同角色的权重。

重复性的、模块化的、标准化的编码工作会被大量自动化替代,比如写常规 CRUD 接口、配置类代码、基础测试用例。这类工作的价值会快速下降。反过来,那些需要深厚领域知识的工作变得更值钱:你能不能用一句话准确描述业务规则、能不能判断 Agent 设计的表结构在半年后是否可扩展、能不能在系统出问题时快速定位是哪个环节的哪个假设出了问题——这些“定义问题”和“判断方案”的能力,未来会非常稀缺。

对于初级开发者和转行的人来说,这是一个很有意思的信号:与其花大量时间练习“把需求翻译成代码”的能力,不如开始练习“把需求翻译成验收标准”的能力。前者是 Agent 越来越擅长的,后者暂时还是人类的强项。

5. 超大模型落地的现实账:显存、量化与接入方式

5.1 先算一笔显存账

聊完能力,得回到现实:2.4 万亿参数,到底怎么跑起来?

假设我们直接用 FP16 精度加载全部权重,需要的显存是:

2.4e12 × 2 bytes = 4.8 TB

一块主流 H100 显存是 80GB,单机八卡也就是 640GB。这个模型光把权重装进显存,就需要至少 60 张 H100,大约 7 到 8 台八卡服务器,这还不算运行时的激活值、KV Cache 和中间变量。换句话说,想要私有化部署一个完整的 2.4 万亿模型,服务器成本就已经是千万级别往上走。

好在 MoE 架构在推理时的激活计算量是可控的,这让服务提供商可以通过“把全部专家分散在多台机器上、每台只处理部分专家”的方式来做分布式推理。但就算激活参数不大,单次请求需要跨机访问专家权重,通信延迟和调度复杂度都比单机推理高几个量级。

5.2 量化与蒸馏:大模型怎么变得能用

想让这个大模型在更低的成本下运行,行业里两条主流路线:量化和蒸馏。

量化最常见的是从 FP16 压到 INT8 甚至 INT4。按 INT4 来算,2.4 万亿参数压缩到约 1.2TB,差不多需要 15 张 80GB 的卡,虽然还是不小,但已经比 4.8TB 现实多了。代价是精度损失,尤其在一些对数值敏感的任务上,量化后的模型可能表现下降。所以旗舰模型通常会在 API 侧保留高精度版本,把量化版本用于更便宜的接入档位。

蒸馏则是把大模型的能力迁移到小模型上。你可以把 2.4 万亿模型当成“老师”,让它生成大量高质量的数据,再用这些数据去训练一个几十 B 的小模型,让它在特定任务上接近大模型的水平。我预计 Qwen3.8-Max 这套体系后续一定会派生出一批蒸馏版本,那是大多数普通开发者真正会用到的形态。

5.3 个人开发者与企业的不同接入方式

对个人开发者来说,最现实的路径还是通过云端 API 接入,而不是试图私有化部署。你要关注的其实是三件事:单次请求的价格、上下文长度限制、以及是否开放长周期 Agent 的运行接口。如果产品形态允许你提交一个任务、过几天回来收货,那才是真正用上了这波能力;如果只给你一个普通对话窗口,那它和之前的模型没有本质区别。

对于中大型企业,如果私有化部署是刚需,那么更现实的方案不是在内部硬扛 2.4 万亿模型,而是把核心复杂任务通过 API 输出给云端旗舰模型,对数据敏感的部分用蒸馏出的中小模型本地处理。混合架构在未来很长一段时间内会是主流,指望一个模型解决所有问题既不经济也没必要。

我在实际使用中发现,判断一个团队是否真正会用这类大模型,不在于它接入了多少 API,而在于它有没有想清楚“什么任务值得调用 2.4 万亿级别的模型”。大多数日常任务,哪怕是写代码,几十 B 的小模型经过良好微调后已经够用;只有那些逻辑链条长、知识面广、需要“自己想很久”的任务,才值得把旗舰模型请出来。

回到开头那句话,“自主编程十数天”确实是一个分水岭。它把一个一直停留在 Demo 阶段的概念推到了可产品化、可商用的位置上,也让“人机协作开发”从一句口号变成了真实可执行的工作流。我自己跑过一次两天多的 Agent 任务后,最大的感受不是“程序员要没饭吃了”,而是以后对程序员的要求变了——你不能再只是一个写代码的,你得更像一个能把模糊想法变成确定交付物的整合者。这种变化不会等所有人准备好才到来,它已经在发生了。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进