乐于分享
好东西不私藏

AI编程工具踩坑实录:十个让我抓狂的瞬间(及怎么解决)

AI编程工具踩坑实录:十个让我抓狂的瞬间(及怎么解决)

用 AI 写代码一年,省了上千小时,但也交了足够多的学费。这十个坑,踩过一个算入门,踩过五个算老兵。

坑一:AI 删了你没让它删的代码

这是最高频也最致命的问题。

让 Claude Code 加个搜索功能,它确实加好了。但你回头一看——原来那个精心调过的分页逻辑消失了。它觉得"没用了"就帮你删了。

为什么会发生? Agent 在修改文件时,如果上下文太大,它可能把改动的边界判断错误。尤其是 long context 的模型,越长的文件越容易误删。

怎么避免:

# Claude Code:加 --dangerously-skip-permissions 之前先想清楚
# 更好的做法:用 git diff 审查每次改动
claude "加搜索功能" && git diff

用 Hermes 的 patch 工具比直接重写整文件安全得多——它只替换你指定的代码块,不会碰其他地方。

铁律: 每次 Agent 操作后立即 git diff。不要攒到最后再看。


坑二:测试全绿但功能根本不对

Agent 帮你写了测试,6 个全过。部署上去用户报bug——搜索返回空结果。

一看代码:测试用例里 mock 了搜索结果,被测函数永远返回 mock 数据。测试过的不是你的代码,是 mock 本身。

怎么避免:

# AI 爱写的坏测试
def test_search():
    mock_result = [{"title""test"}]
    assert search("test") == mock_result  # 永远过

# 你应该让它写的
def test_search():
    result = search("真实关键词")
    assert len(result) > 0
    assert "真实关键词" in result[0]["title"]

告诉 Agent:"不要 mock 数据库查询,用真实测试数据,测试失败就修代码别修测试。"


坑三:Cursor 吃掉了你的 import

Cursor 的 Tab 补全很激进,动不动整段预测。但有个经典bug:它在补全新代码的时候,会把你文件顶部的 import 吞掉。

你正写到文件中间,Cursor 补了一整段函数,顺手把第一行的 import os 删了——因为它的上下文窗口没覆盖到文件开头。

怎么避免:

  • VS Code 设置里打开 "cursor.composer.collapseImports": true(如果有这个选项的话)
  • 更实际的方案:手动把 imports 放在文件最顶部,保持 20 行以内
  • 每次保前存看一眼文件开头

坑四:Ollama 模型选错,显存全被吃掉

拉了一个 32B 的模型,Ollama 说跑起来了。但代码补全要等 15 秒,一看活动监视器——系统在疯狂 swap。

原因: 32B q4 量化模型需要约 18GB 显存。如果你只有 16GB 统一内存的 Mac,系统会把一部分塞进 swap,速度雪崩。

正确做法:

# 看你的显存/内存
# Mac:关于本机 → 内存
# Linux/Windows:nvidia-smi

# 选模型建议
# 8GB 显存 → 7B 模型 (qwen3:7b, llama3.2:7b)
# 16GB 显存 → 14B 模型 (qwen3:14b, deepseek-coder-v3)
# 24GB+ 显存 → 32B+ 模型

# 拉模型前先看大小
ollama show qwen3:14b | grep size

记住: 本地模型的体验瓶颈从来不是模型智能度,是你的硬件。7B 模型在本地秒出的体验,远好于 32B 模型在 swap 里挣扎。


坑五:Agent 陷入死循环

给 Hermes 一个任务,它开始改代码 → 跑测试失败 → 再改 → 再失败 → 再改……你出去倒了杯水回来,它已经重试了 40 轮。

文件被改得面目全非,而且每一轮的改动越来越离谱——模型开始产生幻觉,试图用不存在的方法修不存在的 bug。

怎么避免:

# Hermes 设置 hard stop
hermes config set tool_loop_guardrails.hard_stop_enabled true
hermes config set tool_loop_guardrails.hard_stop_after.exact_failure 5

或者在 prompt 里加一句:"如果同一个错误出现三次,停下来向我汇报,不要继续试。"


坑六:覆盖了今天写的所有代码

"帮我重构这个文件"——Agent 直接重写了整个文件,把你上午写的那段定制逻辑也覆盖了。Git 记录显示改动 247 行。

怎么避免:

# Agent 操作前先 commit 或 stash
git add . && git commit -m "checkpoint: before agent refactor"

# Hermes 用户:开启文件快照
hermes config set checkpoints.enabled true
# 然后可以用 /rollback 回滚

铁律: 别把 Agent 当 Ctrl+Z。你自己要管版本。


坑七:API 账单比预期高了十倍

月初充了 $20,一周就见底。查账单发现 Agent 在一次对话里反复读同一个大文件——每次都重新把整个 2000 行文件塞进上下文。

原因: 没有开 prompt caching。每次 tool call 都是一轮完整请求,如果 Agent 反复读同一个文件,缓存能省 90% 的 token。

怎么避免:

# Hermes:确认 caching 开启
hermes config set prompt_caching.cache_ttl 5m
hermes config set prompt_caching.enabled true

Claude Code 默认开启缓存。如果你用 API 直连 Anthropic/DeepSeek,务必确认 prompt caching 配置正确。


坑八:AI 的"最佳实践"已经过时了

让 Agent 写一个 React 组件,它给你整了个 Class Component。原因是它的训练数据截至某个时间点,不知道 React 社区早就全面转向函数组件 + Hooks。

怎么避免:

在 prompt 里明确:"使用当前推荐的做法,不确定的话先查文档。React 用函数组件 + Hooks,Python 用 3.12+ 语法,不要用两年前的方案。"

如果你用 Hermes,开 web toolset,Agent 会在不确定时自己搜索最新文档。


坑九:Agent 用中文写了所有变量名

"帮我写个用户管理模块"——Agent 确实写好了。但 def 获取用户列表():class 用户信息:SELECT * FROM 用户表……这代码要是提交上去,同事能笑半年。

怎么避免:

# 在 prompt 或 personas 里设定
hermes config set agent.environment_hint "代码中变量、函数、类名、数据库字段一律使用英文命名"

或者直接说:"代码里的命名用英文,注释和文档用中文。"


坑十:你开始看不懂自己的代码了

这是一个渐变的过程。先是让 AI 写工具函数——没问题。然后是整个模块——也还行。慢慢的你发现自己打开项目,看着满屏 AI 生成的代码,改一个参数都不知道从哪下手。

这是最大的坑,也是最隐蔽的。AI 不会让你变蠢,但会让你变懒。变懒就会变蠢。

怎么避免:

  • 每次 AI 写完一个功能,手写一遍核心逻辑的注释——能写出注释说明你真的理解了
  • 每周手动重构一次 AI 生成的代码——删掉啰嗦的部分,合并不必要的函数
  • 如果一个函数你看三遍还是不理解,删掉重写

总结

严重度 解药
AI 删你没让删的代码 🔴 致命 git diff 每次必看
测试全绿但功能不对 🔴 致命 不用 mock,用真实数据
Cursor 吃掉 import 🟡 麻烦 写完先看文件开头
Ollama 模型太大 🟡 麻烦 7B 够用,14B 富裕
Agent 死循环 🔴 致命 设 hard stop
覆盖今天写的代码 🔴 致命 操作前 commit
API 账单爆炸 🟡 麻烦 开 prompt caching
AI 用过时方案 🟡 麻烦 prompt 里指定版本要求
中文变量名 🟢 尴尬 prompt 里声明命名规则
看不懂自己代码 🔴 慢性致死 写注释,手动重构

这十个坑我都踩过。前九个是技术问题,改配置就能解决。第十个是态度问题,只有自己能解决。


你踩过几个?还有哪些坑是我没写到的?评论区聊聊。