展开本页目录
开始前准备什么
- 下载完整练习包,在独立目录阅读README与已执行范围。
- 安装requirements.txt指定版本或使用文中目标工具;依赖与模型权重不要混入网站工程。
- 只有明确标为已执行的部分有本次证据;真实模型、账号或GPU步骤按自己的环境另行验证。
- 保留完整请求上下文
- 运行漏历史反例
- 核对回调返回协议
- 选择可稳定序列化的键
- 在ADK中挂载回调
- 记录真正的跳过与生成
- 更改历史后重复验收
1. 保留完整请求上下文
input.json四条请求只改变日期或north/south历史范围。C1/C2应同键,C3/C4必须重新生成。缓存答案只能来自已授权范围。
2. 运行漏历史反例
audit.py用question+history生成完整键,再故意只用question;后者会把C1与C4错误合并。输出是作者缓存策略验证,不是ADK模型调用日志。
本题独立目录执行
python reference/audit.py3. 核对回调返回协议
before_model_callback接收本轮LlmRequest,命中时返回LlmResponse;未命中返回None让框架正常调用模型。不要把回调错误也当作命中。
本题SDK或目标环境入口
python reference/run_sdk.py4. 选择可稳定序列化的键
把模型、系统指令、历史消息和会影响答案的工具结果纳入真实键;本包只演示question/history两个维度,其余维度需按应用补齐。
5. 在ADK中挂载回调
在独立Agent上设置before_model_callback,先用离线固定回答测试命中跳过请求,再配置真实provider。包内没有启动Runner。
6. 记录真正的跳过与生成
实跑日志同时记缓存hit/miss和实际provider请求数。第二次更快不证明回调跳过,前缀Token缓存也不等于整次响应缓存。
7. 更改历史后重复验收
按C1到C4顺序运行,只有C2允许命中;模型或权限变化时清除旧响应。交付键字段、命中记录和失败反例,不得复用跨范围答案。
怎样确认已经完成
- 缓存命中实际减少调用
- 语义相似不等于同键
- 上下文变化不误复用
- 已运行作者完整请求键与漏历史碰撞反例;未执行ADK Runner、回调短路或真实模型请求。
常见问题
ADK怎么在模型调用前命中完整响应缓存?
before_model_callback命中时按官方合同返回完整LlmResponse,未命中返回None继续调用。键应包含当前内容、历史作用域及模型相关设置;本包仅审计键合同。
问题只改了日期,怎么避免回调复用旧答案?
日期必须进入实际内容缓存键。包内C1/C2周一同scope可比较,C3周二和C4南区要分开;仅用去日期文本会复用错误响应。
这篇教程哪些步骤已经真正执行?
已运行作者完整请求键与漏历史碰撞反例;未执行ADK Runner、回调短路或真实模型请求。



