Skip to main content

从代码补全到自主 Agent

代码补全是 AI Coding 最早、也最容易理解的形态;自主 Agent 则代表 AI 从“给建议”走向“执行任务”。这条演进路线的核心,并不是 AI 一次能生成更多代码,而是它获得了更大的上下文、更丰富的工具,以及根据结果继续行动的能力。

先思考一个问题

如果 AI 能根据一句需求生成完整功能,它就算“自主 Agent”了吗? 不一定。生成代码只说明模型能够给出内容;自主执行任务还要求它能够读取环境、制定步骤、调用工具、观察结果,并根据反馈继续调整。

第一阶段:代码补全

代码补全工具会根据光标前后的内容,预测接下来最可能出现的代码。开发者仍然掌握完整的工作流:决定写什么、在哪个文件中写,以及是否接受建议。 例如,当你输入:
AI 可能继续生成循环、求和和返回值。这种模式很像“智能输入法”:速度快、打扰少,但它通常只理解局部上下文,也不会主动运行或验证代码。 **人的职责:**定义目标、拆分步骤、检查每一次补全。 **AI 的职责:**预测并建议下一段代码。

第二阶段:对话式编程助手

当工具加入聊天界面后,开发者不再只能通过代码开头表达意图,还可以直接提出问题:
  • 解释这段代码
  • 为什么会出现这个报错?
  • 帮我写一个用户登录接口
  • 给这个函数补充测试
对话助手可以处理更完整的需求,也能解释方案,但它的回答通常仍停留在聊天窗口中。开发者需要自行选择文件、复制或应用代码,并运行验证。 这时,AI 从“预测下一行”变成了“根据自然语言提供方案”。

第三阶段:上下文感知的代码编辑

下一步,AI 开始理解项目级上下文。它可以搜索仓库、读取多个文件,并直接生成可审查的修改。 例如,面对“给用户接口增加邮箱校验”这个任务,它可能同时修改:
  1. 数据模型
  2. 接口处理逻辑
  3. 错误提示
  4. 单元测试
与对话助手相比,关键变化不是输出变长了,而是 AI 开始理解修改应该发生在哪里,并能把一次需求映射到多个文件。

第四阶段:IDE 与 CLI Agent

当 AI 能调用工具时,它就开始具备 Agent 特征。常见工具包括:
  • 搜索和读取项目文件
  • 创建、修改或删除文件
  • 执行终端命令
  • 运行测试、构建和代码检查
  • 查看日志和错误信息
  • 读取 Git Diff
此时,工作流不再是简单的“提问 → 回答”,而是一个循环: 理解目标 → 制定计划 → 修改代码 → 运行验证 → 分析结果 → 继续修正 例如,你要求它“修复注册接口测试失败的问题”,Agent 可能先运行测试,定位失败用例,读取相关代码,修改实现,再次运行测试。如果仍然失败,它会根据新错误继续调整。 这说明 Agent 不只是生成代码,还会使用真实环境中的反馈。

第五阶段:自主与后台 Agent

更进一步的 Agent 可以在较少人工干预的情况下完成较长任务,甚至在云端后台运行。开发者给出目标和约束后,Agent 可以:
  1. 获取任务和代码仓库
  2. 分析需求并制定计划
  3. 在独立环境中修改代码
  4. 运行测试和质量检查
  5. 生成提交或 Pull Request
  6. 汇报结果、风险与未解决问题
这里的“自主”不是无人负责,而是人从逐行操作者变成目标制定者和结果审核者

五种形态的核心区别

真正的分界线:是否形成闭环

可以用四个问题判断一个工具离自主 Agent 有多远:
  1. **它看得到什么?**只能看光标附近,还是能读取整个仓库和运行环境?
  2. **它做得到什么?**只能输出文本,还是能修改文件、运行命令和提交代码?
  3. **它会不会验证?**生成代码后是否会运行测试,并根据结果继续修正?
  4. **谁决定下一步?**每一步都由人指定,还是 AI 能在约束内规划后续行动?
当一个系统能够“观察—行动—验证—调整”,它才真正具备 Agent 式工作能力。

自主程度越高,不代表风险越低

Agent 能执行的动作越多,效率可能越高,但错误的影响范围也会扩大:
  • 错误理解需求后修改多个文件
  • 运行危险或不可逆的命令
  • 接触不必要的密钥和敏感数据
  • 测试通过,但实现偏离真实业务目标
  • 为完成任务而引入过度复杂的方案
因此,成熟的人机协作并不是“把所有权限交给 AI”,而是根据任务设置边界:限制可访问范围、要求展示计划、审查 Diff,并在关键操作前保留人工确认。

一个任务在不同工具中的表现

假设任务是:给待办应用增加“按完成状态筛选”的功能。
  • **代码补全:**你逐步编写筛选函数,AI 补全条件判断。
  • **对话助手:**AI 给出实现思路和示例代码,你手动应用。
  • **上下文编辑:**AI 找到列表组件和状态管理文件,生成多文件修改。
  • **IDE/CLI Agent:**AI 修改代码,运行测试和构建,再根据错误修复。
  • **自主后台 Agent:**AI 在独立环境完成实现与验证,并提交一个供你审查的 Pull Request。
同一个模型可以出现在不同工具形态中。真正决定体验的,除了模型能力,还有它能看到的上下文、能够调用的工具,以及被授予的权限。

练习:判断它是不是 Agent

观察你正在使用的一款 AI Coding 工具,并回答:
  • 它能读取多少项目上下文?
  • 它可以直接修改哪些内容?
  • 它能运行测试或终端命令吗?
  • 失败后,它会自己根据结果继续尝试吗?
  • 哪些操作必须经过你的确认?
  • 点击查看参考答案 判断一款工具更接近助手还是 Agent,关键不在于它一次生成了多少代码,而在于它能否形成工作闭环。如果读取上下文、修改文件、执行命令和验证结果等大部分步骤仍需你手动完成,它更接近助手;如果它能围绕目标连续完成“观察—行动—验证—调整”,并只在关键节点请求确认,它就更接近 Agent。

本节小结

AI Coding 工具的演进,可以概括为: 补全代码 → 回答问题 → 编辑项目 → 调用工具 → 自主执行任务 其中最重要的变化有三点:
  1. 上下文从局部代码扩展到完整项目和运行环境
  2. 输出从文字建议扩展到真实操作
  3. 工作方式从一次性回答变成持续验证和调整的闭环
但无论工具多么自主,开发者仍然需要负责目标、约束、审查和最终结果。AI 的自主程度提升了,人的工作不是消失,而是从“亲自完成每一步”转向“设计任务并确保结果正确”。