【无标题】
Claude Code + GLM API 上下文窗口限制错误排查
Claude Code + GLM API 报错:The model has reached its context window limit
1. 问题现象
在使用 Claude Code(以下简称 CC)配合 GLM API 进行开发时,突然遇到如下报错:
Error: The model has reached its context window limit.
这个错误意味着当前对话的上下文窗口已满,模型无法继续处理新的输入。对于习惯了 CC 1M 上下文窗口的用户来说,切换到 GLM 5.1(200K 上下文)时很容易踩到这个坑。
2. 原因分析
2.1 上下文窗口不匹配
| 模型 | 上下文窗口大小 |
|---|---|
| Claude Code(默认) | 1M(约 100 万 token) |
| GLM 5.1 | 200K(约 20 万 token) |
CC 的默认上下文窗口高达 1M,但 GLM 5.1 只有 200K。当 CC 在后台积累了大量对话历史(远超 200K)后,切换到 GLM API 时,GLM 无法承载如此庞大的上下文,直接报错。
2.2 自动压缩机制未触发
CC 本身具备自动压缩上下文的功能,但在跨模型切换的场景下,自动压缩可能没有正确触发,导致上下文窗口超限问题被"卡死"——既无法自动压缩,也无法继续对话,形成死锁。
3. 解决方案
方案一:清空对话历史(/clear)
如果项目会话历史可以接受被清空,这是最直接的方法:
- 在 CC 中输入
/clear命令 - 确认清空当前会话的所有历史记录
- 重新开始对话,此时上下文窗口重置,GLM API 可以正常工作
优点:操作简单,一步到位
缺点:丢失所有对话历史,无法回溯之前的上下文
方案二:切换大窗口模型抢救(推荐)
如果你不想丢失对话历史,可以用一个上下文窗口更大的模型来"抢救":
- 切换到 DeepSeek V4:DeepSeek V4 同样支持 1M 上下文窗口,与 CC 默认一致
- 执行压缩命令:在 DeepSeek V4 下执行
/compact命令,让模型自动压缩和精简上下文 - 切回 GLM:压缩完成后,再通过
cc-switch切换回 GLM 5.1
# 使用 cc-switch 切换到 DeepSeek V4
https://zhuanlan.zhihu.com/p/2031777276577175011
# 执行上下文压缩
/compact
# 压缩完成后切回 GLM
优点:保留对话历史的核心信息,无需从头开始
缺点:需要多一步切换操作
为什么选择 GLM? 因为开了 GLM 的年度会员。
4. 预防建议
为了避免再次遇到同样的问题,建议在日常使用中注意以下几点:
- 定期压缩上下文:即使没有报错,也建议每隔一段时间执行
/compact,控制上下文大小 - 监控上下文用量:关注 CC 的状态提示,了解当前上下文占用情况
5. 总结
Claude Code + GLM API 的上下文窗口限制错误,本质上是模型上下文容量不匹配导致的。通过 /clear 清空会话或切换到 DeepSeek V4 执行 /compact 再切回 GLM,都可以有效解决这个问题。建议在日常使用中养成定期压缩上下文的习惯,防患于未然。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)