首页/AI/提示词工程速查/会话隔离与并发

会话隔离与并发

多用户并发时按会话键严格隔离上下文与缓存:会话标识贯穿日志、缓存与存储;共享缓存只放与身份无关的内容。

提示词工程速查AI更新于 2026-10-13

会话隔离是什么

多用户并发时会话之间必须严格隔离:上下文、缓存、临时文件都按会话键分区,会话标识要贯穿日志、缓存与存储三处。共享缓存只允许放与身份无关的内容,例如静态规则与公共知识;一旦把用户历史放进共享缓存,就等着串答事故上门。

基本信息

隔离键租户 + 用户 + 会话三段拼接,缺一段都可能串
缓存键含会话维度;共享缓存仅用于静态规则与公共知识
清理会话结束即清除临时上下文与偏好缓存
并发写同一会话串行化或用版本号做乐观锁
日志会话标识贯穿全链路,便于定位串答发生在哪一环

典型使用场景

  • 多租户 SaaS:同一进程服务多个客户,缓存的租户维度不能省
  • 高并发对话:多个请求同时落在同一会话,需要串行化或冲突检测
  • 网关层缓存:按需缓存检索结果时,键必须带会话标识
  • 客服转接:会话移交后旧上下文清空,避免新坐席看到不该看的内容
  • 压测验证:构造并发同会话请求,验证不出现上下文错乱

缓存键设计示例

缓存键设计示例
cache_key = hash(tenant_id | user_id | session_id | prompt_version)

共享缓存仅用于:
  - 与身份无关的静态规则
  - 公共知识与通用模板片段
用户历史与偏好:
  - 仅会话级缓存,不跨用户复用
  - 会话结束后立即失效

共享与隔离的边界

内容是否可共享说明
公共知识片段可共享与身份无关,键不含会话
静态规则与模板可共享按版本缓存,变更即失效
用户历史与偏好不可共享必须带会话维度
检索结果谨慎与查询和权限都相关,需带租户
生成结果不可共享可能含个性化内容
串答事故往往来自一次“为了提命中率”的缓存合并。合并前先问:被合并的键里是否真的不含身份信息。

易错点

  • 缓存键不含会话维度,甲的历史被乙命中,直接泄露对话内容
  • 并发写入同一会话状态,两轮回答互相覆盖,上下文错乱
  • 会话结束不清理缓存与临时文件,长期积累成数据泄露面
  • 日志只按请求维度记录,串答发生后无法还原是哪条链路复用出错

数据来源与参考

  • 多租户隔离通用实践;OWASP LLM01 缓解建议(会话与数据隔离)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌