--- title: "流式响应:逐字呈现" description: "为什么 Claude Code 的回答是'打字机效果'而不是一整块弹出" --- {/* 本章目标:解释流式通信的意义和它如何与工具执行交织 */} ## 为什么需要流式 想象 AI 需要 30 秒才能生成完整回答——如果等 30 秒后才一次性显示,用户体验是灾难性的。 流式响应让用户**实时看到 AI 的思考过程**: - 文字逐字出现,用户能提前判断方向是否正确 - 工具调用的参数在生成过程中就能预览 - 长时间任务不会让用户觉得"卡死了" ## 流式与工具调用的交织 一次 AI 响应中可能同时包含文字和工具调用。流式系统需要处理这种交织: 流式响应时间线 ## 流式工具执行 更进阶的是,**工具本身的执行也可以是流式的**: - 运行一个长命令(比如 `npm install`),输出逐行显示 - 搜索大型项目时,匹配结果逐条呈现 - AI 在等待工具结果的同时,已经开始规划下一步 ## 多 Provider 适配 Claude Code 支持多个 AI 服务提供商,每个提供商的流式协议略有不同: | Provider | 特点 | |----------|------| | Anthropic Direct | 原生 SSE 流,延迟最低 | | AWS Bedrock | 通过 AWS SDK 包装的流式接口 | | Google Vertex | gRPC 流转换为事件流 | 系统通过统一的事件抽象层屏蔽这些差异——上层代码不需要关心底层用的是哪个 Provider。