首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >腾讯 Copilot 通道 GLM-5.3 缓存间歇性不命中· 技术调查日志

腾讯 Copilot 通道 GLM-5.3 缓存间歇性不命中· 技术调查日志

原创
作者头像
叫我小七总
发布2026-08-27 00:32:09
发布2026-08-27 00:32:09
140
举报

先解释两个词,后面都用得上:

  • Prompt caching(提示词缓存):同样的内容(比如系统提示、工具定义)第二次发过去时,服务端不用重新算一遍,直接复用上次的结果,只收缓存价。对用户来说,缓存命中 = 便宜,而且同样的前缀越长,省得越多。
  • 固定前缀:用 AI 编程助手时,每次请求都会带上系统提示 + 工具定义,这部分内容基本不变,大概几千 token。正常情况它应该被缓存反复利用;如果不缓存,等于每次都要按原价重算——积少成多,就是大钱

我们的场景:三个模型(DeepSeek V4 Flash、V4 Pro、GLM-5.3)都走腾讯 Copilot 官方 API 通道,日常写代码。某天查账发现 GLM-5.3 只占了 4.5% 的请求数,却烧掉了 98.8% 的积分,我怀疑缓存没生效。于是做了四组专项实验。

实验一:同样的请求连发两次,看缓存

用最小客户端直连官方端点(绕过一切中间层,排除框架干扰),模拟真实请求形态:长系统提示 + 4 个工具定义。同一请求体连发两次,读取命中数(hit)和本次扣费(credit):

模型

第1次 hit/扣费

第2次 hit/扣费

GLM-5.3

0 / 0.46

0 / 0.46

DeepSeek V4 Flash

0 / 0.12

2560(命中96%)/ 0.01

DeepSeek V4 Pro

0 / 0.38

2688(命中98%)/ 0.04

同样条件下,Flash 和 Pro 第二次就命中 96-98% 的缓存,扣费降了 89-92%;GLM-5.3 第二次依然 0 命中、扣费分文不减。第一反应:腾讯是不是根本不缓存 GLM?

实验二:零间隔连发——它其实会缓存

把 GLM-5.3 同一请求改成零间隔连发两次:

代码语言:txt
复制
第1次: hit=0     扣费 0.45
第2次: hit=2286  扣费 0.16   ← 命中90%,降价64%

第二次命中了,扣费也真降了。说明 GLM-5.3 支持缓存,只是不稳定——第一次实验的"完全不缓存"是运气不好。

实验三:网上教的"缓存参数",实测是反效果

给请求加上 prompt_cache_key(很多教程说这是开启缓存的参数)连发两次:

代码语言:txt
复制
第1次: hit=0  扣费 0.45
第2次: hit=0  扣费 0.46

带了这个参数,两次全部 miss。这个参数对 GLM-5.3 不但没用,反而彻底破坏了缓存

实验四:10 连发,命中率现出原形

固定同一请求(4 个工具 + 2540 tokens 系统提示),连发 10 次,间隔 0.5 秒:

代码语言:txt
复制
#1  hit=2496  扣费 0.13  HIT
#2  hit=0     扣费 0.46  MISS
#3  hit=2286  扣费 0.18  HIT
#4  hit=0     扣费 0.46  MISS
#5  hit=2496  扣费 0.14  HIT
#6  hit=0     扣费 0.46  MISS
#7  hit=2336  扣费 0.21  HIT
#8  hit=0     扣费 0.46  MISS
#9  hit=0     扣费 0.46  MISS
#10 hit=0     扣费 0.45  MISS

命中率 4/10。注意这个规律:HIT 和 MISS 几乎是交替出现的(#1H #2M #3H #4M #5H #6M #7H #8M……),不是随机,是轮询

这基本可以解释一切:GLM-5.3 在腾讯侧是多个服务副本轮流接请求,但各副本的缓存不共享。请求被轮流分发——轮到"已经算过这个前缀"的副本,命中,便宜(0.13-0.21);轮到"还没算过"的副本,全价重算(0.45-0.46)。相当于两个客服轮流接你的电话,只有其中一个记得你上次说过什么,而系统每次都随机分配。

结论

  • 是腾讯云端的问题,不是用户侧的问题:同一客户端、同一请求体、同一 key,Flash/Pro 稳定命中 96-98%,GLM-5.3 间歇命中 40%——差异只能来自服务端对该模型的缓存部署方式(多副本不共享缓存)。客户端没有任何手段能修复。
  • 对用 GLM-5.3 写代码的人:缓存不可依赖,约 40% 的请求会按全价计费,固定前缀越大亏得越多。预算敏感的话,优先把日常任务路由到缓存稳定的模型(DeepSeek 系),GLM 只留给必须它的活。
  • 别加 prompt_cache_key:实测对 GLM 是反效果,会彻底关掉缓存。

实验参数(可复现)

  • 端点 POST https://copilot.tencent.com/v2/chat/completionsAuthorization: Bearer <官方key>stream: true + stream_options.include_usage: true(非流式返回 400),max_tokens: 150,GLM 组 reasoning_effort: "low"
  • 前缀:4 个 function tools + 2540 tokens 系统提示
  • 读取字段:usage.prompt_cache_hit_tokens(命中)、usage.prompt_cache_miss_tokens(未命中)、usage.credit(本次扣费)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 实验一:同样的请求连发两次,看缓存
  • 实验二:零间隔连发——它其实会缓存
  • 实验三:网上教的"缓存参数",实测是反效果
  • 实验四:10 连发,命中率现出原形
  • 结论
  • 实验参数(可复现)
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档