我看着一个 AI 引擎在 14 天里,从"记忆"走进了"搜索"

(这是"AI 可见性测量"系列第五篇。前情:我开源了一套测量品牌在 AI 引擎里可见性的工具(Python + Java 两版),并在第三篇里记录了六次"如果全自动就翻车、被人审拦下来"的瞬间。这一篇,是第七、八、九次拦截------以及一个更罕见的发现:我亲眼看着一个引擎换了一代模型,行为就从"凭记忆回答"变成了"真联网检索"。全过程 14 天。)

10 月 31 日:它不联网

测量的方法之一,是给每个引擎挂上官方的联网搜索工具(web_search),然后问它"现在最好的扫地机是什么"。

智谱的 glm-4-flash 给了我一份 2023 年的答案:开口就是 "As of my last update" ,头名推荐 iRobot Roomba s9+------一台 2022 年的机器。响应里也没有任何搜索结果字段。

我写了个探针脚本验证,结论:这个模型不执行联网工具,它在用训练记忆答题。于是我把它标记为"记忆层"引擎,和真联网的 deepseek"搜索层"分开------这套"双层模型"后来成了报告的方法论框架。

11 月 2 日:它联网了

我给智谱账户充了值,把引擎升到新出的 glm-5.3-flash,重新跑探针。

这次它返回了搜索引用,回答的是当前在售的型号。grounded: true。

同一个厂商,同一个工具参数,间隔 14 天,两代模型------一个从记忆答题,一个真联网。 我把引擎的层级标签从 memory 翻成了 search,并且在配置里注释了翻转的原因和两次探针的日期。

这件事本身平平无奇(新模型能力更强,理所应当)。有意思的是接下来三个"差点得出错误结论"的瞬间。

拦截七:引擎配置的 bug,伪装成了引擎行为

升级当天,智谱接口连续返回 400。当时最省事的解释是:"新模型不支持这个工具参数"------如果就这么写了,这代模型就会被错标成"不支持联网"。

真因藏在框架深处:Spring Boot 把 YAML 里的列表绑定进 Map<String, Object> 时,会把 list 变成索引 map ------[{type:"web_search"}] 变成了 {"0":{type:"web_search"}}。引擎收到的 tools 参数是畸形的,400 是它应得的。

Python 版没这个问题(Python 的 YAML 库天然出 list),所以只有 Java 版中招。修复 + 一个真实走 Spring Binder 的回归测试,提交。

教训:测量系统里,"引擎不支持 X" 和 "你的请求是坏的" 是同一现象的两种解释,不验证就分不清。

拦截八:模型名陷阱

修好绑定,换上媒体广泛报道的 "deepseek-v4.1-flash"------400。API 实际接受的名字是 deepseek-flash。

搜索引擎告诉你的模型名,不如一次真实调用。我们所有引擎的模型名现在都带着"验证日期"注释。

拦截九:审查的对象不是代码,是归因

修复提交之后,我在代码注释里写了一句:"glm-4-flash 的记忆层判定是在畸形请求下测出的,存疑。"------十分钟后再看,这句话是错的。

畸形请求 bug 只存在于 Java 版,而 10 月 31 日的探针是 Python 版跑的,请求体从来是正确的。glm-4-flash 是在收到合法请求的情况下,依然选择用记忆回答。

于是结论反转成更干净的形式:

scss 复制代码
glm-4-flash  + 正确请求 → 记忆层(10-31 验证)
glm-5.3-flash + 正确请求 → 搜索层(11-02 验证)
层翻转 = 模型代际效应,与 bug 无关

我把那句错误注释撤掉、写了修正 commit。这次拦截最微妙:代码没错,测试没错,错的是我对"谁受 bug 影响"的推断。 人审拦的不只是坏代码,更多时候是坏归因。

这件事为什么值得写

  1. AI 的演进速度第一次变成我个人数据里的一格。 新闻里"模型又升级了"是标题;在一个带日期的测量系统里,它是一条可以复现的时间线:某引擎的记忆层,存活了 14 天。
  2. "记忆层"可能是个正在灭绝的物种。 新一代模型普遍真联网,意味着"训练语料里的品牌存量"这个维度正在被"实时检索"吞噬。做 AI 可见性的人,要么跟上这个变化,要么测的是上个时代。
  3. 九次拦截,没有一次是 AI 自己拦下来的。 自我评估的 agent 能发现畸形请求导致的 400,但不会发现"归因错了"------归因审查需要知道 Python 版上周做过什么,这个上下文只在我这里。

给做 AI 工程的朋友三条

  1. 任何"模型行为"结论都要带三要素:哪个模型、哪个日期、哪个请求体。 缺一个,结论就不可复现。(我们自己的 JSONL 记录还没存模型名,已列进 v1.1------写此文时我检查了一遍,确实没有,别学我。)
  2. 引擎/模型版本要作为测量变量被记录,而不是当环境常量。
  3. 跨实现的交叉验证是归因错误的解药。 Python 版的存在,让"bug 影响范围"可以被精确切分。

工具开源(双语言,数据格式互通):geo-visibility(Python) · geo-visibility-mcp(Java/Spring MCP server)。想聊测量方法论的,评论区见。

声明:项目使用公开 API 与公开信息,不涉及本人雇主的数据与系统。

相关推荐
我登哥MVP44 分钟前
DeepSeek-Harness-Super-Agent-学习笔记
人工智能·深度学习·神经网络·机器学习·自然语言处理·agent
LucianaiB1 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
冬奇Lab2 小时前
一天一个开源项目(第256篇):Anatomy —— 让 Claude 为技术概念「发明一台机器」,画成可交互的等距插画
人工智能·开源
孟郎郎2 小时前
打造一切(Craft Anything)——克隆构造世间万物
人工智能·ai·github·软件构建·开源软件
Martina_03213 小时前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
陈随易3 小时前
纯 Go 写的 JS 引擎,跑分超过了 C 语言的 QuickJS
前端·后端·程序员
master3363 小时前
AI领域常用名词的系统梳理
人工智能·ai
Spidermanbaout3 小时前
Prompt-Engineering实战-2026年11月2日
人工智能·机器学习·ai·chatgpt·ai编程