Claude Code怎么用Sonnet 5.5?选模型、调effort和权限排查

在Claude Code中明确选择Sonnet 5.5,核对客户端版本、供应商别名和账户权限,分清订阅与API计费,排查常见接入问题。

台灯的艺术线稿,配有 Sonnet 5.5 in Claude Code 标题。

在支持该模型ID的供应商上,新建 Claude Code 会话可用 claude --model claude-sonnet-5-5,已有会话可用 /model claude-sonnet-5-5 明确选择 Sonnet 5.5。先核对客户端版本和账户的模型权限。Anthropic 当前文档要求 Claude Code v2.1.284 或更高版本。

这里要分清三件事:客户端能否识别模型、供应商是否提供模型,以及账户是否有使用权限。本文于 2026 年 9 月 29 日对照 Claude Code模型配置文档核对,不代表所有订阅或第三方端点都有访问权。

检查版本并选定模型

在终端运行:

claude --version
claude update
claude --model claude-sonnet-5-5 --effort medium

claude update 会更新已安装客户端。如果安装由组织统一管理,应遵循组织的软件管理流程。已有交互会话中可使用:

/model claude-sonnet-5-5
/status

查看显示的模型和供应商,不要只假设命令已经生效。模型在回答里自称是谁,并不能证明实际服务模型;客户端状态和响应元数据更适合作为证据。

短别名 sonnet 很方便,但具体映射取决于供应商和客户端版本。当前文档在 Anthropic API 下把它映射为 Sonnet 5.5,部分云供应商的别名仍指向较旧的 Sonnet。完整模型名表达了你的选择意图,但还必须采用该供应商支持的标识符和接入路径。

只改默认值为什么还不够

Claude Code 默认模型不一定是最新 Sonnet。当前文档将若干账户/供应商类别的默认模型列为 Opus 5.5,因此使用 Sonnet 需要明确选择。如果组织限制了模型列表,可见选项也会与公开教程不同。

ANTHROPIC_DEFAULT_SONNET_MODEL 等环境变量也可能改变别名映射。修改前应检查适用的用户、项目及托管配置,记下旧值,方便撤销本地试验。不要为解决一个会话的问题覆盖整个团队的供应商设置。

做可复现测试时先明确选模,再决定是否设为长期默认。一次试验不需要修改所有仓库和 Agent 定义。

按任务选择effort

Sonnet 5.5 原生 API 默认 high,而 Claude Code 模型配置文档将该客户端里的 Sonnet 5.5 默认值列为 medium。这是不同入口的设置,不能混为一谈。

需求明确的代码修改,可按文档先从 medium 开始;任务和结果确实需要时再提高。在交互客户端可用 /effort,启动时可用 --effort,但都受账户限制影响。托管配置可能限制实际档位,即使请求了更高值;能够查看时,应记录最终生效设置。

effort指南解释了为什么档位高不等于结果更好。建议在隔离分支上开始,先定义验收条件,最后检查可审核的 diff。模型运行工具仍需要权限,合并前也仍需检查改动。

订阅访问与API计费要分开

Claude 订阅登录和 API Key 是不同接入方式。如果提示组织已禁用 Claude Code 的订阅访问,这是账户策略阻碍,不证明 Sonnet 服务宕机。应由管理员确认获准使用的路径,不要绕过托管限制。

准备本文时,本地 Claude Code v2.1.281 返回了这条组织访问提示,没有执行 Sonnet 任务;该版本也低于文档要求。因此我们不声称该次尝试完成了模型实测、计时或成本测量。上面的命令是依据文档核对的操作说明。

如果存在已批准的 API 路径,请求就按 API 计费,不会因为同时购买了订阅而免费。试验前先核对精确端点、模型、账户与现行价格。Sonnet API费用指南介绍厂商价表的计算方法。

让模型改代码前,先建立干净基线

使用自己可控的小仓库,不放生产凭据,也不要混入无关未提交改动。打开 Claude Code 前,记录当前 commit,并先执行已有测试。否则原本就存在的失败容易被当作 Sonnet 引入的问题,无关改动也可能被算成模型成果。下面命令用于检查本地仓库;测试命令应使用项目现有命令,不要随意安装新框架。

git status --short
git rev-parse HEAD
claude --version
claude auth status

认证输出只在本地检查,运行记录仅保留必要的账户类型和批准状态。不要把凭据或完整环境变量转储贴进博客、issue 或提示词。如果团队统一管理安装与认证,先通过获批的管理员流程处理。升级客户端无法改变组织禁止使用订阅的策略。

获准升级后,再执行一次 claude --version。发出 update 命令不代表 shell 实际调用的程序已更新。机器装了多个版本时,命令搜索路径前面可能仍是旧版;若版本号没变,检查 command -v claude。记录路径和版本,尤其是终端与 IDE 表现不一致时。

选择会话模型,避免意外改掉默认值

当前模型配置文档给出的优先顺序是:会话内选择、启动参数、ANTHROPIC_MODEL、settings 的 model 字段,随后是默认模型设置。组织管理限制仍然适用。这解释了为什么高优先级选择生效时,编辑一个配置文件看起来没有作用。

单次隔离试用可以用支持的完整 ID 和显式 effort 启动:

claude --model claude-sonnet-5-5 --effort medium

进入会话后检查 /status 和模型选择器。当前文档说明,直接输入 /model <name> 会把选择保存到用户设置,影响后续会话。只想切换当前会话时,打开 /model,使用选择器的“仅本次会话”操作,文档默认按键为 s。不了解保存行为时,不能把直接 /model 命令描述成临时切换。

如果确实要永久修改,先记下原值,同时验证当前会话与新开的会话。如果只想试一次,用启动参数即可,避免修改共享仓库配置。别名跟随供应商推荐版本,完整 ID 则明确本次测试请求的版本。两者都不能单独证明网关实际提供了哪个模型,仍应查看可用的客户端或供应商元数据。

第一项代码任务必须有明确边界与可核验结果

初次任务适合用带失败测试的本地算术 bug,而不是“改进整个项目”。下面是编辑制作的练习夹具,数据是合成的;它不是 Sonnet 在本文准备期间生成的补丁。

# expenses.py: intentionally incorrect practice function
def total(rows):
    return sum(row["unit_price"] for row in rows)

三本单价 $4.50 的笔记本和两支单价 $1.25 的笔,错误函数返回 $5.75。正确结果应为 $16.00,因为每行必须先乘数量再求和。把下面的验收测试放在函数旁边:

# test_expenses.py
from decimal import Decimal
from expenses import total

def test_total():
    rows = [
        {"quantity": 3, "unit_price": Decimal("4.50")},
        {"quantity": 2, "unit_price": Decimal("1.25")},
    ]
    assert total(rows) == Decimal("16.00")

def test_empty():
    assert total([]) == 0

if __name__ == "__main__":
    test_total()
    test_empty()

调用模型前先执行 python3 test_expenses.py,第一条断言应失败。如果没有失败,检查文件内容和 import 路径,说明预期起点尚未建立。具体 traceback 可能变化,重点核对错误算术,不要机械匹配截图或行号。

接着提供完整任务,而不只是丢出一条错误:

修复 expenses.py 的 total(rows)。每行金额为 quantity 乘 unit_price,
沿用输入中的 Decimal。空输入必须返回 0。
只修改 expenses.py,不改测试,不安装依赖。
执行 python3 test_expenses.py,报告实际结果,解释原因、展示修改行,
列出尚未测试的假设。不要提交、推送或访问外部服务,
未运行的测试不得说成已运行。

这个提示词固定了边界,也让正确结果能被独立计算,但不保证模型一定遵守。检查 diff,确保没有弱化测试或修改无关文件。此处验收范围只有合法数据行与空输入;负数量、缺字段和格式错误应由产品要求另行决定,不能在这个小修复里擅自发明处理规则。

用本地证据验收改动

会话结束后,执行 git diff -- expenses.py test_expenses.py,再亲自运行测试。最终回复里说“通过”,证据强度不如实际进程退出码和输出。核对两行算术,并确认测试文件没改。若模型把断言改成 $5.75,虽然测试变绿,bug 仍在,必须拒绝这份补丁。

保存简洁记录:起始 commit、客户端版本、供应商和模型选择、请求 effort、测试命令、结果、diff、审核决定。如果账户策略在模型响应前就阻止了任务,记为“访问受阻”,不要记成“编码失败”。工具权限被拒绝与补丁错误也应分开。模型提出正确改动但未跑测试时,应标为“已提议补丁、未验证”,直到本地验证完成。

真实仓库还应执行受影响的回归测试、类型或构建检查。不要用这两个测试推断模型的总体编码能力。这个练习用于确认访问路径、文件修改流程和验收方法能协同工作,再逐步处理更大的任务。

干净地恢复原配置

如果只用了启动参数,结束会话后检查下一次会话状态,不要想当然地判断它的模型。如果修改了保存的默认值,通过支持的选择器或配置路径恢复原值并验证,保留组织管理配置。只删除自己创建的临时练习文件,不能为了撤销试用而盲目 reset 或 clean 共享仓库。

最终应区分四种结果:访问受阻;已调用模型但无可接受补丁;提出补丁但未验证;补丁经独立验证通过。这样安装或权限问题不会被写成模型能力评测,语气自信的解释也不会被误当成有效代码。

按实际错误排查

表现优先检查
客户端不识别模型客户端版本、精确模型ID
模型选择器中找不到供应商支持、组织限制、客户端版本
提示组织禁用订阅访问管理员批准的账户访问方式
401认证失败凭据及所选计费/供应商路径
选模后API报400请求字段和Sonnet 5.5迁移要求
工具之间会话像没反应响应与显示方式,不只是模型可用性

404 不能证明全球宕机,429 也不能证明订阅被取消。保存脱敏错误正文、时间戳和客户端版本。寻求支持时不要附上 token、完整环境变量或私有仓库上下文。

原生请求变化见 Sonnet 5.5 API迁移清单;是否需要从旧模型切换,可先看 Sonnet 5与5.5升级决策。

常见问题

/model sonnet一定代表Sonnet 5.5吗?
不一定。别名随供应商和版本变化。核对当前映射,需要固定选择时,使用供应商支持的完整ID。
为什么组织会禁止Claude Code?
只有管理员能确认具体策略。这是访问限制,不能据此判断 Sonnet 编程质量或整体可用性。
本文成功运行Sonnet了吗?
没有。本地尝试被组织权限拦截,客户端也偏旧。教程依据当前文档,并明确保留这些限制。