Claude Sonnet 4.6 是目前 Anthropic 性价比最高的旗舰模型,在 OpenClaw 社区中使用率排名第一。它的 100 万 Token 超长上下文窗口(Beta)是最受关注的特性之一——这意味着你的 AI 助手可以在一次会话中处理整个代码库、数千页文档,或连续数小时的多轮对话而不丢失任何记忆。然而,这个特性的配置方式有一些容易被忽视的细节,且 /status 命令在旧版本中存在显示错误(显示 200K 而非 1M)。本文将带你从头到尾搞清楚所有问题。更多资源请访问 OpenClaw 中文版官网。
一、Claude Sonnet 4.6 在 OpenClaw 中的基础配置
正确的模型 ID 格式
Claude Sonnet 4.6 于 2026 年 2 月 18 日发布,OpenClaw 在 v2026.2.17 中同日跟进支持。在 OpenClaw 中引用该模型时,使用以下格式:
# 标准格式(推荐)
anthropic/claude-sonnet-4-6
# 带版本日期的精确格式
anthropic/claude-sonnet-4-6-20260218
在 ~/.openclaw/openclaw.json 中将 Sonnet 4.6 设为默认模型:
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6"
}
}
}
}
或者通过命令行快速设置:
openclaw config set agents.defaults.model.primary "anthropic/claude-sonnet-4-6"
openclaw daemon restart
# 验证模型已生效
/status
前向兼容:供应商尚未支持时的降级处理
如果你使用的是第三方 API 代理,而该代理的模型目录尚未更新 Sonnet 4.6,OpenClaw 会自动降级到上一个可用的 Sonnet 版本,不会报错。你可以在日志中看到类似 model fallback: claude-sonnet-4-6 → claude-sonnet-4-5 的提示。要强制使用 Sonnet 4.6,确保你直接连接 Anthropic 官方 API 或已支持该模型的代理。
二、100 万 Token 上下文窗口:正确开启方式
为什么默认是 200K 而非 1M?
Claude Sonnet 4.6 的 1M Token 上下文窗口是 Anthropic 的 Beta 功能,需要通过一个特定的请求头(anthropic-beta: context-1m-2025-08-07)显式激活。OpenClaw 将这一机制封装为配置参数——出于成本考量,默认不开启:
- 标准上下文(≤200K Token):按正常 API 定价计费
- 超长上下文(200K~1M Token):按 长上下文溢价定价计费,费用更高
- 如果你的 API 账户不满足 Tier 4 要求,启用后请求会报错
开启 100 万 Token 上下文的配置方法
在 openclaw.json 中,对 Sonnet 4.6 单独启用 1M 上下文参数:
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6"
},
"models": {
"anthropic/claude-sonnet-4-6": {
"params": {
"context1m": true
}
}
}
}
}
}
设置 params.context1m: true 后,OpenClaw 在每次向 Anthropic API 发送请求时,会自动在请求头中附加:
anthropic-beta: context-1m-2025-08-07
你无需手动处理任何 API 头部,这一切由 OpenClaw 在底层透明完成。
验证 1M 上下文是否生效
配置完成后,在聊天中发送 /status,观察返回的上下文窗口信息:
# 未开启 context1m 时的 /status 显示
Context: 12,450 / 200,000 tokens (6.2%)
# 正确开启 context1m 后的 /status 显示
Context: 12,450 / 1,000,000 tokens (1.2%)
如果 /status 仍然显示 200K,请参考下一节的修复方案。
三、/status 显示 200K 的问题根因与修复历程
这是一个困扰了大量用户的显示 Bug,从 v2026.2.14 就有人报告,直到 v2026.4.1 才得到完整修复。
Bug 的根因
问题出在 OpenClaw 内部的模型上下文窗口查找机制(lookupContextTokens())上。具体来说:
模型缓存(MODEL_CACHE)使用裸模型 ID作为键(如 claude-sonnet-4-6),但 lookupContextTokens() 在查找时使用带供应商前缀的完整模型引用(如 anthropic/claude-sonnet-4-6)。键名不匹配导致缓存查找失败,最终回落到模型目录中硬编码的旧默认值(200K),忽略了用户通过 context1m: true 或 contextTokens: 1000000 配置的正确值。
这意味着:即使 1M 上下文实际上已经在 API 层面生效(请求头正确发送),/status 显示的仍然是错误的 200K。这造成了极大的混乱——用户以为配置没有生效,实际上配置是正确的,只是显示出了问题。
受影响的版本与修复版本
| 版本 | /status 显示 | 实际 API 上下文 | 状态 |
|---|---|---|---|
| v2026.2.14 ~ v2026.3.x | 200K(错误) | 1M(正确,如已配置) | ❌ Bug 存在 |
| v2026.4.1 | 1M(正确) | 1M(正确) | ✅ 已修复(#54796) |
v2026.4.1 的修复方案是引入感知供应商的上下文窗口查找(provider-aware context window lookup)——lookupContextTokens() 现在能正确处理带供应商前缀的模型引用,确保 Anthropic 4.6 系列模型的 1M 窗口覆盖能被正确识别和显示。
如果你还在旧版本上,如何确认 1M 是否实际生效?
在旧版本中,即使 /status 显示 200K,你也可以通过以下方式确认 1M 上下文是否实际生效:
# 查看最近一次请求的详细日志,确认 beta 头部已发送
openclaw logs --follow | grep "anthropic-beta"
# 正常应看到类似:
# [anthropic] request headers: { "anthropic-beta": "context-1m-2025-08-07", ... }
如果日志中有 context-1m-2025-08-07,说明 1M 上下文已在 API 层面生效,/status 的 200K 是纯粹的显示 Bug,不影响实际功能。升级到 v2026.4.1 可以修复显示问题。
四、API 访问限制:哪些账户可以使用 1M 上下文?
以下是 2026 年 4 月当前的访问限制,不同账户类型有不同的限制:
| 账户类型 | 是否支持 1M 上下文 | 说明 |
|---|---|---|
| Anthropic API Key(Tier 4,按量付费) | ✅ 支持 | 需要账户达到 Tier 4,200K 以上按长上下文定价计费 |
| Anthropic API Key(Tier 1~3) | ⚠️ 可能受限 | 部分 Tier 可能无法访问 Beta 功能,请求会返回错误 |
| Claude Max 订阅(OAuth) | ❌ 不支持 | OAuth 路径不支持 1M 上下文 Beta;选择 200K 上下文的模型版本可继续使用 OAuth |
| Claude Pro/Free 订阅(OAuth) | ❌ 不支持 | 同上 |
| Amazon Bedrock | ✅ 支持 | 需要手动设置 contextWindow: 1000000,地区版本 ID 格式有所不同 |
OAuth 用户注意:如果你通过 Claude Max/Pro 订阅的 OAuth 令牌使用 OpenClaw,启用
context1m: true后请求会失败。解决方案是去掉context1m参数,使用标准 200K 上下文,或切换到 Anthropic API Key(按量付费)方式接入。
1M 上下文报错时的处理方式
# 如果开启 context1m 后出现报错,禁用该参数
openclaw config set agents.defaults.models "anthropic/claude-sonnet-4-6" '{}'
# 或在配置文件中删除 params.context1m: true,改为:
{
"agents": {
"defaults": {
"models": {
"anthropic/claude-sonnet-4-6": {}
}
}
}
}
# 重启 Gateway
openclaw daemon restart
五、完整配置示例:根据场景选择最佳配置
场景一:日常使用(标准 200K 上下文,成本最优)
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6",
"fallbacks": ["anthropic/claude-opus-4-6"]
},
"models": {
"anthropic/claude-sonnet-4-6": {
"params": {
"cacheRetention": "short"
}
}
}
}
}
}
场景二:代码库分析 / 大文档处理(开启 1M 上下文)
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6"
},
"models": {
"anthropic/claude-sonnet-4-6": {
"params": {
"context1m": true,
"cacheRetention": "long"
}
}
}
}
}
}
场景三:多模型混合(日常用 Sonnet,复杂任务用 Opus)
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6"
},
"models": {
"anthropic/claude-sonnet-4-6": {
"alias": "sonnet",
"params": {
"cacheRetention": "short"
}
},
"anthropic/claude-opus-4-6": {
"alias": "opus",
"params": {
"context1m": true,
"cacheRetention": "long"
}
}
}
}
}
}
配置完成后,可以通过 /model opus 或 /model sonnet 在对话中随时切换模型(v2026.4.1 已修复切换时打断进行中任务的 Bug)。
六、100 万 Token 的成本控制:用好这把双刃剑
100 万 Token 的上下文窗口是强大的特性,但更大的上下文不等于更低的成本。每次 API 调用的费用与实际发送的 Token 数量成正比,而 OpenClaw 的智能体模式会在每次工具调用时携带完整的会话历史。
按 Claude Sonnet 4.6 的定价($3/百万输入 Token)简单估算:
- 使用 200K Token 上下文(满载):约 $0.6/次调用
- 使用 1M Token 上下文(满载):约 $3/次调用
- 每天 10 次心跳(携带大量上下文):从 $6 跳到 $30
四条成本控制原则:
- 按需启用,不要全局开启:
context1m应该按具体使用场景针对性启用,而不是对所有模型全局设置。日常对话和心跳任务不需要 1M 上下文 - SOUL.md 和 AGENTS.md 保持精简:这两个文件会注入到每次会话,如果积累到数千词,会在 1M 上下文下迅速消耗预算
- 监控会话 Token 用量:
/status可以实时查看当前会话的 Token 消耗,修改任何上下文文件后都应检查 - 心跳任务使用独立会话:将
isolatedSession: true与lightContext: true配合,防止心跳触发时携带巨型历史上下文
七、Prompt Cache 配合 1M 上下文:最优组合
Anthropic 的 Prompt Caching 功能与 1M 上下文配合使用时,可以显著降低长上下文场景的实际成本。OpenClaw 通过 cacheRetention 参数控制缓存策略:
{
"agents": {
"defaults": {
"models": {
"anthropic/claude-sonnet-4-6": {
"params": {
"context1m": true,
"cacheRetention": "long"
}
}
}
}
}
}
cacheRetention: "short":5 分钟缓存(API Key 默认,适合频繁短对话)cacheRetention: "long":1 小时缓存(适合长文档分析,显著降低重复内容的 Token 成本)
注意:Prompt Cache 仅对 Anthropic API Key 方式有效,OAuth 订阅认证不支持缓存设置。
八、常见问题解答
问:升级到 v2026.4.1 后,/status 还是显示 200K,怎么办?
确认配置文件中 params.context1m: true 已正确写入对应模型下,而非写在顶层。执行 openclaw config get agents.defaults.models 检查配置是否正确应用,然后重启 Gateway:openclaw daemon restart。
问:开启 context1m 后报错 “long context not available for your subscription”?
你的 Anthropic API 账户不满足 1M 上下文的访问要求(通常需要 Tier 4 或专属企业协议)。解决方案:移除 context1m: true 继续使用 200K 上下文,或联系 Anthropic 申请升级账户等级。
问:使用 Claude Max 订阅可以用 1M 上下文吗?
暂时不支持。1M 上下文 Beta 功能目前仅适用于通过 API Key 方式接入的账户。Claude Max 订阅通过 OAuth 令牌接入时,无法激活该 Beta 功能。如果你同时持有 Claude Max 订阅和 API Key,可以将 OpenClaw 的认证方式切换为 API Key 来使用 1M 上下文。
问:Sonnet 4.6 和 Opus 4.6,1M 上下文场景下哪个更值?
两者的 1M 上下文支持相同,主要区别是价格和能力:
- Sonnet 4.6:$3/$15 每百万 Token(输入/输出),OSWorld 得分 72.5%,SWE-bench 得分 79.6%
- Opus 4.6:$5/$25 每百万 Token(输入/输出),更强的复杂推理能力
社区普遍建议:先用 Sonnet 4.6,只在 Sonnet 无法满足时才切换 Opus。对于长文档摘要、代码分析等大多数 1M 上下文使用场景,Sonnet 4.6 的质量完全够用,成本只有 Opus 的约 60%。
总结
OpenClaw 接入 Claude Sonnet 4.6 的完整配置要点:
- 模型 ID 使用
anthropic/claude-sonnet-4-6 - 开启 1M 上下文:在对应模型配置下添加
params.context1m: true /status显示 200K 的问题:升级到 v2026.4.1 完整修复(#54796)- OAuth 用户无法使用 1M 上下文,需要切换到 API Key 方式
- 1M 上下文按需开启,配合
cacheRetention: "long"控制成本
想了解更多 OpenClaw 与 Claude 模型的深度集成技巧,欢迎访问 OpenClaw 中文版官网。