# input_schema对象内部字段乱序问题
#### 问题背景
缓存命中率对Prompt结构高度敏感。任何输入内容的变化（包括字段顺序、空白字符、元数据位置等）都会导致缓存前缀不匹配，从而造成缓存失效。Tools定义在拼接Prompt模板中一般处于最前端，因此出现缓存前缀匹配失败时对缓存命中率影响较大。
#### 问题现象
在多轮对话场景中，前几轮缓存命中率正常，发现某轮请求的缓存命中Token数量突然降低的现象。经过分析确认与Tools定义中的 input_schema对象内部字段乱序直接相关。
#### 分析过程
在多轮对话过程中，连续两个请求之间，tools中的 "input_schema"对象内部字段顺序发生了变化，导致原本应命中的缓存前缀匹配失败。
图1缓存命中率突变前后的Tools对比   
![](https://support.huaweicloud.com/bestpractice-maas/figure/zh-cn_image_0000002800420635.png "点击放大")
如上图所示，多轮对话的连续两次请求里，虽然tools的定义完全相同，但由于字段顺序的变化，导致模型获取到的tools的JSON字符串变了，因此导致缓存前缀匹配失败，缓存命中降低。
