如果说,LLM 在哪个领域的能力属于绝对性的优势,恐怕,“编程”说二,没有人敢说第一;
国内模型厂商,在卷 AI 编程上,大概有两个方向:
一个是编程工具,比如字节的 Trea,腾讯的CodeBuddy,阿里的Qoder。
另一个方向,则是编程模型。
作为整个编程环境的核心发动机,编程模型对最终的成果质量,起到了决定性的影响作用。
国内的DeepSeek V3.1、Kimi K2、GLM 4.6、MiniMax M2 等 Coding 模型,几乎都是瞄准着编程领域的核心发动机去的。
字节在 Trea 编程工具上了一段时间后,他们家的编程模型,终于姗姗来迟:Doubao-Seed-Code。
来得晚必须要有理由,字节憋的大招是,原生视觉编程模型,也就是模型自带视觉处理能力。
在处理复杂视觉信息时,相较于“图像转文本+代码模型”的组合方案,在代码生成质量 、视觉还原度和开发效率上会更高。
经常 AICoding 的同学都知道,我们与代码模型的交互局限于文本:
我们描述需求,它们生成代码。或者贴一张图给 AI, AI读图后,生成代码。
传统的 AICoding 模型,读图使用的是工具调用,将用户贴给 AI 的图片“翻译”成文字,再将文字交给代码模型。
其实,在这一步,就已经折损了很大量的信息。
Doubao-Seed-Code的一个核心突破点是,让 Coding 模型自带视觉处理能力。
也就是说,代码模型抛弃了工具“翻译”,直接理解图像,再构造代码。
在能力上,官方测评直接对标世界编程模型天花板 Sonnet 4.5。
在Terminal Bench、SWE-Bench-Verified-Openhands、Multi-SWE-Bench-Flash-Openhands等主流测评集中表现出色,仅次于Sonnet4.5,碾压国内模型。
那么,叠加了视觉理解的代码模型能力提升,究竟有没有说的那么玄乎呢?
今天就开始测试一下。本次测试的另一个 PK 对象,选了另外一个在国内风很大的 GLM 4.6 。
PK 场地是ClaudeCode。
评测方法:一场绝对公平的“同体”对决
这次,设置了四个任务,分别对编程模型的 CCS 细节理解能力,非标准化视觉信息理解、整体空间关系和动态变化、抽象逻辑图的结构化理解能力进行了对比。
-
任务1:精细化 UI 风格复现 (测试对 CSS 细节的理解)
-
任务2:手绘草图到功能原型 (测试对非标准化视觉信息的意图理解)
-
任务3:复杂布局的响应式实现 (测试对整体空间关系和动态变化的把握)
-
任务4:代码可视化图表的逻辑实现 (测试对抽象逻辑图的结构化理解)
为了精准地衡量原生视觉的优势,我设计了一套 A/B 对比测试方案。
Doubao-Seed-Code 兼容 ClaudeCode API的特性,我们可以使用完全相同的客户端,仅通过切换环境变量,来分别调用两个不同的后端逻辑。
A组:Doubao-Seed-Code (原生视觉)
切换到 ClaudeCode 的工作路径下,在启动前,先设置 Doubao-Seed-Code的 BaseUrl,APIKey 和 Model 等细节。
export ANTHROPIC_BASE_URL=https://ark.cn-beijing.volces.com/api/compatible
export ANTHROPIC_AUTH_TOKEN= YourApiKey
export ANTHROPIC_MODEL=doubao-seed-code-preview-latest
B组:GLM 4.6 (模拟间接视觉)
也是通过环境变量配置方式,选择 GLM 4.6
export ANTHROPIC_BASE_URL=https: //open.bigmodel.cn/api/anthropic
export ANTHROPIC_API_KEY=YourApiKey
这种“同体对决”的设计,彻底排除了客户端差异、网络环境等无关变量,确保了我们对比的焦点只有一个:
原生视觉 vs 间接理解。
我们设计了四个由浅入深的挑战,每个挑战都旨在放大“间接视觉”工作流中最容易发生信息折损的环节。
挑战 1: 精细化 UI 风格复现
目标:测试模型对精细 CSS 样式(渐变、阴影、模糊、圆角)的像素级理解能力。这是我给 DouBaoCode 的参考图样。这张图的右侧有 3 个卡片。
任务指令:
你是一位顶尖的前端工程师。
请使用精确复刻这张图片中展示的卡片组件。
代码必须是组件化的,并且样式细节(如背景模糊度、渐变色、阴影、圆角大小)需要尽可能地与原图保持一致。
评测结果
A组 (Doubao-Seed-Code)
Doubao-Seed-Code 几乎像一个经验丰富的前端开发者一样,直接“读取”了图片中的视觉信息。
成功复刻了图片中的三个主要卡片组件:
1. Quick Trade 卡片
-
背景效果:紫色渐变半透明背景,带有毛玻璃效果
-
功能:快速交易界面,支持BTC到ETH的转换
-
关键元素:交易金额输入、货币选择器、交换按钮、交易信息展示、执行交易按钮
2. Live Markets 卡片
-
背景效果:橙色渐变半透明背景,带有毛玻璃效果
-
功能:实时市场数据展示
-
关键元素:实时状态指示器、BTC/USD、ETH/USD、SOL/USD的价格和涨跌幅
3. Security Features 卡片
-
背景效果:蓝色渐变半透明背景,带有毛玻璃效果
-
功能:平台安全特性展示
-
关键元素:多重签名钱包、硬件安全模块、端到端加密
在细节上:
-
背景模糊效果:使用 backdrop-filter: blur(10px) 实现毛玻璃效果
-
渐变背景:为每个卡片添加了不同方向的渐变效果
-
圆角设计:统一使用 border-radius: 16px
-
阴影效果:多层阴影 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3)
-
交互反馈:所有按钮和可交互元素都有悬停效果和过渡动画
-
色彩系统:使用紫色作为主色调,橙色、蓝色作为辅助色调
B组 (GLM 4.6)
同样的操作步骤:
我们来看一下 GLM 4.6 完成的前端界面效果。只能说,毫不相关吧。
看到这个界面,我有点想哭。
本轮测试结论:在要求高保真视觉还原的任务中,原生视觉的优势是决定性的。
它将设计师的视觉稿无损地转化为了代码,而间接视觉则在第一步就丢失了灵魂。
挑战 2:从板书草图到原型 —— 手绘草图的意图理解
目标:测试模型在处理低保真、非标准化视觉信息(手绘草图)时的抽象意图理解能力。
输入图片:
任务指令
你是一位经验丰富的全栈开发者。
这是一张我手绘的移动 App 个人主页的草图。请将其转化为一个功能原型页面。
你需要理解草图中的布局意图,并使用标准的 UI 组件来实现它。
评测结果:
A组 (Doubao-Seed-Code) :
模型展现了惊人的抽象理解能力。它正确地将草图中的“圆圈+人形”识别为头像(Avatar),将“九宫格”识别为图片网格(ImageGrid)。生成的前端界面在结构上完全符合设计意图。
B组 (GLM 4.6) :
感觉有点欺负 GLM 4.6 了。它完全没办法理解我给它的草图。它以为这是一个金融 app 产品。
最终,给我做的是这样的APP界面:
本轮结论:对于模糊和抽象的创意草图,原生视觉能够跨越“形式”的障碍,直接理解其背后的“功能意图”。这是间接视觉流程完全无法企及的。
挑战 3:布局的魔术 —— 复杂视图的响应式实现
目标:测试模型对复杂布局的整体把握,以及对响应式设计这种“动态规则”的理解。
输入图片:
这是一张复杂仪表盘(Dashboard)的桌面端截图,包含左侧导航栏、以及由多个卡片组成的网格内容区。
任务指令:
你是一位精通 CSS 布局的前端专家。
请使用 HTML 和 CSS (或 React + Tailwind CSS) 实现这张仪表盘的布局。
关键要求是:
1. 完美复现桌面端的布局结构。
2. 当屏幕宽度小于 768px 时,左侧导航栏需要收起为汉堡菜单,内容区卡片变为单列堆叠。
评测结果
A组 (Doubao-Seed-Code)
这次,DouBaoCode 只能基本还原样式,因为环境冲突原因,React 项目是无法打开的。我使用了纯 HTML+Tailwind 版本的方案。页面的交互细节,也无法进行测试。
B组 (GLM 4.6) :
先从结果看,这次 GLM 4.6 就没那么拉跨了。
至少画的是DashBorad 的样式。但是跟我贴给它要求还原的组件细节,几乎都没办法还原。
本轮结论:在复杂的仪表盘信息图还原上,仅靠 视觉还不完全够。
除了给 AI 图片,我们还需要增加这个项目的文字和板块说明,让 AI 充分理解“项目是什么”,然后,该怎么做。
虽然,最后一次测试两个模型都没有给到满意的答案。
但是,本次评测清晰地表明,Doubao-Seed-Code的原生视觉能力并非锦上添花,而是一次解决问题的“维度升级”。
它解决了“图片-文字-代码”工作流中长期存在的信息折损的老问题。
对于开发者而言, 这意味着一种全新的、更直观的开发范式。
我们可以将模糊的想法画在纸上,将精美的设计稿直接扔给 AI,将复杂的架构图作为需求输入。
AI 不再仅仅是一个代码补全工具,而是一个能够真正“理解”我们视觉和逻辑意图的协同伙伴。
未来,软件开发的边界将不再受限于键盘和文本。
当 AI 真正拥有了“眼睛”,一个所见即所得、创意无损传递的新时代,已然到来。
Doubao-seed-code测试使用传送门:
https://exp.volcengine.com/ark?model=doubao-seed-code-preview-251028
