> ## Documentation Index
> Fetch the complete documentation index at: https://aicoding.cscitech.top/llms.txt
> Use this file to discover all available pages before exploring further.

# AI 能做什么，不能做什么

# AI 能做什么，不能做什么

使用 AI Coding 前，最重要的不是先记住多少提示词技巧，而是建立正确的能力边界：**AI 很擅长快速生成候选方案，但不擅长独立确认真实需求、保证事实正确或承担最终责任。**

如果把 AI 当成万能专家，容易盲目接受错误；如果把它当成只能聊天的玩具，又会错过大量效率提升。更合理的定位是：**AI 是速度很快、知识面很广，但需要明确任务、充分上下文和持续审查的开发助手。**

## 先做一个判断

假设你对 AI 说：“帮我做一个安全、好用、性能优秀的登录系统。”

AI 可以迅速生成页面、接口和数据库代码，但它并不知道：

* 你的真实用户是谁；
* 公司采用什么安全规范；
* 项目现有架构和历史约束；
* “性能优秀”的具体指标；
* 哪些登录方式符合业务成本和法律要求；
* 生成的代码在真实环境中是否一定正确。

这说明 AI 的能力取决于任务类型、输入质量、工具权限和验证流程，而不是仅仅取决于模型“聪不聪明”。

## AI 擅长做什么

### 1. 解释代码与技术概念

AI 可以把复杂代码翻译成更容易理解的语言，说明函数作用、数据流和常见设计模式。

适合的请求包括：

* “逐步解释这个函数做了什么”；
* “比较 REST 与 GraphQL 的区别”；
* “解释这条报错信息中的每一部分”；
* “用零基础能理解的方式说明异步编程”。

但解释仍要结合真实代码和官方资料验证，尤其是冷门库或新版本功能。

### 2. 生成代码初稿和样板代码

AI 对常见、结构清晰、重复性高的代码通常表现较好，例如：

* 表单、列表、接口调用等常见功能；
* 数据结构、类型定义和基础配置；
* CRUD 接口和样板模块；
* 正则表达式、脚本和数据转换；
* 测试、注释、README 和接口文档初稿。

关键词是“初稿”。生成后仍需检查逻辑、边界、安全性和项目一致性。

### 3. 协助调试

当你提供完整报错、相关代码、输入数据和期望结果时，AI 可以：

* 解释错误信息；
* 列出可能原因；
* 建议添加哪些日志；
* 帮助构造最小复现；
* 比较不同修复方案；
* 根据测试反馈继续缩小范围。

AI 最适合帮助提出和整理假设，而不是在没有证据时“一键修复”。

### 4. 审查与改进代码

AI 可以从多个角度快速扫描代码：

* 潜在逻辑错误和遗漏的边界情况；
* 重复代码和可读性问题；
* 常见安全风险；
* 不一致的命名和风格；
* 可能缺失的测试；
* 文档与实现不一致之处。

它可以成为第一轮审查助手，但不能替代项目维护者或安全专家的最终评审。

### 5. 拆解任务和提供方案

面对一个较大的需求，AI 可以协助：

* 澄清模糊点；
* 把目标拆成可执行步骤；
* 对比技术方案及其优缺点；
* 生成实施计划和验收清单；
* 识别依赖关系和潜在风险。

最终方案需要人结合团队能力、成本、时间和长期维护做出取舍。

### 6. 执行重复性工作

连接编辑器或终端工具后，AI 可以协助完成：

* 批量重命名和格式调整；
* 迁移重复的 API 用法；
* 生成多组相似测试；
* 更新注释和文档；
* 运行构建、检查和测试命令；
* 根据明确规则修改多个文件。

这类任务应提前限定范围，并通过版本差异确认没有误改。

## AI 不能可靠地做什么

这里的“不能”不是指永远无法生成某种结果，而是指：**不能在缺少人工监督的情况下稳定保证正确。**

### 1. 不能自动知道你没有提供的信息

AI 不知道你的隐含想法、口头约定、未打开的文件和真实业务背景。如果提示词里没有说明，它通常只能根据常见模式猜测。

错误期待：

> 你应该知道我想要什么。

正确做法：提供目标、环境、相关代码、限制条件和验收标准。

### 2. 不能保证输出一定正确

AI 可能生成：

* 不存在的函数、库或参数；
* 与当前版本不兼容的写法；
* 语法正确但业务逻辑错误的代码；
* 只处理正常流程、忽略异常情况的实现；
* 表面修复报错但破坏其他功能的改动。

因此，任何代码都需要运行、测试和审查。

### 3. 不能独立定义真实需求

AI 可以帮助提问和整理需求，却无法替代真实用户、产品负责人或业务团队决定：

* 功能到底解决什么问题；
* 哪些需求优先；
* 什么体验可以接受；
* 成本、风险和时间如何权衡；
* 功能是否真正有价值。

AI 可以提供候选答案，但真实需求来自现实世界。

### 4. 不能承担安全、隐私和合规责任

AI 可以指出常见风险，却不能保证系统绝对安全，也不能替组织承担责任。

高风险领域必须由人严格把关，例如：

* 身份认证与权限控制；
* 密码、密钥和隐私数据处理；
* 支付与财务计算；
* 医疗、法律和监管相关功能；
* 删除数据、生产部署和权限变更。

遇到这些任务，应限制 AI 权限、进行专业评审并保留审计记录。

### 5. 不能用流畅表达代替真实证据

AI 的回答可能结构完整、语气肯定，但“说得像真的”不等于“已经证明”。

当 AI 声称“测试全部通过”“没有安全风险”或“已经兼容旧版本”时，应继续追问：

* 实际运行了哪些命令？
* 测试结果在哪里？
* 修改了哪些文件？
* 依据的是哪段代码或哪份官方文档？
* 哪些情况尚未验证？

### 6. 不能替你承担最终决策

是否合并代码、发布功能、迁移数据或执行高风险命令，必须由有责任和权限的人决定。

<aside>
  ⚠️

  可以把任务交给 AI，但不能把责任交给 AI。
</aside>

## 不同任务的适合程度

| 任务类型      | 适合程度 | 推荐的人机分工                 |
| --------- | ---- | ----------------------- |
| 解释普通代码    | 高    | AI 解释，人结合代码核对           |
| 生成常见样板代码  | 高    | AI 起草，人审查并测试            |
| 编写测试初稿    | 高    | AI 生成，人检查测试是否真正有效       |
| 分析常见报错    | 较高   | AI 提假设，人收集证据并验证         |
| 大范围架构重构   | 中    | AI 提方案和分步修改，人控制范围与取舍    |
| 身份认证与支付逻辑 | 较低   | AI 辅助，人和专业评审者严格把关       |
| 生产数据删除    | 很低   | AI 可说明方案，但执行必须经过人工确认和备份 |
| 判断产品是否有价值 | 很低   | AI 辅助分析，人基于用户和业务事实决定    |

## 判断一个任务能否放心交给 AI

可以用下面五个问题做快速检查：

1. \*\*任务是否清晰？\*\*是否有明确输入、输出和验收标准？
2. \*\*错误代价多大？\*\*失败只是页面样式不佳，还是会造成数据、金钱或安全损失？
3. \*\*结果能否验证？\*\*是否有测试、日志、预览或人工检查方法？
4. \*\*修改能否回滚？\*\*是否使用版本控制、备份和小步提交？
5. \*\*AI 权限是否合适？\*\*它是否只能访问完成任务所需的文件和工具？

任务越清晰、风险越低、越容易验证和回滚，就越适合让 AI 多做；任务越模糊、风险越高、越难验证，人就必须更深度参与。

## 一个对比例子：同样是“删除”

### 低风险：删除测试项目中的临时日志

AI 可以搜索特定日志、列出修改计划、删除后运行测试，再由人查看差异。任务明确、可回滚、影响范围有限。

### 高风险：删除生产数据库中的重复用户

AI 可以协助分析重复规则和生成查询草案，但不能直接执行。人需要确认识别规则、备份数据、预览影响行数、设计恢复方案，并经过授权后再操作。

两者都叫“删除”，但风险和验证成本完全不同，因此人机分工也不同。

## 小练习：哪些可以多交给 AI？

请判断以下任务中，哪些可以让 AI 多做，哪些需要人重点把关：

1. 给一个学习项目生成 README 初稿；
2. 根据明确接口生成数据类型定义；
3. 决定是否将全部用户数据迁移到新数据库；
4. 分析一条带完整堆栈的测试报错；
5. 审核支付接口是否可以直接上线；
6. 批量重命名项目中的一个内部函数。

### 参考答案

| 任务           | 建议             | 原因                          |
| ------------ | -------------- | --------------------------- |
| 生成 README 初稿 | AI 多做，人核对      | 风险较低，内容容易检查，但要确保命令和说明与项目一致。 |
| 生成数据类型定义     | AI 起草，人测试      | 输入输出明确，适合生成；仍需确认可选字段和边界。    |
| 迁移全部用户数据     | 人主导            | 风险高，必须设计备份、验证、回滚和授权流程。      |
| 分析测试报错       | AI 辅助分析，人验证    | AI 适合提出原因，但需要通过代码和实验确认。     |
| 审核支付接口上线     | 人与专业评审者主导      | 涉及金钱、安全和业务责任，不能只依赖 AI。      |
| 批量重命名内部函数    | AI 和工具执行，人审查差异 | 规则明确且可回滚，但要确认引用和测试全部通过。     |

\*\*判断原则：\*\*低风险、规则明确、容易验证和回滚的任务，可以让 AI 多做；高风险、需求模糊、难以验证或责任重大的任务，必须由人主导。

## 本节结论

AI 能快速解释、生成、拆解、调试、审查和执行重复工作，却不能自动知道隐含信息、保证永远正确、独立定义真实需求或承担安全与上线责任。

掌握 AI Coding 的关键，不是把所有工作都交给 AI，而是学会判断：**什么可以让 AI 起草，什么必须由人决定，什么一定要用代码、测试和真实反馈验证。**
