解决Claude Code调用GLM 5.2报错400的实战指南
最近在折腾Claude Code这个开发助手时,我发现一个挺让人头疼的问题。尤其是在尝试接入国产大模型GLM 5.2的时候,动不动就给我弹窗报错:“API Error: 400 Model only support text input”。
错误提示界面
说实话,刚开始我一脸懵逼,因为我根本没打算让AI去读图,也没有粘贴任何图片。查了一下日志才发现,原来是Claude Code这个工具自作主张了。
问题出在哪?
很多时候,Claude Code为了保证代码或界面审查的准确性,会自动触发截图功能。它可能会突然在后台说一句:“让我截取所有三个镜头的屏幕截图,以从视觉上确认设计”。这本来是个挺强大的功能,特别是在调试前端或者查看复杂的配置界面时。但是,如果你接的后端模型(比如这里的GLM 5.2)只支持纯文本交互,那这个请求发过去肯定就炸了——直接给你返回400错误。
这就好比你非要给一个只会听歌的MP3播放器传一张高清图,它根本处理不了,只能报错。
实战排查与解决思路
检查配置文件中的工具设置
既然知道了症结所在,我们就得想办法治它。这里分享几个我测试下来比较有效的方案,大家可以根据自己的实际情况按需取用。
1. 严格检查工具调用权限
Claude Code之所以能截图,是因为它有调用系统截图工具的权限。如果你确定当下的工作流不需要它看图,最快的办法是在配置里把相关的视觉工具插件关掉。
- 检查配置文件:在你的Claude Code配置目录下(通常是
.claude或者工作目录的配置文件),找找是否有关于tools或者capabilities的设置。 - 禁用截图/视觉类工具:如果在配置里看到了类似
screenshot、vision、browser之类的工具开关,试着把它们临时禁用。这样AI就会失去“眼睛”,只能老实通过文本跟你交流。
2. 模型路由与上下文管理
如果你是在一个多模型混用的环境里(比如有时候用GPT-4V看图,有时候用GLM 5.2写代码),那就得注意上下文的隔离。
- 切换模型时清空视觉上下文:在从支持视觉的模型切换到GLM 5.2之前,最好手动确认或者通过Prompt明确告知:“当前切换到纯文本模型,不要尝试读取或获取图片信息”。
- 特定的Prompt约束:在系统提示词(System Prompt)里加上一条硬性规则:“本环境不支持图像输入,严禁调用截图相关API”。虽然不能百分之百杜绝,但能大幅降低误触率。
3. 探索兼容性更好的模型版本
这个问题本质上是因为模型能力的边界不匹配。GLM 5.2在纯文本处理上可能很强,但如果它不支持多模态输入,用来跑这种具备视觉能力的Agent工具确实容易翻车。
- 关注模型更新:有时候报错是因为你用的API版本太旧。去看看官方文档,GLM 5.2或者更新版本是否已经开放了视觉接口。万一哪天它突然支持了呢?
- Fallback机制:如果你在写代码调用API,可以加一段Fallback逻辑。当捕获到
400错误并且错误信息包含only support text时,自动重新发起一个不带图片的文本请求,或者提示用户“当前模型无法处理图片,已自动转为文本模式”。
总结
Claude Code 自动截图是一个双刃剑,用好了效率起飞,用不好(比如配上了不支持图片的模型)就是报错机器。遇到 400 Model only support text input 别慌,大概率不是代码写错了,而是工具和模型的“性格”不合。
通过限制工具权限、优化Prompt或者升级模型版本,基本都能搞定这个问题。希望这些小经验能帮大家少踩点坑,专心写代码!
如果你有其他更奇葩的报错或者独家的解决姿势,欢迎在评论区分享,咱们一起避坑。

评论已关闭