我是如何给「残疾」国产模型接上眼睛和联网的
前两天我在折腾 Claude Code 的模型配置,想着把智谱的 GLM-5.2 接进去试试效果。代码补全倒是挺流畅的,上下文理解也还行,正当我美滋滋地觉得「国产模型真香」的时候,随手往对话框里丢了一张截图。
结果是一行报错,错误码400。
我盯着那个错误提示愣了一下,反应过来之后才想到,对哦,GLM-5.2 没有多模态识图能力。不光是智谱,你去看看 DeepSeek、Qwen 这些国产主流模型,在 Claude Code 的接口兼容层里,代码生成和工具调用都能跑通,唯独图片输入这块,全军覆没。
这还不是最离谱的。
更离谱的是,因为国产模型不支持 Anthropic 原生的服务端工具,连 web_fetch 这个用来抓取网页内容的工具都调用不了。你让它去查个最新版本的 React 文档,它直接开始给你背训练数据里的过时内容,信誓旦旦地给你推荐已经废弃的 API。
就很崩溃。
想象一下,一个 AI 助手,看不见你屏幕上的报错截图,也上不了网查资料,只能靠着脑子里那堆不知道啥时候的数据瞎猜。这哪是人工智能啊,这分明是人工智障。
我当时就在想,不行,得给它装上义体。
我先把问题拆成两块。
第一块是眼睛。模型看不见图片,那我们就给它配个眼镜。
我自己写了一个 skill,叫 /recognize-image。原理其实挺朴素的,既然大模型本身没有视觉能力,那就让它当一个指挥官,遇到图片的时候,自己构造一段详细的提示词,然后把图片丢给能识图的小模型去处理。小模型看完图之后,把看到的内容用文字描述返回给大模型。大模型拿到这个描述,就相当于「看」到了图片。
整个过程对用户来说是无感的。你照常把图片发过去,后台会自动走这套流程。
但这里又冒出来一个坑。
Claude Code 的 VSCode 插件,默认行为是直接把粘贴的图片塞进消息里发给模型。这对于 Claude 原生的多模态模型没问题,但换成国产模型之后,因为不支持图片工具,直接就会报错。所以我改了一下插件的逻辑,让粘贴的图片先保存到本地临时目录,然后把图片路径以文本形式插入到对话里。这样 skill 就能读取到这个路径,再去调用识图流程。

坦率的讲,这个改造挺粗暴的,就是在插件的粘贴事件里加了一层拦截。但效果出奇地好。现在我可以直接截图、粘贴,国产模型也能「看」图说话了。
第二块是搜索。模型上不了网,那我们就给它配个浏览器。
Claude Code 自带的 web_fetch 工具,本质上依赖的是 Anthropic 的服务端能力。你把 ANTHROPIC_BASE_URL 指向国产模型的兼容接口之后,这个工具就直接废掉了。我试过几次,模型要么假装自己调了工具然后胡编内容,要么直接报错说工具不可用。
那怎么办呢?
我的方案是,在 Claude Code 的通用规则提示词里,明确告诉 AI 禁用 web_fetch 工具。然后给它配两个 MCP 服务,一个叫 tavily,一个叫 cc-web。
Tavily 是一个专门给 AI 用的搜索引擎 API,返回的结果已经是清洗过的、适合大模型直接阅读的格式。你先去 tavily.ai 注册个账号,拿到 API key,然后在 Claude Code 的 MCP 配置里加上这么一段:
{ "mcpServers": { "tavily": { "command": "npx", "args": ["-y", "@tavily/mcp"], "env": { "TAVILY_API_KEY": "你的key" } } }}配置完之后,你问 AI 「React 19 有什么新特性」,它就不会再去翻自己脑子里的陈年老黄历了,而是直接走 Tavily 去搜最新的文档和博客,然后把结果整理成回答给你。
但是有个现实问题。Tavily 的免费额度是每月 1000 次调用,对个人轻度使用来说够用了,但如果你跟我一样,动不动就让 AI 去查一堆资料,很快就会把额度烧光。
怎么办呢?
有个比较骚的操作。Tavily 支持一个账号注册多个 API key,而且免费额度是按 key 算的。所以你可以注册好几个账号,搞一堆 key,然后在配置里做一个轮询逻辑。我在本机就是这么配的,写了个简单的代理层,每次请求自动换 key,相当于白嫖了 N 倍的免费额度。
当然如果你嫌麻烦,直接充钱也行,Tavily 的付费版也不贵。
那 cc-web 是干嘛的呢?它是兜底方案。当 Tavily 因为某些原因搜不到结果,或者返回的内容不够完整的时候,cc-web 就会顶上,直接去抓取指定的网页内容。这两个工具一主一备,基本上就能覆盖所有的搜索需求了。
我在提示词里给 AI 定的优先级很明确,先走 Tavily,Tavily 搞不定的再丢给 cc-web,web_fetch 直接禁用。这样一套组合拳下来,国产模型在 Claude Code 里也能实时联网了。
为了验证这套方案到底能不能用,我特意设计了一个复合任务,同时测识图和联网两个能力。
我给 AI 丢了一张 SQL 注入靶场的截图,让它识图,同时让它去调研 GPT 和 Claude 的最新模型信息。

AI 收到之后,一边调用 recognize-image 去识别那张截图,一边通过 Tavily 搜索最新模型资讯。两个操作并行执行,互不干扰。
最后它给我的汇报是这样的。

截图里的 SQL 注入 payload 被完整识别出来了,数据库列表也读得准。GPT 和 Claude 的最新动态也都搜到了,没有给我编造假消息。
到这一步我才真的松了一口气。国产模型不是不能用,它只是缺了几块拼图。你把眼睛和浏览器给它配齐,它照样能干活。
说实话,折腾完这一套之后,我的感受挺复杂的。
一方面,确实爽。现在我的 Claude Code 配置里默认就是 GLM-5.2,代码写得又快又准,还能看图、能上网,使用体验跟 Claude 原生模型已经差不了太多了。成本还低了一大截。
但另一方面,又有点心酸。
为什么用户要自己写 skill、改插件、配 MCP、搞多 key 轮询,才能让一个国产模型正常地「看见」和「搜索」?这些能力在 Claude、GPT 那边都是开箱即用的。国产模型在基础能力上追得很快,但在生态兼容和工具链的完整性上,差距还是挺明显的。
我不是说国产模型不行。GLM-5.2 的代码能力真的挺强的,DeepSeek V4 的逻辑推理也很惊艳。但就像一个视力正常的人和一个戴眼镜的人,虽然最终都能看清世界,但那个戴眼镜的人永远要多一道工序。
我写 recognize-image 这个 skill,改 VSCode 插件的配置,配 Tavily 的 MCP,做 key 的轮询。这些操作对于普通用户来说,门槛其实挺高的。你需要懂一点代码,需要知道什么是 MCP,需要能看懂报错信息,需要愿意花时间去折腾。
那那些不懂代码的普通用户呢?他们就活该用着一个看不见、搜不了的「残疾人」模型吗?
我觉得不是。
所以我把这些经验写下来,把配置方法分享出来。不是说这些东西有多牛逼,而是希望能帮更多人少走点弯路。技术进步的最终目的,应该是让所有人都能平等地享受它带来的便利,而不是制造新的信息鸿沟。
说到底,给模型装上眼睛和浏览器,其实也是在给我们自己争取更多的选择权。
不用被某一家厂商绑架,不用因为某个功能缺失就被迫放弃一个性价比很高的模型。你想用 GLM 就用 GLM,想用 DeepSeek 就用 DeepSeek,我来帮你把缺失的拼图补上。
这可能也是独立开发者在这个时代的某种价值吧。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!