会话边界问题:计费、评估和记忆的对话终点在哪里
三个团队正在查看同一个事件流,每个团队都有一个名为 session_id 的列,但每个团队对什么是“会话”都有不同的定义。计费(Billing)继承了来自认证库的 30 分钟空闲窗口。评估(Eval)从聊天机器人框架中继承了“直到用户说‘再见’或停止打字 10 分钟为止”的定义。记忆(Memory)则使用 UI 在用户点击“开启新聊天”时生成的线程 ID —— 而大多数用户从不点击这个按钮。三列数据,三种语义,一个汇总仪表盘,以及三个共用一个根因但互不相关的 Bug。
这就是会话边界问题(session boundary problem)。它看起来像是一个埋点琐事,但实际上是一个披着基础设施外衣的产品问题:一段对话在哪里结束?坦诚的回答是没有单一的标准答案 —— 计费会话、评估会话和记忆会话并不是同一种对象 —— 如果一个团队选择了一个默认定义并让另外两个团队继承它,那么他们交付的就是具有相同根因的计费纠纷、评估偏见和内存泄漏。
