五厂面经真题集快手面经高频快手真题Agent缓存工具调用速答 · 约 5 分钟更新 2026-09-29

Tool 返回结果要不要缓存?缓存键、TTL、权限和数据更新怎么设计?

一句话结论

要缓存可复用的工具结果;用工具名、规范化参数哈希和数据版本组成缓存键,按数据特性设 TTL,并处理权限与更新失效。

先这样答

要缓存。相同参数的工具调用结果可以复用。天气、汇率这类工具适合缓存。缓存能减少重复调用,也能让相同请求直接返回已有结果。

缓存键至少包含工具名、规范化参数哈希和数据版本。参数必须先规范化,再计算哈希。这样可以避免参数顺序或表示方式不同,导致同一个请求生成不同的键。数据版本也要进入缓存键,防止不同版本的数据混用。

TTL 要按数据特性设置。股票数据可以使用秒级 TTL。文档数据可以在文档更新事件发生时主动失效。权限不能只放在缓存外面考虑。缓存键必须包含权限维度,或者命中缓存后进行二次鉴权,防止用户读到无权访问的缓存。工具执行写操作后,要主动失效相关缓存,避免继续返回旧结果。

面试官会怎么追问

  • 「为什么缓存键里还要放数据版本?」 数据版本能区分同一工具和同一组参数对应的不同数据状态。版本变化后,旧缓存不会和新数据混用。

  • 「权限信息放进缓存键就够了吗?」 不一定。可以把权限维度放进缓存键,也可以在命中缓存后做二次鉴权。两种方式都要保证缓存命中不会绕过权限校验。

  • 「写操作完成后,缓存应该怎么处理?」 写操作后主动失效相关缓存。失效范围要覆盖受这次写操作影响的结果,避免后续请求继续拿到旧数据。文档也可以在更新事件发生时触发失效。

回答的坑

  • 只说“缓存能提高性能”,却没有说明缓存键、TTL、权限和更新失效。

  • 只把用户参数放进缓存键,却忽略权限维度或命中后的二次鉴权。

这家公司的面经实录

相关深度笔记

—— 本题完 ——