跳到主要内容
返回时间线
arXiv来源发表:

WebCoder把前端开发当作持续工程来训练:需求满足率72.8,超过Claude-Opus-4.8的65.1

核心概要

智谱AI实习期间完成的WebCoder-27B,把复现、生成、修改与修复放进同一个持续演化的项目状态里,用可执行应用对任务需求的满足程度来给强化学习打分。在新建的Webdev-Bench上,它的需求满足率从基座Qwen3.8-27B的64.8升到72.8,高于Claude-Opus-4.8的65.1;在Vision2Web上视觉与功能平均分从41.1升到62.4,与Claude-Opus-4.8的62.5相当。

AI-generated editorial illustration: WebCoder: Scaling General Frontend Development with Artifact-Grounded Agentic Reinforcement Learning

深度剖析

前端智能体不再被当作单次截图转代码任务,而是要在同一个不断演化的应用上连续完成复现、生成、修改和修复,WebCoder-27B就是按这一目标训练出的单一策略。 此前的做法把复现设计、按渲染反馈精修、生成交互网站分别训练和评测,而真实请求往往要求这些能力在同一份代码和同一份应用状态上协同。 在包含40个复合任务的Webdev-Bench上,WebCoder-27B的需求满足率为72.8,基座Qwen3.8-27B为64.8,Claude-Opus-4.8为65.1,其余专有模型落在48.0到59.6之间,并且它交付了全部40个任务。

训练信号来自最终应用是否满足任务需求,而不是智能体在对话里自称完成了什么。 独立验证器只依据构建、运行和浏览器检查得到的应用证据打分,质量分还要先通过构建、入口解析和渲染三道硬性门槛。 在Vision2Web的66个交互前端任务上,WebCoder-27B的视觉与功能平均分为62.4,基座为41.1,Claude-Opus-4.8为62.5,交付率从48.5%升到80.3%。

中间进度也按同一份需求清单估计,用来把最终奖励分摊到开发过程的各个阶段。 最终奖励只能说明任务是否完成,无法区分哪一段修改推进了任务、哪一段引入了回退,而一次代码改动的效果要等构建、运行和检查之后才看得出来。 消融实验在Vision2Web L2上把平均分从62.4降到52.6(去掉按产物打分的信用分配)和54.9(去掉上下文压缩),两个变体仍高于基座的41.1。

长轨迹通过上下文压缩和消息树采样跨越单个上下文窗口。 开发历史会随项目推进超出模型窗口,而压缩后的历史若被重复训练,会让同一段生成内容被反复计入损失。 训练使用116,736 token的 rollout 上下文和65,536 token的训练上下文,消息树按消息位置与内容做归属掩码,使共享的生成历史最多只贡献一次策略损失。

启示与展望

评测覆盖Vision2Web的交互前端层级66个任务和Webdev-Bench的40个复合任务,所有模型使用同一智能体框架、工具、提示、容器环境、时间预算和评审模型;训练任务由合成产品说明和公开网页截图构造,智能体运行在隔离容器中,除软件包仓库外不访问外部服务。

Webdev-Bench的终审由一个语言模型智能体执行,其重复评分一致性在附录中单独测量;案例中也出现未通过验收的任务,例如价格计算出现浮点余数导致某一需求不满足。作者表示将在接收后开源模型、基准与训练评测代码。