在使用 Claude Code 进行项目改造时,频繁遇到以下错误:
API Error: Stream idle timeout - partial response received
任务执行到一半中断,改造无法完成。
根本原因
Claude Code 底层使用流式(Streaming)方式传输响应内容。当单次任务过于复杂、生成内容过多时,流式连接会因长时间空闲或响应过慢而超时中断。
常见触发场景:
- 一次性要求对多个模块进行重构
- 同时要求生成代码 + 写测试 + 更新文档
- 单次生成的代码量过大
解决方案:将改造拆分为多个步骤
核心思路
不要让 Claude Code 在单次对话中完成过多工作。把大任务拆解成独立的小步骤,逐步完成。
做法对比
❌ 之前的做法(触发超时)
帮我对整个项目进行改造:
1. 重构所有模块的目录结构
2. 添加 TypeScript 类型支持
3. 为每个模块补充单元测试
4. 更新 README 文档
一次性任务过重,生成响应时间过长 → 触发 Stream idle timeout。
✅ 改进后的做法(问题解决)
将同一个改造目标,拆成多轮对话分步执行:
第一步:帮我重构 src/auth 模块的目录结构
↓ 完成确认后
第二步:为 auth 模块添加 TypeScript 类型定义
↓ 完成确认后
第三步:为 auth 模块编写单元测试
↓ 完成确认后
第四步:更新 README 中关于 auth 模块的说明
每一步响应量可控,流式连接稳定,不再超时。
| 对比项 | 之前 | 之后 |
|---|---|---|
| 任务粒度 | 一次性完成所有改造 | 拆分为多个独立步骤 |
| 单次响应量 | 大(触发超时) | 小(稳定传输) |
| 是否报错 | 是,Stream idle timeout | 否,正常完成 |
| 改造效果 | 中断,未完成 | 逐步完成,结果可控 |
更简单的方式:让 Claude Code 自己拆步骤
不需要自己手动规划步骤,直接告诉 Claude Code:
请把以下改造拆分成多个步骤,逐步完成:
[你的任务内容]
或者更简洁:
分步完成:[任务]
Claude Code 会自动规划步骤顺序,每次只执行一步,等你确认后再推进下一步。既避免了超时,又省去了手动拆解任务的麻烦。
经验原则
- 优先让 Claude Code 自己拆步骤:加一句"分步完成",让它自动规划。
- 单次只做一件事:每次对话聚焦在一个模块或一个功能点上。
- 确认后再推进:上一步完成并确认无误后,再进行下一步。
- 遇到超时不要慌:先把当前任务缩小范围,重新提问即可。
- 复杂改造提前规划:在开始前列出步骤清单,按顺序逐一交给 Claude Code 执行。
适用场景
这个方法同样适用于以下 Claude Code 使用场景:
- 大规模代码重构
- 多文件批量修改
- 全项目架构调整
- 生成大量测试用例