使用 Claude Code 进行 AI 辅助编程时,开发者经常会遇到一些反复出现的问题。本文总结了 10 个最常见的坑,以及经过验证的解决方案。
1. 上下文窗口不够用
问题
当项目文件较多或对话轮次较长时,Claude Code 的上下文窗口会被填满,导致它"忘记"之前的对话内容,产生不一致的修改。
解决方案
- 使用
CLAUDE.md文件将关键上下文持久化,避免每次重复说明 - 将大任务拆分为小任务,每次对话只聚焦一个功能点
- 定期开启新对话,通过
CLAUDE.md传递上下文 - 使用 Wishmere 自动裁剪命令输入上下文和任务拆分
2. 修改了不该改的文件
问题
Claude Code 有时会修改与当前任务无关的文件,或者在"优化"过程中引入不必要的变更,导致代码审查困难。
解决方案
- 在
CLAUDE.md中明确标注哪些文件不应被修改 - 使用
.claudeignore文件排除不需要 Claude 访问的目录 - 每次修改后用
git diff检查变更范围 - 在提示词中明确指定"只修改 X 文件"
3. 幻觉导入和 API
问题
Claude Code 会"编造"不存在的库、API 方法或函数签名,代码看起来正确但实际运行报错。
解决方案
- 要求 Claude Code 先阅读现有代码再生成新代码,保持风格一致
- 对生成的代码立即运行测试验证
- 在
CLAUDE.md中列出项目使用的核心库和版本 - 使用
uv add或npm install确认依赖是否存在
4. 循环修改同一问题
问题
Claude Code 修复一个 bug 后引入新问题,再修复新问题又回到原始状态,陷入无限循环。
解决方案
- 发现循环时立即停止,重新描述问题
- 提供具体的错误信息和期望行为,而非笼统的"不对"
- 要求 Claude Code 先分析根因再动手修改
- 使用
git stash保存当前状态,从干净起点重新开始
5. 不理解项目特定的编码规范
问题
Claude Code 生成的代码风格与项目现有风格不一致,比如命名规范、文件组织方式、错误处理模式等。
解决方案
- 在
CLAUDE.md中详细描述项目的编码规范 - 提供示例代码片段作为参考
- 使用 linting 工具(ESLint、Ruff 等)自动检查风格
- 要求 Claude Code 先阅读相邻文件再生成代码
6. 网络请求超时
问题
在处理大型任务时,Claude Code 的 API 请求可能超时,导致操作中断且无法恢复。
解决方案
- 将大型任务拆分为更小的步骤
- 使用
--max-turns参数限制单次对话轮次 - 确保网络连接稳定,必要时配置代理
- 使用 Wishmere 的retry功能自动恢复中断的任务
7. 忽略环境差异
问题
Claude Code 生成的代码在本地可以运行,但在生产环境或 CI 环境中失败,因为它忽略了环境差异(操作系统、依赖版本、环境变量等)。
解决方案
- 在
CLAUDE.md中说明目标运行环境 - 使用 Docker 或虚拟环境确保环境一致性
- 要求 Claude Code 生成跨平台兼容的代码
- 在 CI 中尽早验证生成的代码
8. 数据库操作不安全
问题
Claude Code 生成的数据库操作可能缺少事务处理、参数化查询或错误回滚,导致数据不一致或安全漏洞。
解决方案
- 在
CLAUDE.md中明确要求使用参数化查询 - 要求所有写操作必须在事务中执行
- 使用 ORM 代替原生 SQL,减少注入风险
- 对生成的数据库代码进行专门的代码审查
9. 安全漏洞
问题
Claude Code 可能生成包含安全漏洞的代码,如硬编码密钥、未验证的用户输入、不安全的反序列化等。
解决方案
- 在
CLAUDE.md中列出安全要求(禁止硬编码密钥、必须验证输入等) - 使用安全扫描工具(Snyk、SonarQube 等)检查生成代码
- 要求 Claude Code 对所有外部输入进行验证和清理
- 定期审计 Claude Code 生成的代码
10. 不善用项目已有工具
问题
Claude Code 不了解项目中已有的工具和脚本,重复造轮子或使用不合适的方式完成任务。
解决方案
- 在
CLAUDE.md中列出项目的 Makefile 命令、脚本和工具 - 要求 Claude Code 先检查项目现有工具再动手
- 使用
make help或类似命令展示可用命令 - 使用 Wishmere 的技能和记忆
← 返回文章列表使用 Wishmere 可以自动管理这些问题——从上下文窗口管理到工具,让你专注于功能本身。