指南/异常缓存与运行环境

没配置缓存却出现缓存字段,还暴露了陌生运行环境,怎么判断

客户端没有写缓存配置,响应里却出现了缓存字段;工具结果或错误还带着陌生目录、容器与远端环境信息。这两类现象可能来自官方自动缓存、固定响应结构、托管工具或中转层转换。字段从哪里产生、代码在哪里执行,要分别取证。

最后更新 2026-08-15阅读约 10 分钟

缓存字段出现,有三种不同含义

先看字段和值。响应结构里有 cached_tokens,值为 0,只说明接口 schema 预留了缓存明细;值大于 0 或 cache_read_input_tokens 增加,才表示服务方报告本次读取了缓存。自然语言回答里说「我使用了缓存」,证据更弱,它只是模型生成的文字。

客户端没有显式配置,也可能得到缓存命中。Google 的上下文缓存文档说明,Gemini 2.5 及后续模型默认启用隐式缓存。OpenAI 当前的模型指南也区分隐式与显式 Prompt Caching,并建议从 Usage 的缓存读写字段核对成本。

Anthropic 的当前机制不同。Prompt Caching 文档要求请求通过顶层 cache_control 使用自动断点,或在内容块上放显式断点。若客户端完整出站请求没有该字段,而中转响应持续报告缓存读取,可能是中转层补了配置、协议转换产生了字段,或中转站自行填写了 Usage。缺少上游请求时,这些都只是解释。

还要区分「字段由谁定义」与「缓存由谁执行」。中转站可以沿用 OpenAI 风格的 cached_tokens 字段,却把请求转到另一家上游;也可以从上游读取缓存明细,再换成兼容字段返回。字段名称只描述客户端看到的协议外形,不能确定缓存存放在中转站、云厂商还是模型平台。

怎样核对字段包含关系和命中条件,见 Prompt Cache 到底命中了没有。不同厂商 Usage 不能直接横比,见三家 Token 用量字段对照

缓存命中不等于共享会话

Prompt Cache 复用的是相同输入前缀的计算结果,不负责把另一个会话的消息拼进当前请求。Anthropic 文档说明,缓存命中要求前缀精确匹配,缓存不改变输出生成;不同组织之间隔离,Claude API 的缓存还按工作区隔离。缓存字段本身因此不能证明看到了其他用户的上下文。

中转站仍可能使用自己的上游工作区、缓存实现、日志或会话存储。官方平台的隔离承诺不会自动约束独立中转服务。若响应出现了与当前请求无关的真实业务内容,需要按数据事件处理,但归因对象可能是会话存储、日志回放、应用状态或响应拼接,不能只写成「缓存串号」。

缓存与持久会话也要分开。缓存保存可复用的模型计算;持久会话保存消息、文件、工具结果或环境 ID。二者可能同时存在,生命周期和隔离范围由各自接口决定。

陌生工作目录先看它出现在哪里

同一段路径出现在不同位置,证据强度差很多:

出现位置能支持的判断主要边界
模型自然语言回答模型生成过这个目录字符串可能来自猜测、系统说明或上下文,不能证明执行过命令
tool_call 的参数模型请求工具访问该路径只代表调用意图,工具可能尚未执行或已被拒绝
结构化 tool_result、标准输出或错误某个执行器返回了该路径相关结果还要确认执行器在客户端、中转站还是官方平台
官方托管工具结果与环境标识本次 API 使用了服务端工具或容器只能证明对应平台环境,不能推到中转站的其他请求
普通业务流程里跨请求保留的文件状态某个持久环境被复用需要环境 ID、工具日志或服务方记录确认隔离范围

模型自报属于弱证据。它可以复述提示词里写过的 /workspace,也可能根据常见开发环境补全一个看似合理的目录。工具调用参数同样由模型生成,只有执行结果返回后,才能确认某个执行器接触了该路径。

Anthropic 的工具参考把工具分成两类:server tools 在 Anthropic 基础设施执行,client tools 由调用方应用执行。其代码执行文档还说明托管代码运行在隔离容器中,响应带有可复用的 container 信息。Google 也在工具文档里区分服务端内置工具与由客户端执行的自定义函数。

所以,看到陌生 Linux 路径不自动指向中转站。路径可能来自本地 Agent、官方托管容器、第三方 MCP 服务或中转站自己的执行器。要沿着工具类型和返回方向确认来源。

按原始记录确认执行位置

保存出现异常的完整响应事件、工具类型、调用 ID、请求 ID、错误对象和时间。敏感正文可以脱敏,但不要删掉字段层级与事件顺序;仅剩一张聊天截图时,模型文本和工具结果很容易混在一起。

随后核对客户端发出的 tools 定义。自定义函数通常由本地应用执行,服务端内置工具由厂商执行;中转层若转换了工具协议,还需要它提供转换说明或脱敏后的上游事件。若响应里带 container、environment 或同类资源标识,检查它是否符合所用官方接口的字段定义,以及应用是否在后续请求里复用了该标识。

错误来源也能缩小范围。浏览器或本地 SDK 在执行客户端工具时抛出的路径,多半属于本机或应用容器;API 的结构化服务端工具结果更接近托管环境;普通 HTTP 错误页中的主机名和目录则可能来自中转网关。错误被代理重新包装后,来源会再次变得不确定,所以原始响应头、事件类型和调用 ID 要一起保留。

证据可以写成三层:

发现真实密钥、客户内容或其他用户数据时,应停止向该调用路径发送敏感内容,作废可能暴露的凭据并保存原始记录。中转站能读取哪些请求数据、日志政策如何核对,见中转站数据安全

结论要停在证据覆盖的范围

缓存字段存在,可以确认响应采用了包含缓存明细的结构;正数缓存用量可以确认服务方报告了命中。两者都不能单独证明共享会话、跨用户数据泄露或中转站私自保存 Prompt。

陌生目录出现在工具结果里,可以确认某个执行器返回了环境信息;执行器属于谁、是否持久、是否与其他用户共享,仍要看工具类型、环境标识和服务方记录。若中转站只承诺「OpenAI API 兼容」,还要核对它在哪一层转换工具与 Usage,相关方法见OpenAI API 兼容性检查

把字段来源和执行环境一起留证

LinkyMonitor 关联保存请求、响应、Usage 与网络上下文;缓存或工具行为变化时,可以回到原始记录核对。

申请试用

官方资料

缓存、托管工具和远端环境属于会调整的平台功能。以上资料复核于 2026-08-15;判断具体请求时,应按当时使用的模型、协议、工具版本和服务条款核对。