# AI 编程是什么：从补全到智能体

> 先建立一张地图。AI 编程工具经历了补全、对话、智能体三个阶段，它们各自擅长什么、你还需要会什么，决定了你该怎么学、从哪里开始。

- 网址：https://coding.chengyu.dev/learn/start/ai-coding-map/
- 学习路径：起步：第一次让 AI 写出能跑的东西
- 预计用时：12 分钟；核实日期：2026-10-25
- 官方来源：[Claude Code 概览（Anthropic 官方文档）](https://code.claude.com/docs/en/overview)，[Building effective agents（Anthropic）](https://www.anthropic.com/engineering/building-effective-agents)

## 学习目标

- 说清补全、对话、智能体三类 AI 编程工具的区别
- 理解智能体「读—想—做—验」的工作循环
- 知道用 AI 编程时，哪些事仍然必须由你负责

如果你刚开始接触 AI 编程，最容易犯的错是**把所有工具当成同一种东西**：有人拿聊天窗口去改一个几百个文件的项目，来回复制粘贴到崩溃；也有人让智能体从零写一个大系统，却不说清楚要什么，最后得到一堆看似能跑、实际没法维护的代码。

这一课先不装任何东西，只做一件事：建立一张地图。

## 三代工具，三种协作方式

过去几年，AI 写代码的方式大致经历了三个阶段。它们不是替代关系，今天仍然同时存在，只是适合的场景不同。

| | 补全 | 对话 | 智能体 |
|---|---|---|---|
| 典型形态 | 编辑器里的灰色提示 | 网页聊天窗口 | 终端 / IDE 里自主干活的助手 |
| 你给它什么 | 光标附近的代码 | 你复制进去的片段和问题 | 一个目标，加上整个项目 |
| 它能做什么 | 补完当前这几行 | 解释、给建议、写一段代码 | 读文件、改多个文件、跑命令、看结果再修改 |
| 谁来动手 | 你 | 你（复制粘贴） | 它（在你的授权下） |
| 适合 | 熟练开发者提速 | 学习、查问题、写小片段 | 完成一个完整任务 |

**补全**像一个反应很快的同桌，你写上半句，它猜下半句。它不知道你要做什么，只知道你刚写了什么。

**对话**像一个随叫随到的老师。它懂得很多，但看不到你的项目，你得自己把相关代码贴给它，再把它的答案贴回去。项目一大，这种「人肉搬运」就成了瓶颈。

**智能体**（Agent）是这一轮变化的核心。它能直接看到你的项目文件，可以自己决定先读哪些文件、改哪里、运行什么命令来检查。你从「逐行指挥」变成了「布置任务、审查结果」。Claude Code、OpenAI Codex、Cursor 的 Agent 模式、GitHub Copilot 的 coding agent 都属于这一类。

> **一句话记住**
>
> 补全帮你**写得快**，对话帮你**想得清**，智能体帮你**做得完**。这个网站的大部分内容，都围绕怎么用好智能体展开。

## 智能体是怎么干活的

无论哪家的智能体，内部都是同一个循环：

1. **读**：根据你的要求，搜索、打开相关文件，弄清现状；
2. **想**：规划要改哪些地方、按什么顺序改；
3. **做**：编辑文件、运行命令（比如安装依赖、启动程序、跑测试）；
4. **验**：看命令输出和报错，判断是否达到目标；没达到就回到第 1 步。

这个循环会一直转，直到它认为任务完成，或者需要你做决定。下面是一次真实感很强的交互（细节简化过）：

```text
$ claude
> 给待办列表加一个「清空已完成」按钮，并确认页面能正常运行
⏺ 我先看一下项目结构和待办列表的组件。
  Read src/components/TodoList.tsx
  Read src/store/todos.ts
⏺ 需要在 store 里加 clearCompleted 方法，并在列表底部加按钮。
  Edit src/store/todos.ts  (+6 -0)
  Edit src/components/TodoList.tsx  (+9 -1)
⏺ 运行测试和类型检查：
  Bash npm test && npm run typecheck
  ✓ 14 passed
⏺ 已完成：新增按钮，无已完成项时自动隐藏。测试全部通过。
```

注意智能体做的最后一步：**它自己跑了测试**。能不能让智能体自己验证结果，是用好它的关键，后面的课会反复讲到。

## 哪些事仍然是你的

智能体很强，但它不会替你承担责任。下面这些事，任何时候都应该由你负责：

- **说清楚要什么**。智能体最常见的失败不是「不会写」，而是「写的不是你要的」。目标、限制条件、怎样算完成，越具体越好。
- **审查它改了什么**。你不需要读懂每一行，但要知道它动了哪些文件、为什么动。第 6 课会教你用最少的 git 知识做到这一点。
- **把关危险操作**。删除文件、改数据库、推送代码、处理密钥，这些操作在执行前要你点头。好的智能体默认会请求许可，不要图省事全部放开。
- **判断「好不好」**。代码能跑不等于好用。用户体验、产品取舍、长期维护成本，需要人来判断。

> **一个常见误区**
>
> 「AI 写代码，所以我不用学编程了。」更准确的说法是：**你需要学的东西变了**。语法细节可以交给 AI，但理解程序如何运行、如何拆解问题、如何验证结果，变得比以前更重要。这个网站的学习路径正是按这个思路设计的。

## 你适合从哪里开始

- **完全没写过代码**：按顺序学完「起步」路径，重点是第 3、4 课，把第一个项目真正跑起来。
- **会写代码，没用过智能体**：快速浏览本路径，然后进入「Claude Code 精通」。
- **已经天天在用**：直接去「AI 编程的工程方法」，或者到[练习场](/play/)检验一下自己。

> 小测：你想让 AI 帮忙给一个已有项目加功能，涉及 5 个文件的修改并且需要跑测试确认。最合适的工具形态是？

> 小测：以下哪件事，即使用了智能体也应该由你亲自负责？

## 动手试一试

还没装任何工具也没关系，先用任意一个你能访问的 AI 对话助手，感受一下「布置任务」和「问问题」的区别：

**试试把问题变成任务**

```text
我想做一个网页版番茄钟：25 分钟专注、5 分钟休息，可以开始、暂停、重置，时间到了响铃提醒。

在写代码之前，请先：
1. 列出你对需求不确定、需要我确认的地方（不超过 5 条）；
2. 给出你打算的实现方案（用什么技术、分几个文件）；
3. 说明完成后我该怎么验证它是对的。
```

你会发现，好的 AI 会先追问细节，而不是直接开写。这就是下一课以后要反复练习的协作方式：**先对齐目标，再动手，最后验证**。

- [ ] 能用自己的话解释补全、对话、智能体的区别
- [ ] 记住智能体的「读—想—做—验」循环
- [ ] 把上面的提示词发给一个 AI 助手，看看它追问了什么
- [ ] 想好自己属于哪类学习者，选定下一步的学习路径
