You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bot Framework:ConversationState能否存储全用户ConversationReference及范围咨询

Bot Framework 主动消息存储问题解答

核心结论

Bot Framework 的 ConversationState 对象是针对单个对话(用户与机器人的会话实例)的,并非全局通用。它的存储分区和加载逻辑都绑定到当前对话的 ConversationId,没办法直接用来存储所有用户的 ConversationReferences 集合。

具体原因

ConversationState 的数据存储键由当前对话上下文生成,每次调用时只会加载对应单个对话的状态数据。如果尝试把所有用户的 ConversationReferences 存入某个对话的 ConversationState,这些数据只会属于该对话,其他对话的状态中不会包含,后续 Notify Controller 遍历发送时根本无法获取全量的用户会话引用。

解决方案

不能依赖 ConversationState 管理全局的用户会话引用集合,需要单独维护一个全局存储:

  • 利用你已配置的 CosmosDB,新建一个独立的容器(例如命名为 ConversationReferences),专门存储所有用户的 ConversationReference 数据
  • 当用户首次与机器人交互时,从对话上下文中提取 ConversationReference,写入这个全局容器
  • Notify Controller 主动从该全局容器中加载所有有效的 ConversationReference,逐个发起主动消息发送
  • 额外处理:定期清理过期或无效的会话引用(比如用户已删除对话的情况),发送时捕获异常避免影响批量发送

内容的提问来源于stack exchange,提问作者punjabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:43:22