
市面上的 AI 编程工具看着很多,但按能力边界划,其实就三类。选错类别,要么觉得「没用」,要么会被它的破坏力吓一跳。
## 第一类:行内补全
典型形态是编辑器插件,你写前几个字符,它把后面续出来。
- **优点**:无感、不打断心流、几乎零学习成本;
- **局限**:只看得见光标附近的上下文,不理解整个项目;
- **适合**:写样板代码、补全重复结构、记不住的 API 签名。
这一类最稳妥,几乎不会坏事——它只在你主动接受时才写入,而且改动范围就几行。
## 第二类:对话式
侧边栏聊天,能读你选中的文件、贴报错、问设计问题。
- **优点**:有全局视野(如果它能索引整个仓库),适合理解和调试;
- **局限**:需要你手动复制粘贴结果,**改代码这件事还是你在做**;
- **适合**:读陌生代码、定位报错、讨论方案。
这一类的问题是上下文要你自己喂。文件没选中它就看不到,而人工挑选「哪些文件相关」本身就是个技术活。
## 第三类:智能体式
这一类是分水岭:**它不只会写,还会执行。**
它能自己读文件、改多个文件、跑 shell 命令、看报错、再改。你给一个目标,它自己拆步骤往下推进。
本站的文章发布流程就是这么做的——配图上传、文章创建、发布状态推送,全程由 AI 通过接口完成,没有打开后台界面。这类能力的效率提升是数量级的,但**风险也是数量级的**。
## 智能体的三个必备护栏
如果要用第三类工具,下面三条不是建议,是底线:
**1. 必须在 Git 仓库里工作**
```bash
git status # 开工前确认工作区干净
git add -A && git commit -m "wip: before agent run"
```
有了提交点,搞砸了一条 `git checkout .` 就能回去。**没有版本管理的目录里跑智能体,等于裸奔。**
**2. 给它受限的环境**
容器或虚拟机里跑,`rm -rf /` 的破坏范围就限制在容器里。生产数据库、正式环境的密钥,一律不给。
**3. 破坏性命令要人工确认**
删除、覆盖、推送到远端、`DROP TABLE` 这类操作,配置成必须点确认。模型会犯错,也会误解你的意图——它以为你说的「清理旧文件」包括你的源数据。
## 怎么选
按实际情况对号入座:
- **只是想写快一点** → 第一类足够,别引入复杂度;
- **经常读别人的代码、查报错** → 第二类,注意选能索引整个仓库的;
- **批量改造、重复性任务、跨文件的机械改动** → 第三类,但先把护栏搭好;
- **代码不能出网** → 只能选支持本地/私有化部署的方案,或者本地模型方案(我另写了一篇本地跑大模型的)。
还有一个常被忽略的维度:**语言与框架的主流程度**。越主流的语言,训练数据越多,AI 的表现越好。冷门框架或内部 DSL,收益会明显下降。
## 一个心态问题
用 AI 写代码最常见的不满来自期待错位:**把它当搜索引擎用会失望,当实习生用会比较准。**
给实习生交代任务,你会说清楚背景、约束、验收标准;你也不会把他的产出不经审查就合进主干。对 AI 也一样——**产出必须审查**,尤其是涉及删除、权限、数据的部分。
## 小结
三类工具不是迭代关系,是并行关系,解决不同问题。能力越强的一类需要越强的护栏,这个规律在这行里几乎没有例外。
我的建议是从第一类开始用熟,需要时再上第三类,并且**永远在 Git 里用它**。
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法