Claude 3.5 Sonnet体验:代码能力评测

Anthropic 在 6 月底发布了 Claude 3.5 Sonnet,主打代码能力提升和新的 Artifacts 功能。用了一段时间后,对比 GPT-4o 做了一些测试,记录下体验和观察。

Claude 3.5 Sonnet 定位

Anthropic 的模型线目前是三档:Haiku(轻量快速)、Sonnet(平衡)、Opus(旗舰)。3.5 Sonnet 的定位有点意思——它是"中档"模型的升级版,但在很多 benchmark 上已经超过了自家的 Opus 和 OpenAI 的 GPT-4o。

从官方公布的数据看,3.5 Sonnet 在代码相关的评测上表现突出:

  • HumanEval:92.0%(GPT-4o 约 90.2%)
  • 多语言代码生成:几乎全面领先
  • 速度:比 Opus 快约 5 倍,和 GPT-4o 体感相当

Artifacts 功能

这是 Claude 3.5 配套推出的一个交互功能。当你让 Claude 写代码、生成文档、做 SVG 图表时,它会在对话旁边打开一个独立面板展示结果。比如让它写一个 React 组件,Artifacts 面板会直接渲染出可交互的预览。

实际体验:

  • 写单文件 HTML/CSS/JS 页面非常好用,即写即预览
  • React 组件支持也不错,能处理 state 和交互
  • SVG 图表生成比让它输出 markdown 表格更直观
  • 局限是只支持单文件,多文件项目还是得用传统方式

对于演示、原型验证、教学场景,Artifacts 确实降低了门槛。

代码生成能力对比

选了几个场景做对比测试(Claude 3.5 Sonnet vs GPT-4o,2024 年 8 月版本):

场景 1:算法题

给同一道 LeetCode Hard 题(合并 K 个升序链表),两者都能给出正确的最优解(堆解法),代码质量相当。这类标准算法题两者已经没有明显差距。

场景 2:代码生成——完整功能模块

要求:用 Go 写一个带速率限制的 HTTP 中间件,支持 token bucket 算法、按 IP 限流、可配置参数。

Claude 3.5 Sonnet 的输出更"完整"——默认会加上单元测试、使用示例、配置说明,代码风格更工整。GPT-4o 的核心实现也没问题,但需要额外提示才会补充测试代码。

场景 3:Debug

故意给一段有微妙 bug 的并发代码(Go 的 goroutine 泄漏问题),让两者诊断。

Claude 3.5 Sonnet 的表现更好——它不仅定位到了 bug,还解释了 goroutine 泄漏的触发条件、给出修复代码、并建议了防御性编程的写法。GPT-4o 也能找到 bug,但解释没那么系统。

场景 4:代码重构

给一段 300 行的"意大利面条"Python 代码,要求重构为更清晰的结构。

这个场景 Claude 3.5 Sonnet 的优势比较明显。它会先分析代码的职责划分问题,然后给出一个清晰的重构方案(类的拆分、方法提取、依赖注入等),最后输出重构后的完整代码。GPT-4o 偏向于直接给重构后的代码,中间的分析推理过程不如 Claude 详细。

场景 5:多语言能力

让两者分别用 Rust、Go、TypeScript 实现同一个功能(简单的 HTTP 客户端 + 重试逻辑)。Claude 3.5 Sonnet 在 Rust 和 Go 的代码质量上略胜一筹(更地道、更符合语言惯例),TypeScript 差不多持平。

整体对比总结

方面 Claude 3.5 Sonnet GPT-4o
代码生成质量 略胜,尤其是完整度 优秀
Debug 分析 推理过程更清晰 结论正确但过程简略
代码重构 明显更好 中规中矩
标准算法 持平 持平
多语言 Rust/Go 略胜 JS/TS 生态更熟
上下文理解 200K context,长文档表现好 128K context
回答风格 详细、结构化、有时偏冗长 简洁、直接
工具生态 Artifacts 是亮点 GPTs 和 Code Interpreter

一些细节观察

Claude 的"过度思考"倾向:Claude 3.5 Sonnet 有时会把简单问题复杂化。比如你只是想要一个简单的工具函数,它可能会输出一个完整的类加上抽象层。这可以通过 prompt 控制,但默认行为确实偏"过度工程"。

GPT-4o 的优势领域:涉及 OpenAI 生态内的工具(function calling、structured output)时,GPT-4o 的配合度更好,这不意外。另外 GPT-4o 对最新的库版本和 API 的了解通常更及时。

Claude 的安全限制:Claude 在代码安全方面更保守。让它写渗透测试工具或逆向相关代码时,经常会拒绝或加很多 disclaimer。GPT-4o 在这方面宽松一些。

成本:Claude 3.5 Sonnet 的 API 定价是 $3/$15(input/output per 1M tokens),GPT-4o 是 $5/$15。Claude 的输入成本更低,在需要喂大量 context(比如代码审查整个文件)的场景下有价格优势。

Anthropic 的定位

Anthropic 的策略越来越清晰:不和 OpenAI 拼"大而全"的生态,而是在模型本身的能力上做差异化。3.5 Sonnet 的发布节奏也很讲究——跳过 3.5 Opus 直接出中档模型的升级版,说明他们认为性价比才是当前竞争的关键。

从用户角度看,这是好事——两家的竞争在推动代码 AI 能力快速提升。实际使用中,我的策略是根据任务选模型:需要深度代码分析和重构用 Claude 3.5 Sonnet,快速问答和工具集成用 GPT-4o。

总结

Claude 3.5 Sonnet 在代码能力上确实有亮点,尤其是重构、debug、长上下文分析这些需要深度推理的场景。但说"全面超越 GPT-4o"还为时尚早——两者各有擅长的领域,差距并没有大到需要"all in"某一个的程度。Artifacts 功能倒是一个实实在在的体验提升,值得试试。