核心 GUIDE

SYSTEM_COMPONENTINTERMEDIATE7 分钟阅读

Streaming 与 Backpressure

Streaming 只有在 Producer、Consumer 与下游 Parser 对 Flow Control 达成 Contract 时才真正改善体验;否则快速 Token 输出会压垮较慢 Client 或后续处理。

核心心智模型

Backpressure 是防止 Producer 产生数据的速度持续超过下一阶段安全消费能力的 Contract。因此 Token Streaming 是 End-to-end Flow Control 问题,而不只是 UI 打字动画。

为什么重要

模型可能快速产生 Token,但 Client 网络很慢、Parser 必须等待完整 JSON,或者每个 Chunk 都会触发昂贵处理。如果 Buffer 无上限增长,就会出现内存压力、过期工作和 Cancellation Bug。可靠 Streaming 需要 Framing、Bounded Buffer 和 Cancellation Propagation。

01

跨整条 Stream 设计 Flow Control

在 Model Provider、Server 和 Client 之间定义 Chunk Framing、Buffer Limit、Consumer Readiness 与 Cancellation Semantics。除非 Protocol 明确支持,否则不要根据不完整数据触发不可逆 Downstream Work。当 Consumer 变慢时,应在可能时暂停 Upstream、限制并安全丢弃 Buffer,或以显式可恢复状态结束。

02

示例:结构化回答流向慢速浏览器

Server 一边 Stream 模型输出,一边增量验证 Structured Response,移动端 Browser 此时断开。如果没有 Cancellation Propagation,Provider 仍继续生成,Server 也继续 Buffer。使用有界 Stream Contract 后,Disconnect 会取消 Upstream Generation、释放临时 Buffer,并且不会 Commit 半解析对象。

常见失败模式

  • 认为 Streaming 会自动降低总 Latency 或 Cost。
  • Model Output 与慢速 Consumer 之间使用 Unbounded Buffer。
  • 不完整 Chunk 尚未满足 Output Contract 就直接写入应用状态。

工程启发

  • 尽可能把 Cancellation 从 Client 传到 Server 再传到 Provider。
  • 限制 Buffer,并在 Slow-consumer Test 中测 Queue Growth。
  • 把 Presentation Streaming 与 Validated State Transition 分开。

关键结论

  1. 01Streaming 是 End-to-end Protocol。
  2. 02Consumer 比 Producer 慢时,Backpressure 负责保护系统。
  3. 03Partial Output 不应绕过 Validation Contract。

阅读记录

未打开Practice 尚未完成

这里只记录你真实做过的动作,不代表掌握、熟练或认证。

用于这些学习路径

这个 Concept 会在多个 canonical 学习路径中复用。

来自 Knowledge Graph 的相关知识点

这些关系直接来自 canonical graph,不维护第二套 Guide 分类体系。

Queue、Concurrency 与 BackpressureRELATED