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)

如果项目会话历史可以接受被清空,这是最直接的方法:

  1. 在 CC 中输入 /clear 命令
  2. 确认清空当前会话的所有历史记录
  3. 重新开始对话,此时上下文窗口重置,GLM API 可以正常工作

优点:操作简单,一步到位
缺点:丢失所有对话历史,无法回溯之前的上下文

方案二:切换大窗口模型抢救(推荐)

如果你不想丢失对话历史,可以用一个上下文窗口更大的模型来"抢救":

  1. 切换到 DeepSeek V4:DeepSeek V4 同样支持 1M 上下文窗口,与 CC 默认一致
  2. 执行压缩命令:在 DeepSeek V4 下执行 /compact 命令,让模型自动压缩和精简上下文
  3. 切回 GLM:压缩完成后,再通过 cc-switch 切换回 GLM 5.1
# 使用 cc-switch 切换到 DeepSeek V4
https://zhuanlan.zhihu.com/p/2031777276577175011

# 执行上下文压缩
/compact

# 压缩完成后切回 GLM

优点:保留对话历史的核心信息,无需从头开始
缺点:需要多一步切换操作

为什么选择 GLM? 因为开了 GLM 的年度会员。

4. 预防建议

为了避免再次遇到同样的问题,建议在日常使用中注意以下几点:

  1. 定期压缩上下文:即使没有报错,也建议每隔一段时间执行 /compact,控制上下文大小
  2. 监控上下文用量:关注 CC 的状态提示,了解当前上下文占用情况

5. 总结

Claude Code + GLM API 的上下文窗口限制错误,本质上是模型上下文容量不匹配导致的。通过 /clear 清空会话或切换到 DeepSeek V4 执行 /compact 再切回 GLM,都可以有效解决这个问题。建议在日常使用中养成定期压缩上下文的习惯,防患于未然。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐