Skip to content

[lark-bot] 明确并实现 ConversationReplyGenerator / ChatRuntime 的 closeout contract #648

@YueZh127

Description

@YueZh127

背景

ConversationReplyGeneratorToolCallLoopChatRuntime 在 streaming 主路径上已经有不少局部保护,但 closeout contract 还没有稳定成仓库内共识。

尤其当前还没有明确拍板的问题包括:

  • terminal signaling 是 round-local 还是 overall-stream-local
  • multi-round tool use 后,outer stream 是否应该只暴露一个 overall terminal chunk
  • Usage / FinishReason 应该挂在哪个 chunk 上
  • provider 若先发 Usage 再发纯 IsLast,runtime 是否应该重排
  • warning path / tool-result path / final-answer path / closeout path 如何避免重复收尾

问题

如果 contract 没先定,测试很容易把目标态假设误写成当前既有不变量。

目标

先明确 closeout contract,再按契约调整 ConversationReplyGenerator / ChatRuntime 及相关消费侧行为。

范围

  • 定义 streaming closeout contract
  • 明确 generator 与 runtime 的职责边界
  • 对齐 provider / runtime / consumer 对 terminal chunk 的理解
  • 契约确定后,按需要改生产代码

验收标准

  • 有清晰的 closeout contract 说明
  • ConversationReplyGeneratorChatRuntime 的职责边界明确
  • Usage / FinishReason / terminal signaling 规则明确
  • 下游消费者不再依赖模糊的 closeout 行为

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions