加载中...
加载中...
流式响应让AI智能体像人一样「边想边说」——实时推送思考过程、工具调用和最终结果,是智能体从后台任务升级为交互式协作伙伴的关键技术。
流式响应让AI智能体像人一样「边想边说」——实时推送思考过程、工具调用步骤和最终结果,而不是等所有计算完成才一次性输出。这是智能体从"后台批处理"升级为"交互式协作伙伴"的关键技术,直接影响用户对"智能体是否在认真工作"的感知。
流式响应的核心是「逐步生成、即时推送」,三种主流实现形态:
**① Server-Sent Events (SSE) 流式协议**
**② LLM 原生 Streaming API**
**③ 流式工具调用(Streaming Tool Calls)**
三个可操作的实测方案:
SSE 连接断开会触发 `onerror` 事件,但很多实现没有正确处理重连逻辑。如果只是在 onerror 中打印日志而不重建连接,用户看到的就是「智能体突然不说话了」。正确做法:实现指数退避重连(1s → 2s → 4s → max 30s),并在重连时携带最后收到的 event ID 实现断点续传。
流式模式下,工具调用的参数是分 chunk 推送的(如先推 `{"location":` 再推 `"Beijing"` 再推 `}`),简单字符串拼接容易在边界处产生格式错误(如多一个逗号、引号不匹配)。正确做法:不直接拼接文本,而是收集所有 tool_call delta 后,用 SDK 内置的累积器(如 OpenAI 的 `ChatCompletionMessageToolCall`)统一组装。
Nginx/Cloudflare 等反向代理默认会对 HTTP 响应开启缓冲(proxy_buffering on),导致 SSE 的实时推送变成「攒够了才发」,流式退化成了非流式。必须在 Nginx 中显式配置:`proxy_buffering off; proxy_cache off;`,并设置 `chunked_transfer_encoding on`。Cloudflare 的免费计划对 SSE 有 100 秒的硬超时,生产环境建议使用支持长时间 SSE 的方案。
流式模式本身不增加 Token 消耗,但如果因为首 Token 太快而放松了提示词长度控制,Input Token 成本(通常比 Output 便宜 3-5 倍但总量更大)会显著上升。建议在流式 Agent 中保留 token 计数器,超过预算时主动终止流。
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧