Agent vs 自动补全——什么时候用哪个

决策矩阵把任务形状映射到工具:一行 / 几行胶水用补全(亚秒级),跨文件改 / 读测试 / 跑命令用 agent。延迟、范围、可控性三轴判断。

大多数”AI 写代码”踩的坑都是模式选错——用 agent 去补一行代码,或者用补全去做跨文件重构。这篇给你一条决策规则,把任务形状直接映射到工具,让你不再把时间、token、信任浪费在错的界面上。

这篇讲什么

自动补全(Copilot 灰字、Cursor Tab、JetBrains AI)对你已经写的东西做反应——从本地上下文预测接下来 1-20 行。Agent(Claude Code、Codex、Cursor Composer)会规划、读多个文件、跑命令、拼出你没敲的改动。

实际工作里真正分开它们的是:

  • 延迟:补全 100-500ms 出结果;agent 要 5-120 秒。如果你在打字时等,模式选错了。
  • 范围:补全只看当前文件和几个开着的 tab;agent 读你指给它的任何东西,包括失败的测试、日志、shell 输出。
  • 可控性:补全一个 Tab 就否决;agent 可能在你反应过来之前重写 12 个文件。

这篇适合谁看

日常用 AI 的开发者——尤其是同时付费用编辑器补全(Copilot / Cursor Tab)和 agent(Claude Code / Codex),但感觉其中一个不发力的人。

什么时候适合用

任何时候你发现自己 (a) 在手打而补全闲着,或者 (b) 等 agent 90 秒就为了两行胶水代码。两种都是模式选错的信号。

决策矩阵

任务形状原因
一行补全补全亚秒级;拒绝零成本
从注释写新函数补全 + inline edit本地上下文够
加参数并向上传递Agent跨 >1 文件
”这个测试为什么挂?“Agent要读日志 + 源码
全仓库改概念名Agent多文件、语义级
模板代码(测试搭、类型声明)补全模式匹配、快
不能稳定复现的 bugAgent要跑命令调查
从零写小脚本Inline chat / Composer一条消息说得清

具体步骤

  1. 一句话说任务。如果句子里出现”跨”、“全部”、“每个”、“找所有”——你要的是 agent。
  2. 如果任务是”补我马上要写的这一块”——让补全开车,不要切工具。
  3. 如果任务是”带意图的多文件改动”——开 agent,第一句话写清意图:“给 OrderService.create 加一个 feature_flag 参数,并向上传给调用方。”
  4. 调查 bug,先把失败信息(stack trace、日志)给 agent——不要先给你的假设。
  5. Agent 跑完后,切回补全做收尾:改变量名、调注释、整理 import。

第一次实操怎么跑

  1. 从 backlog 挑一个真实 ticket。开始前记时间。
  2. 先用补全模式打 5 分钟。如果还在手打 agent 本可以一口气写出来的样板代码,停。
  3. 把同一个 ticket 给 agent,附一句意图 + 失败的测试(如有)。
  4. 对比:哪种模式更快让测试通过?在一份叫”在这个代码库里,agent vs 补全分别什么时候赢”的笔记里写下答案。你在为这个项目积累专属直觉。

完成后检查

  • 改动是不是只动了你预期的文件?Agent 有时会”顺手优化”无关代码——review 整个 diff,不只是你开着的那个文件。
  • 它加的测试是真的在测新行为,还是在写同义反复?把改动 revert 跑一下,如果还过,那不是真测试。
  • 你接受的补全是不是用了已弃用 API?本地上下文很浅,import 要对照当前包版本验。

怎么复用这套流程

  • 维护一张一页笔记:“在这个 repo 里,agent 赢 X、补全赢 Y。“每月重读,代码库形态在变。
  • 把你最常用的 3 条 agent 意图 prompt(重构、加功能、debug)存成 snippet。Agent 质量的大部分来自第一句话。
  • 当补全连续 3 次给出错的东西,就是升级到 agent 的信号——别再硬打字。

建议的操作流程

一个真实周二:补全负责 80% 的打字(import、测试样板、简单分支)。Agent 接两件大事——一个重构(“把 billing 逻辑抽成 service”)和一个调查(“CI 里 flaky 测试,这是日志”)。单个任务里不切模式,任务间才切。

容易踩的坑

  • 简单一行补全用 agent——等 30 秒得到 Tab 200ms 就能给的东西。
  • 补全连错两次还硬撑——这是升级信号,不是再敲一遍的信号。
  • 让 agent 开放式跑(“清理这个文件”)——它会重写你不想动的部分。
  • 忘了把失败信息给 agent——它就开始猜,而不是读。
  • Agent 跑完只 review 你开着的那个文件——agent 会动兄弟文件,要看整支分支的 diff。

FAQ

  • 能不能只用一个工具?: 能,但你会在另一端慢下来。多数试过的人一个月内会装回另一个。
  • Agent 会替代补全吗?: 不会。Agent 替代的是”给自己写 Jira ticket”那一步;补全替代的是”打下一行”那一步。两者在不同层级。
  • Inline chat(Cmd-K)怎么用?: 中间地带:比补全大,比 agent 小。适合单函数重写。
  • 能同时开吗?: 能——你监督 agent 时让补全开着,两者不冲突,只是延迟不同。

相关阅读

标签: #AI 编程 #教程