---
title: "3.5.3 有效反馈的艺术"
---


![03-technique_3.5-iterative-dialogue_3.5.3-effective-feedback.png](/images/Basic/03-technique_3.5-iterative-dialogue_3.5.3-effective-feedback.png)
# 3.5.3 有效反馈的艺术

## 经过本节学习，你将掌握

- 区分有效反馈和无效反馈
- 使用 SBI 框架（情境-行为-影响）组织反馈
- 根据问题类型选择合适的反馈粒度
- 获得一个可直接使用的反馈句式库

## 反馈决定迭代质量

迭代对话的核心是「反馈-修正」循环。你给的反馈质量，直接决定 AI 的修正质量。

同样是对一段代码不满意：

```
❌ 无效反馈："这不对，重新做"
✅ 有效反馈："handleSubmit 函数缺少错误处理，当 API 请求失败时会导致白屏"
```

第一种反馈，AI 只能猜你不满意什么。第二种反馈，AI 能精准定位问题并修复。

## 无效反馈 vs 有效反馈对比

| 无效反馈 | 问题 | 有效反馈 |
|---------|------|---------|
| "这不对" | 不知道哪里不对 | "第 15 行的条件判断逻辑有误，应该用 `&&` 而不是 `||`" |
| "太复杂了" | 不知道怎么简化 | "请移除 X 和 Y 功能，只保留核心的 Z 功能" |
| "不够好" | 不知道好的标准 | "请把函数拆分成更小的单元，每个函数不超过 20 行" |
| "样式不对" | 不知道期望什么样式 | "按钮颜色改成 #3B82F6，圆角改成 8px" |
| "有 bug" | 不知道 bug 是什么 | "当输入超过 100 个字符时，页面会卡死" |

**规律**：有效反馈 = 具体位置 + 具体问题 + （可选）期望结果

## SBI 反馈框架

SBI 是一个来自管理学的反馈框架，用于给 AI 反馈同样有效。

### 框架结构

```
S - Situation（情境）：问题出现在哪里
B - Behavior（行为）：具体是什么问题
I - Impact（影响）：这个问题会导致什么后果
```

### 示例对比

**场景**：AI 生成的表单没有验证逻辑

```
❌ 无 SBI：
"表单验证有问题"

✅ 使用 SBI：
"在 handleSubmit 函数中（S），
 没有检查邮箱格式是否正确（B），
 这会导致用户输入无效邮箱也能提交成功（I）。
 请添加邮箱格式验证。"
```

**场景**：AI 生成的代码性能差

```
❌ 无 SBI：
"代码太慢了"

✅ 使用 SBI：
"在 renderList 函数中（S），
 每次渲染都会重新创建整个数组（B），
 这会导致列表有 100 项时页面明显卡顿（I）。
 请使用 useMemo 优化。"
```

### 简化版 SBI

对于简单问题，可以省略 Impact：

```
"在 handleAdd 函数中（S），缺少空输入检查（B）。请添加验证。"
```

## 反馈粒度金字塔

不同类型的问题，需要不同粒度的反馈。

```
        ▲
       ╱ ╲
      ╱   ╲     方向级反馈
     ╱ 方向 ╲    "整体思路需要调整"
    ╱───────╲
   ╱  功能   ╲   功能级反馈
  ╱───────────╲  "这个功能缺少 XX"
 ╱    代码     ╲  代码级反馈
╱───────────────╲ "第 15 行应该改成 XX"
```

### 方向级反馈

**使用场景**：AI 的整体思路偏离了你的预期

**特点**：
- 不纠结细节
- 重新描述期望的大方向
- 可能需要推翻重来

**示例**：
```
我需要的不是一个新页面，而是一个弹窗组件。
请重新实现：用户点击按钮后，弹出一个模态框让用户输入任务。
```

### 功能级反馈

**使用场景**：方向对，但具体功能有缺失或错误

**特点**：
- 针对具体功能点
- 保留已有正确的部分
- 增量修改

**示例**：
```
整体功能可以，请补充以下内容：
1. 添加取消按钮，点击后关闭弹窗
2. 点击弹窗外部区域也能关闭
3. 按 ESC 键也能关闭
```

### 代码级反馈

**使用场景**：功能正确，但代码细节需要调整

**特点**：
- 精确到行号或函数名
- 给出明确的修改指令
- 最小范围改动

**示例**：
```
请修改以下细节：
1. 第 23 行：把 `var` 改成 `const`
2. handleClose 函数：添加 event.stopPropagation() 防止事件冒泡
3. Modal 组件：添加 aria-label="任务输入弹窗" 提升可访问性
```

### 选择合适的粒度

| 问题类型 | 使用粒度 | 判断标准 |
|---------|---------|---------|
| AI 理解错了需求 | 方向级 | 需要推翻重做 |
| 功能缺失/逻辑错误 | 功能级 | 保留大部分，增量修改 |
| 代码风格/细节问题 | 代码级 | 只需微调 |

## 常见场景的反馈句式库

### 功能缺失

```markdown
请补充以下功能：
1. [功能描述]
2. [功能描述]
```

```markdown
这个实现缺少 [功能名称]。
具体需求：[详细描述]
```

### 逻辑错误

```markdown
[函数名/位置] 的逻辑有误：
- 当前行为：[描述当前错误行为]
- 期望行为：[描述正确行为]
- 请修正。
```

```markdown
在 [场景] 下，[具体问题]。
正确的逻辑应该是：[描述正确逻辑]
```

### 代码结构优化

```markdown
请优化以下代码结构：
1. 把 [逻辑描述] 抽成独立函数
2. 把 [内容] 移到 [位置]
3. [其他结构调整]
```

```markdown
这个函数太长了（当前 [X] 行），请拆分成：
- [函数1]：负责 [职责]
- [函数2]：负责 [职责]
```

### 样式调整

```markdown
请修改以下样式：
- [元素]：[属性] 改成 [值]
- [元素]：[属性] 改成 [值]
```

```markdown
[组件] 的样式需要调整：
1. [具体样式问题]
2. [具体样式问题]
参考设计：[描述或图片链接]
```

### 边界情况

```markdown
请处理以下边界情况：
1. 当 [条件] 时，应该 [行为]
2. 当 [条件] 时，应该 [行为]
```

```markdown
当前实现没有考虑 [边界情况]。
当 [具体场景] 发生时，会 [问题描述]。
请添加相应的处理逻辑。
```

## 实战示例：修正一段有问题的代码

**AI 第一轮输出的代码**：
```tsx
function TaskList({ tasks }) {
  return (
    <ul>
      {tasks.map(task => (
        <li onClick={() => deleteTask(task.id)}>
          {task.title}
        </li>
      ))}
    </ul>
  );
}
```

**问题分析**：
1. 缺少 TypeScript 类型
2. map 中缺少 key
3. deleteTask 未定义
4. 点击整个 li 就删除，交互不合理

**有效反馈**：
```markdown
请修正以下问题：

1. 类型定义：
   - 添加 Task 接口定义（id: string, title: string）
   - 给 tasks 参数添加类型

2. React 警告：
   - map 中的 li 需要添加 key={task.id}

3. 功能问题：
   - deleteTask 函数未定义，请通过 props 传入
   - 不要让整个 li 可点击删除，改成：在每个任务后面添加一个删除按钮

4. 交互安全：
   - 删除前添加确认提示
```

## 反馈的注意事项

### 一次不要反馈太多

```
❌ 一次提出 10 个修改点
✅ 一次提出 3-5 个相关的修改点
```

如果问题很多，优先反馈最重要的，分批进行。

### 反馈要具体，但不要过度指定

```
❌ 过度指定："在第 15 行和第 16 行之间插入 const x = 1;"
✅ 适度具体："在 handleSubmit 中添加空值检查"
```

告诉 AI「做什么」，而不是「怎么写每一行代码」。

### 说明「为什么」有时很有帮助

```
请把 validateInput 函数抽出去。
原因：这个验证逻辑在其他表单中也会用到，抽成独立函数便于复用。
```

AI 理解你的意图后，可能会给出更好的实现。

## 可复制模板：通用反馈模板

```markdown
请修改以下内容：

**问题1**：[位置/上下文]
- 当前情况：[描述问题]
- 期望结果：[描述期望]

**问题2**：[位置/上下文]
- 当前情况：[描述问题]
- 期望结果：[描述期望]

**问题3**：[位置/上下文]
- 当前情况：[描述问题]
- 期望结果：[描述期望]
```

## 本节要点

✓ **有效反馈三要素**：具体位置 + 具体问题 + 期望结果

✓ **SBI 框架**：情境（哪里）→ 行为（什么问题）→ 影响（导致什么）

✓ **粒度金字塔**：方向级 → 功能级 → 代码级，根据问题类型选择

✓ **句式库**：积累常用的反馈句式，提高沟通效率

✓ **节制原则**：一次 3-5 个修改点，说「做什么」而非「怎么写」

下一节，我们来学习如何管理长对话的上下文，避免 AI「失忆」。
