你有没有发现,用Claude 3.5 Sonnet和Claude 3 Opus时,同样的提示词效果不一样?

这不是错觉。就像你教两个不同性格的学生,一个急性子、一个慢性子,你得用不同的方法。Claude Code针对不同模型也有特定的"教学方法"。今天咱们聊聊这个"因模施教"的秘密。

两个学生:Sonnet和Opus

Claude 3.5 Sonnet和Claude 3 Opus就像两个性格不同的学生。

Sonnet是那个"机灵但有点毛躁"的学生

  • 反应快,你问什么马上答
  • 价格便宜,用起来不心疼
  • 对指令很敏感,你说不清楚他就跑偏
  • 适合日常作业,大多数任务都能搞定

Opus是那个"沉稳但慢工出细活"的学生

  • 能力最强,复杂问题他能想明白
  • 反应慢,你得等一会儿
  • 价格贵,得省着点用
  • 适合难题,普通任务有点大材小用

这就像你家里有两个计算器:一个是快但容易按错键的,一个是慢但准的。你算简单账单用哪个?算 taxes 用哪个?

不同的"剧本"

既然两个学生性格不同,教他们的"剧本"也得不同。

对Sonnet的剧本——要具体、要例子、要格式:

Sonnet容易"想太多"或者"想太少",你得给他明确的指令。

不好的提示词(对Sonnet):

帮我优化这段代码

好的提示词(对Sonnet):

请优化这段Go代码,要求:
1. 减少内存分配
2. 使用更高效的算法
3. 保持原有功能不变
4. 输出优化后的代码和说明

代码:
[你的代码]

看到了吗?对Sonnet要:

  • 步骤清晰:告诉他先做什么、后做什么
  • Few-shot示例:给他看几个例子
  • 格式严格:明确输出格式
  • 范围限定:告诉他边界在哪里

对Opus的剧本——可以放手、可以给空间:

Opus能力强,你可以给他更多自主权。

对Opus可以这样:

这是一个复杂的分布式系统问题。

背景:[描述]
约束:[条件]
目标:[要达到的效果]

请分析并提出解决方案。

对Opus可以:

  • 简洁说明:他能理解隐含的意思
  • 开放问题:让他自己探索解决方案
  • 灵活格式:不强制输出格式
  • 复杂推理:给他需要深度思考的问题

背后的原理

为什么同样的模型,需要不同的提示词?

这就像不同的车有不同的"性格":

  • 跑车(Sonnet):加速快,但容易打滑。你需要精确控制油门,不能乱打方向。

  • 越野车(Opus):马力大,爬坡强。你可以放手让它自己找路,但得有耐心等它慢慢爬。

从技术上讲,Claude Code会根据选择的模型,在系统提示词里注入不同的"调教指令":

Sonnet的额外指令

请仔细遵循指令,按步骤执行。
如果不确定,请询问而不是猜测。
使用提供的工具完成任务。

Opus的额外指令

你可以自主决定如何完成任务。
如果任务复杂,可以先规划再执行。
你可以使用工具,也可以直接回答。

这些指令会合并到系统提示词里,影响模型的行为。

A/B测试:数据说了算

Claude Code的提示词不是拍脑袋想的,而是通过A/B测试"试出来"的。

什么是A/B测试?简单说就是"对照实验":

测试流程

设计两种提示词(A和B)
把用户分成两组(50%用A,50%用B)
跑一段时间(比如一周)
看数据:哪组完成率高、哪组用户满意
赢了的那个,推广给所有人

测试什么指标

  • 任务完成率:用户的问题解决了吗?
  • 用户满意度:用户打分高吗?
  • 错误率:AI犯错的次数
  • Token消耗:成本高吗?
  • 响应时间:用户等得久吗?

举个实际的例子

Anthropic测试了两种工具描述:

版本A:“搜索文件内容” 版本B:“搜索文件内容,当你需要查找特定文本模式时使用”

结果:版本B的工具调用准确率提高了15%。为什么?因为B明确告诉了模型"什么时候用"。

这就是A/B测试的价值——用数据说话,而不是猜。

提示词的版本管理

Claude Code的提示词是有"版本号"的,就像软件一样。

版本命名prompts-v1.2.3

  • v1:大版本,提示词结构变了
  • .2:小版本,新增了几个模块
  • .3:补丁,优化了几个词的表述

为什么要版本管理?

想象一下,如果你改了一个提示词,结果AI表现变差了,怎么办?

有版本管理,你可以:

  • 回滚:快速回到上一个版本
  • 对比:看看改了什么导致问题
  • 灰度:先给小部分用户试用新提示词

灰度发布流程

新版本开发完成
内部测试(员工先用)
小范围公测(1%用户)
扩大范围(10%用户)
全面上线(100%用户)
监控数据,有问题回滚

这就像新药上市:先做动物实验,再做人体试验,最后才能卖。

实战:怎么选模型

理解了这些,实际使用中怎么选模型?

日常开发(用Sonnet)

  • 写简单的函数
  • 读代码理解逻辑
  • 搜索和查找
  • 格式化代码

复杂任务(用Opus)

  • 架构设计
  • 复杂bug排查
  • 算法优化
  • 跨文件重构

成本考虑

  • Sonnet便宜,可以放心大胆用
  • Opus贵,要留到关键时刻用

CLAUDE.md中指定模型

你可以在CLAUDE.md里写:

默认使用Claude 3.5 Sonnet
复杂任务使用Claude 3 Opus

Claude Code会读这个配置,自动选择合适的模型。

这对你的启示

理解模型调优,能帮你:

1. 选对工具

  • 简单任务用Sonnet,省钱又快速
  • 复杂任务用Opus,虽然贵但值得

2. 调整提示词

  • 对Sonnet要具体、要步骤
  • 对Opus可以给空间、给挑战

3. 理解"为什么不一样"

  • 同样的请求,不同模型表现不同是正常的
  • 不是模型坏了,是它们的"性格"不同

4. 反馈问题

  • 如果发现某个模型表现异常,可以向Anthropic反馈
  • 你的反馈可能成为A/B测试的数据

总结

模型特定调优体现了"驾驭工程"的核心思想:没有最好的模型,只有最合适的用法

  • Sonnet像跑车,要快、要准、要省油
  • Opus像越野车,要能爬坡、能过坑
  • A/B测试确保提示词真的有效
  • 版本管理让优化可以回退

理解这一点,你就能根据任务选择合适的模型,用最少的成本获得最好的效果。


下篇咱们聊聊状态保留——压缩后AI还记得什么。