Streaming(流式输出)是指大语言模型在生成回答时,逐token实时输出结果,而不是等全部生成完毕后一次性返回。这大大提升了用户体验——用户可以看到文字"一个一个蹦出来",而不是等待漫长的空白。
// 传统方式:等待完整响应
请求 → [等待5秒] → 完整回答
// Streaming方式:实时输出
请求 → "你" → "好" → "!" → "我" → "是" → "AI" → ...
// 用户立即看到第一个字,体验更好
// SSE 数据格式
data: {"id":"chatcmpl-1","choices":[{"delta":{"content":"你"}}]}
data: {"id":"chatcmpl-1","choices":[{"delta":{"content":"好"}}]}
data: {"id":"chatcmpl-1","choices":[{"delta":{"content":"!"}}]}
data: [DONE]
OpenClaw 在多个层面使用Streaming:
// OpenClaw Streaming 配置
{
"streaming": true,
"chunkSize": 1, // 每次输出1个token
"bufferFlushMs": 50 // 50ms刷新一次缓冲区
}
| 指标 | Streaming | 非Streaming |
|---|---|---|
| 首字延迟 | ~200ms | ~5s |
| 用户体验 | 实时反馈 | 等待空白 |
| 总耗时 | 相同 | 相同 |
| 错误处理 | 可中途停止 | 需等待完成 |