最近在对比Claude Code使用不同模型通过Figma MCP还原客户端设计稿,手里有GLM-5V-Turbo和Claude,用空项目来还原一个比较简单的页面。
跑完后,两个模型首次运行后,效果差距巨大,GLM还原度甚至达不到30%,甚至背景色都全是错的;而Claude还原的七七八八,除了个别需要一些技巧处理的UI元素外,其他实现的勉强可用。
到这里,身边人基本上只会说一句Claude就是比GLM强太多,但在专业的评测中,其实模型的差距并不大,为了搞清楚为什么实现效果差距这么大,于是看了下他们的执行过程。
我在Claude Code上安装了status line,可以看当前对话的输入tokens和输出tokens,发现一个简单页面的Figma图层读取的输入全程下来就有300多k的输入了,而GLM的最大上下文长度是200K,也就是超出了上下文长度,最终会触发自动压缩上下文。当上下文被压缩后,图层里的数据就会丢失,比如背景色数据丢失后,就会产生错误的背景色。而Claude是1M上下文,在整个执行过程中,上下文没有超出,所以保留了完整的Figma图层信息,还原度就相对比较高。
找到问题后,就可以针对性的进行优化,比如可以通过subagent来读取Figma图层,拿到数据后转成JSON文件保存到本地,这个JSON文件比如100k大小;可以再运行另一个subagent将JSON转换为md文件,用文档形式描述相关布局和颜色信息,实测这个md文件可以将JSON信息压缩到80k左右;最后把这个md文件返回给主进程,让主进程根据md文件内容去实现代码,从而减少输入的token占用,保留完整的设计稿细节,最终输出的结果就会好很多。
虽然可以有钱任性的挥霍Claude的1M上下文,但是如果在非空项目中,1M上下文也会很容易被占满,所以这种技巧在Claude模型下也非常有价值。