03|路由与并发:sessionKey / lane / queue
从“收到一条消息”到“开始一次 agent run”,最关键的一步不是调用模型,而是把消息稳定地分配到会话,并把并发约束落地。
你需要能解释 3 个现象:
- 不串线:群聊/多账号/多通道不会互相污染上下文
- 不乱序:同一会话内消息顺序稳定
- 能并行:不同会话可以并发执行(不会互相阻塞)
sessionKey:会话隔离的核心
sessionKey 用来决定“哪些消息属于同一个会话”。通常它会综合:
- 渠道类型(DM/群组/频道)
- 账号/设备/连接实例
- 线程/回复链(如果平台支持)
入口:
lane/queue:同会话串行 + 跨会话并行
一旦 sessionKey 确定,系统就可以用 lane/queue 落地并发策略:
- 同一
sessionKey:串行(避免并发写会话导致顺序错乱) - 不同
sessionKey:允许并行(受全局上限保护)
入口:
排障:当你怀疑“串线/乱序”
建议用“由外到内”的顺序排:
- 先确认 routing 规则(
sessionKey是否符合预期) - 再确认 queue/lane 配置(是否意外把不同会话折叠)
- 最后回到日志与 Control UI,用
runId追踪一次完整链路
入口: