<!-- title: 四档模型首次选配入门指南 -->

## 概述

本教程面向**第一次安装完 Claude Code、面对 `/model` 选择器不知所措**的零基础开发者。学完你将能够：分清 Fable / Opus / Sonnet / Haiku 四档模型各自擅长什么；用四种方式（启动参数、环境变量、`/model`、settings）正确设定模型；理解 `opusplan` 混合模式与 `/effort` 推理强度；用 `/config` 一次性把主题、语言、通知、权限、自动压缩等首选项调到位；并完成一个可运行的小项目，亲手对比三档模型在同一需求下的差异。

适用人群：刚装好 Claude Code、会基本命令行、但对模型体系一无所知的开发者。

## 前置条件

- 已安装 Claude Code（`claude --version` 能输出版本号，建议 v2.1.170 以上，否则 `/model` 里看不到 Fable 5）。
- 终端里能正常进入一个空目录并运行 `claude`。
- 有一个有效账号（Pro / Max / Team / Enterprise / API 任一即可）。账号档位会决定你的默认模型，后文会展开。
- 心理准备：第一次配置**不要慌着切 Opus**，看完第三节再做决定。

---

## 正文：六步走通首次选配

### 步骤一：先认清四档模型的定位

打开官方文档会发现，Claude Code 的模型并非"越贵越好"，而是**按任务难度分档**。先把这张表刻进脑子：

| 别名（alias） | 实际指向 | 定位 | 适合的任务 |
| --- | --- | --- | --- |
| `fable` | Claude Fable 5 | 最强，擅长长程自主 | 多文件大重构、根因排查、架构决策 |
| `opus` | Opus 4.8（API）/ 4.7（AWS）| 复杂推理 | 跨文件逻辑、疑难 bug、设计权衡 |
| `sonnet` | Sonnet 4.6 | 日常主力 | 写功能、改 bug、读代码——绝大多数日常 |
| `haiku` | Haiku 4.5 | 快而省 | 改注释、重命名、简单机械改动 |

还有一个特殊的 `best` 别名：有 Fable 5 权限就用 Fable 5，否则退回最新 Opus。

**操作说明**：在你的项目目录运行 `claude`，进入交互界面后输入 `/model`（不带参数），会弹出选择器。

**预期结果**：选择器里会列出 `default`、`fable`、`opus`、`sonnet`、`haiku`、以及带 `[1m]` 后缀的长上下文版本。当前激活的模型旁边会有标记。

**常见问题**：

- **看不到 Fable 5** → 版本太旧。退出后运行 `claude update` 升级到 v2.1.170+。
- **选择器里只有几项** → 你的账号档位（如 Pro）默认不提供 Opus，或企业管理员用 `availableModels` 限制了可选范围。
- **别名指向和文档不一致** → 别名会随 provider 变。在 Bedrock/Vertex/Foundry 上 `opus` 可能解析到 4.6。想锁死版本就用全名，如 `claude-opus-4-8`。

> 一个新人最容易踩的坑：以为"无脑选最强"就对了。结果是简单改个注释也烧 Opus 的钱和等待时间。**默认用 Sonnet，遇到啃不动的硬骨头再升档**——这是官方与社区一致的建议。

### 步骤二：掌握设置模型的四种方式与优先级

模型不是只能用 `/model` 选。官方定义了一条**优先级链**（高到低）：

1. **会话内**：`/model <别名>` 立即切换；从 v2.1.153 起，直接打 `/model opus` 会把你的选择**存为默认**（写入用户 settings 的 `model` 字段）。在弹窗里按 `Enter` 也是"切换并存默认"，按 `s` 则"仅本会话切换"。
2. **启动时**：`claude --model sonnet`，只对该次启动生效。
3. **环境变量**：`ANTHROPIC_MODEL=haiku claude`，仅对启动它的那次会话生效。
4. **settings 文件**：在 `~/.claude/settings.json` 写 `"model": "opus"`，永久默认。

**操作说明**：

```bash
# 方式2：启动时指定
claude --model sonnet

# 方式3：环境变量（适合临时对照测试）
ANTHROPIC_MODEL=haiku claude

# 方式1：会话内临时切
/model haiku
```

**预期结果**：界面顶部（logo 和 spinner 旁边）会显示当前模型，例如 `sonnet`，旁边还会显示 effort 等级如 `with high effort`。

**常见问题**：

- **想在不同终端同时跑不同模型** → 不要用 `/model`（它会把默认存下来影响别的会话），而是每个终端各自用 `claude --model xxx` 启动。
- **`/model` 改了，下次进来又变回去了** → 因为项目级或企业级 settings 优先级更高，会话结束自动重应用。看启动横幅，它会注明是哪个 settings 文件设定的。
- **`--resume` 续跑的会话模型不对** → 续跑的会话保留它**保存时**所用的模型，不受当前 `model` 设置影响。这是设计如此，防止别的会话的 `/model` 偷偷改掉你的续跑。

### 步骤三：用 `opusplan` 拿到"规划用 Opus、执行用 Sonnet"的混合体验

很多人不知道这个别名。`opusplan` 不是某个模型，而是一种**自动混合策略**：

- 进入**计划模式（plan mode）**时，用 `opus` 做复杂推理和架构决策；
- 进入**执行模式**时，自动切 `sonnet` 生成代码。

等于"鱼与熊掌兼得"——规划阶段享受 Opus 的强推理，执行阶段享受 Sonnet 的高性价比。

**操作说明**：

```bash
# 启动即用混合模式
claude --model opusplan

# 或会话内切
/model opusplan

# 想两阶段都强制 1M 上下文（非自动升级档位时）
/model opusplan[1m]
```

**预期结果**：当你按计划模式提交方案、模型开始执行时，顶部模型标识会从 `opus` 切到 `sonnet`。

**常见问题**：

- **公司把 Opus 加进了 `availableModels` 黑名单** → `opusplan` 不会报错，而是在计划阶段也老老实实待在 Sonnet。
- **已经够用 Opus，不想折腾** → 那就直接 `opus`，`opusplan` 是给"想要 Opus 的脑、Sonnet 的手"的人准备的。

### 步骤四：用 `/effort` 调节"想多久再答"

新版引入了**自适应推理（adaptive reasoning）**与 effort 等级。同一个模型，effort 越高，"思考"越深，但也更慢更贵。

| 等级 | 适用场景 |
| --- | --- |
| `low` | 短、聚焦、对延迟敏感、对智力不敏感的小任务 |
| `medium` | 成本敏感、可牺牲一点智力的工作 |
| `high` | 平衡，Opus 4.8 / Sonnet 4.6 / Fable 5 的**默认** |
| `xhigh` | 更深推理，Opus 4.7 的默认 |
| `max` | 极难任务，当前会话生效，可能"想太多"，先测再用 |

**操作说明**：

```bash
# 交互滑块
/effort

# 直接设定
/effort medium

# 回到模型默认
/effort auto
```

也可以在 `/model` 选择器里用左右方向键调 effort 滑块；或启动时 `claude --effort low`；或环境变量 `CLAUDE_CODE_EFFORT_LEVEL=low`；或 settings 里 `"effortLevel": "low"`。

> 小技巧：只想在**某一轮**让模型多想，又不想动全局设置，就在那句提示里加一个词 `ultrathink`——Claude Code 会识别这个关键词，为该轮加深推理，且不改 effort 等级。注意只有 `ultrathink` 是关键词，"think hard""think more"都只是普通文本，不触发任何特殊行为。

**预期结果**：顶部显示 `with low effort` / `with high effort`，你能随时确认当前强度。

**常见问题**：

- **设了 `xhigh` 但模型没动静** → 该模型可能不支持 `xhigh`（如 Opus 4.6 只到 `high` 之上的 `max`，结构不同）。Claude Code 会自动降到"不高于你设定值"的最高支持等级。
- **Haiku 没有 effort 选项** → 正常。effort 表里没列 Haiku，它不支持调节。

### 步骤五：用 `/config` 一次调好所有首选项

`/model` 只管模型，`/config` 才是**总控面板**。输入 `/config`（别名 `/settings`）会弹出三标签面板：**Status / Config / Usage**。`Tab` 切标签，方向键移动，`Enter` 切换，`Esc` 关闭。

Config 标签**默认处于搜索态**——直接打字就能过滤设置项，不必翻几十项。重点项：

- **Theme**：终端配色主题（等同 `/theme`）。
- **Language**：UI 与回复语言，想用中文就在这里设。
- **Thinking mode**：是否开启扩展思考，默认开。
- **Fast mode**：同模型更快输出（等同 `/fast`）。
- **Auto-compact**：接近上下文上限时自动压缩历史。**强烈建议保持开启**。
- **Rewind code (checkpoints)**：改文件前自动建快照，配合 `/rewind` 回滚。**这是你的安全网，别关**。
- **Default permission mode**：默认权限模式。新手用 `default`（危险操作会问你），熟练后再按需切。
- **Notifications**：长任务完成时的通知渠道。

**操作说明**：

1. 输入 `/config`，回车。
2. 直接打 `compact`，立刻定位到 Auto-compact 开关，确认是开。
3. 打 `lang`，进 Language 选中文。
4. 全部调完按 `Esc` 保存关闭。**如果调坏了，再按 `Esc` 会撤销本次面板里的全部修改**——可以放心试。

**预期结果**：界面语言变中文、主题更换、设置写进 `~/.claude/settings.json` 与 `~/.claude/config.json`，无需重启。

**常见问题**：

- **不知道某项是干嘛的** → Status 标签本质是 `/status`，先切过去看模型、账号、MCP 连接、诊断，把环境摸清再改。
- **手动改 JSON 还是面板改？** 日常用面板（有校验、即时生效、可 `Esc` 撤销）；批量配权限规则、hooks、MCP 这类复杂结构时才手编 JSON。

### 步骤六：按需开启 1M 上下文，并随时确认当前模型

大型代码库会撑爆默认 200K 上下文。Fable 5、Opus 4.6+、Sonnet 4.6 都支持 **1M token** 窗口，但获取方式不同：

- **Opus（1M）**：Max/Team/Enterprise 订阅**自动升级**，无需配置；Pro 与 API 需走 usage credits 或 API 计费。
- **Sonnet（1M）**：**所有档位都需 usage credits**，连 Max 也不例外。
- **API/按量付费**：Opus 4.8/4.7 与 Fable 5 始终 1M；Sonnet 1M 需 credits。

**操作说明**：

```bash
# 用 [1m] 后缀显式开
/model opus[1m]
/model sonnet[1m]

# 或在全名后加
/model claude-opus-4-8[1m]
```

想彻底关掉 1M，设 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`，选择器里的 1M 变体消失。

**确认当前模型**：在交互界面输入 `/status`，或配置 statusline 在状态栏常驻显示。

**常见问题**：

- **选择器里没有 `[1m]` 选项** → 账号不支持或版本旧，重启会话或升级试试。
- **开了 1M 是不是更贵** → 200K 之外的 token **不加价**，标准费率；走 subscription 的算订阅额度，走 credits 的算 credits。

---

## 实战案例：用三档模型搭一个"番茄钟 CLI"，对比质量/速度/成本

目标：30 行左右的 Python 命令行番茄钟，支持启动、暂停、查看剩余。我们在**同一个空项目**里，用三种模型分别从零实现，直观感受差异。

**1. 准备目录**

```bash
mkdir pomodoro-lab && cd pomodoro-lab
# 用 Sonnet 起一个会话
claude --model sonnet
```

**2. 给三档模型同一个需求**

在交互界面粘贴：

> 用 Python 写一个命令行番茄钟 `pomodoro.py`：`python pomodoro.py start` 开始 25 分钟计时并每秒打印剩余时间；`pause` 暂停；`resume` 继续；`status` 看剩余；要能优雅处理 Ctrl+C。不要用第三方库。

记下：Sonnet 的实现是否一次跑通、用了多少 token、耗时多久（顶部会显示 turn 耗时）。

**3. 切 Haiku 重做，再切 Opus 重做**

```text
/model haiku
（粘贴同样需求）

/model opus
（粘贴同样需求）
```

**4. 预期对比（典型结果）**

| 模型 | 一次成功率 | 代码质量 | 耗时 | 适合度 |
| --- | --- | --- | --- | --- |
| haiku | 基本跑通，边界处理略糙 | 够用 | 最快 | 这种小活儿它的主场 |
| sonnet | 一次跑通，Ctrl+C 处理完善 | 干净 | 中等 | 日常首选 |
| opus | 一次跑通，可能附带单元测试与 argparse | 过度但优秀 | 最慢 | 杀鸡用牛刀 |

**5. 我的推荐配置（写进 settings）**

```json
{
  "model": "sonnet",
  "effortLevel": "high",
  "env": {
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
  }
}
```

日常 Sonnet + high；遇到跨文件重构临时 `/model opus` 或 `/model opusplan`；机械改动 `/model haiku`。这样既不浪费算力，硬任务也能啃下来。

**6. 验收**：`python pomodoro.py start` 应每秒打印剩余分钟秒；Ctrl+C 不报错堆栈；`pause`/`resume`/`status` 行为正确。

---

## Mermaid 流程图：首次选配决策流

```text
flowchart TD
    A[刚装好 Claude Code] --> B{任务多复杂?}
    B -- "改注释/重命名等机械活" --> H[haiku, low effort]
    B -- "写功能/改bug/读代码" --> S[sonnet, high effort<br/>日常默认]
    B -- "跨文件逻辑/疑难bug" --> O[opus 或 opusplan]
    B -- "长程自主/架构级大重构" --> F[fable 5]
    S --> Q{上下文快满?}
    Q -- "是,且是长会话" --> Q1["/model sonnet[1m]<br/>需 usage credits"]
    Q -- "否" --> R
    O --> R
    H --> R
    F --> R
    R[/config 调主题/语言/通知/auto-compact] --> V[/status 确认当前模型与 effort] --> Z[开始干活]
```

## 延伸阅读

- **Model configuration（官方）**：`code.claude.com/docs/en/model-config`——别名、effort、1M、fallback chain 的权威来源，遇到版本差异先查这里。
- **Claude Code settings（官方）**：`code.claude.com/docs/en/settings`——settings 文件层级与优先级，理解为什么你的设置"不生效"。
- **/config 面板逐项解析**：`blog.vincentqiao.com/en/posts/claude-code-config/`——把面板每个开关讲清楚，含搜索技巧与 Esc 撤销。
- **模型选型实操对比**：`www.morphllm.com/claude-code-models`——含 SWE-bench 分数与定价，量化"什么时候该升档"。

## 训练营适用性评估

- **适合类型**：面向在职开发者/转岗工程师的**Claude Code 入门训练营**首日"环境就绪"模块；也可作为企业内训的"首次配置与模型治理"开场。
- **不适合**：纯算法/数学类训练营（与模型选型无关）；以及已覆盖 hooks、subagent、SDK 的进阶营（内容过浅）。
- **预计教学时长**：讲授 25 分钟 + 上机 35 分钟（三档模型对比实验是核心，必须留足动手时间）= **约 60 分钟**。
- **考核点**：学员能说出四档模型定位、能写出推荐 settings、能用 `/status` 确认当前模型与 effort。

## 参考来源

1. [Model configuration — Claude Code Docs](https://code.claude.com/docs/en/model-config) — 官方模型别名、effort 等级、1M 上下文、fallback 链的权威说明
2. [Claude Code settings — Claude Code Docs](https://code.claude.com/docs/en/settings) — settings 文件层级、优先级与环境变量配置
3. [Best Model for Claude Code (2026): Opus vs Sonnet vs Haiku — Morph](https://www.morphllm.com/claude-code-models) — 含 SWE-bench 分数、定价与 /model 工作流的实操对比
4. [Claude Code /config: Every Setting Explained — Vincent's Blog](https://blog.vincentqiao.com/en/posts/claude-code-config/) — /config 面板逐项中文级解析，含搜索与 Esc 撤销技巧
5. [Pick the Right Claude Code Model for Every Task — dev.to](https://dev.to/klement_gunndu/pick-the-right-claude-code-model-for-every-task-1p6a) — 模型分档、别名与 effort 的社区选型指南

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
