> ## 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 Coding 的基本工作原理

# AI Coding 的基本工作原理

AI Coding 看起来像是“把一句话变成代码”，但它的内部并不是先理解所有知识，再像人一样思考并写程序。更准确地说，它是一个由**上下文输入、模型生成、工具执行、结果反馈和人工验证**组成的循环。

先记住一句话：**AI 不会直接读取你的想法，它只能根据你提供的上下文，预测此刻最可能有用的下一段内容或下一步操作。**

## 先用一个类比理解

想象你请来一位能力很强的新工程师。对方会很多技术，但刚加入项目，不知道你的目标、文件结构、团队规范和历史决策。

如果你只说“把登录功能做好”，对方只能猜；如果你同时提供需求、相关代码、技术栈、错误信息和验收标准，对方就更容易给出正确方案。

AI Coding 也是如此：

* AI 模型像这位知识丰富但不了解当前项目的工程师；
* 提示词和项目文件是工作资料；
* 编辑器、终端和测试工具是它可以使用的设备；
* 运行结果与报错是现场反馈；
* 开发者是提出目标、补充信息和最终验收的负责人。

## 工作原理一：接收并组织上下文

AI 开始工作前，需要先获得上下文。上下文不仅是你输入的一句话，还可能包括：

* 当前需求和预期结果；
* 编程语言、框架与运行环境；
* 当前打开的代码和相关文件；
* 项目结构、接口说明与团队规范；
* 报错信息、日志和测试结果；
* 明确的限制，例如“不新增依赖”或“保持现有接口不变”。

上下文越相关、越清晰，AI 越少依赖猜测。但上下文并不是越多越好：无关文件和过时说明会分散注意力，甚至让 AI 得出错误结论。

<aside>
  💡

  上下文工程的核心不是“把所有东西都发给 AI”，而是“把完成当前任务所需的正确信息，以清晰的结构交给 AI”。
</aside>

## 工作原理二：把文本和代码转换为模型可处理的信息

模型不会像人一样直接看到文字含义。输入内容会先被拆成较小的单位，通常称为 **Token**。一个 Token 可能是一个汉字、单词的一部分、标点或代码片段。

模型根据训练中学到的大量语言和代码模式，分析这些 Token 之间的关系。例如，当它看到函数名称、参数、注释和报错信息时，会尝试判断你正在解决什么问题，以及下一段合理的代码可能是什么。

这也解释了两个现象：

1. AI 对常见语言、框架和代码模式通常更熟悉；
2. 面对冷门库、最新 API 或项目私有规则时，如果没有可靠上下文，它更容易猜错。

## 工作原理三：生成候选答案，而不是取出标准答案

AI 生成代码时，本质上是在根据当前上下文，逐步预测接下来最合适的 Token。它不是从一个“标准答案数据库”中复制唯一答案，而是在多种可能方案中生成一个候选结果。

因此，同一个需求可能得到不同实现；看起来语法正确的代码，也可能存在以下问题：

* 使用了不存在或已经过时的 API；
* 漏掉异常情况和边界条件；
* 与项目现有架构或风格不一致；
* 引入不必要的依赖；
* 只满足表面描述，却没有满足真实需求。

所以，AI 的输出应该被视为“待审查的初稿”，而不是天然可信的最终答案。

## 工作原理四：通过工具把建议变成操作

不同 AI Coding 工具拥有不同的操作范围：

| 工具形态      | AI 通常能做什么          | 人需要特别关注什么     |
| --------- | ------------------ | ------------- |
| 代码补全      | 根据光标附近内容补充几行代码     | 补全是否符合当前逻辑    |
| 对话工具      | 解释概念、生成片段、分析报错     | 是否提供了足够上下文    |
| AI 编辑器    | 阅读多个文件、批量修改代码      | 修改范围是否失控      |
| 终端或 Agent | 执行命令、运行测试、连续完成多步任务 | 权限、命令风险和每一步结果 |

模型本身只负责生成内容或操作建议。真正读取文件、修改代码、运行命令的是工具。工具能力越强，效率可能越高，但错误造成的影响也可能越大，因此更需要限制范围、检查差异和保留回滚点。

## 工作原理五：利用反馈不断修正

一次生成很少能直接完成复杂任务。可靠的 AI Coding 通常是一个循环：

1. **人定义目标**：说明要解决什么问题和验收标准；
2. **提供上下文**：给出相关代码、环境、约束和错误信息；
3. **AI 生成方案**：提出解释、代码或下一步操作；
4. **工具执行**：修改文件、运行程序或执行测试；
5. **获得反馈**：查看输出、报错、测试结果和代码差异；
6. **人进行验证**：判断是否正确、安全并符合真实需求；
7. **继续迭代**：根据反馈补充信息，让 AI 修正或换方案。

可以把这个闭环记成：

**目标 → 上下文 → 生成 → 执行 → 反馈 → 验证 → 迭代**

其中最容易被忽略的是“验证”。如果没有运行和检查，AI 只能生成“看起来可能正确”的代码，无法证明代码真的有效。

## 一个完整示例：让 AI 修复登录报错

假设登录接口返回 `401 Unauthorized`。

一个低质量请求是：

> 登录坏了，帮我修好。

AI 不知道使用什么框架、请求内容是什么、期望行为是什么，只能猜测。

更可靠的协作过程是：

1. 人说明技术栈、期望结果和实际现象；
2. 提供完整报错、相关接口代码和请求示例；
3. 要求 AI 先列出可能原因，不要立即大范围修改；
4. 人检查每个假设是否有证据；
5. 选择一个假设，用日志或测试验证；
6. AI 提出最小修改方案；
7. 工具执行修改并重新运行测试；
8. 人检查修复是否引入新的安全或逻辑问题。

这里真正发挥作用的不是某句“神奇提示词”，而是上下文、假设、执行和验证共同组成的工作流。

## 为什么 AI 会出现幻觉？

当信息不足、知识过时或任务表达模糊时，模型仍会尝试生成一个连贯答案。它可能非常自信地补全不存在的函数、参数或文档，这就是常说的“幻觉”。

降低幻觉风险的方法包括：

* 提供真实代码、版本号和官方文档；
* 要求 AI 区分“已知事实”和“推测”；
* 让 AI 引用它依据的代码位置或错误信息；
* 先让 AI 提问，再开始生成；
* 运行代码、测试 API，并核对官方资料；
* 修改前保存版本，确保可以回滚。

## 小练习：问题出在哪一步？

某位开发者对 AI 说：“用最新方法改造这个项目。”AI 随后修改了 20 个文件，并引入一个项目里没有使用过的库。开发者没有查看差异，只因为程序能够启动就直接提交了代码。

请判断下面哪些环节存在问题：

1. 目标是否足够明确？
2. 上下文和约束是否充分？
3. AI 的修改范围是否受控？
4. 是否进行了有效验证？
5. 是否适合直接提交？

### 参考答案

| 环节     | 判断  | 原因与改进                                |
| ------ | --- | ------------------------------------ |
| 目标     | 有问题 | “最新方法”没有明确含义，应说明要解决的问题、目标版本和验收标准。    |
| 上下文与约束 | 有问题 | 没有说明现有架构、允许修改的范围，以及能否新增依赖。           |
| 修改范围   | 有问题 | 一次修改 20 个文件风险过大，应先给计划，再分批做最小修改。      |
| 验证     | 有问题 | “能够启动”只证明没有立即崩溃，还需要检查代码差异、运行测试并验证功能。 |
| 提交     | 不适合 | 未审查、未充分测试，也没有确认新依赖的安全性和必要性。          |

\*\*更好的流程：\*\*先让 AI 解释“改造”的具体方案和影响范围；人确认后分步骤修改；每一步检查差异并运行对应测试，最后再做整体回归验证。

## 本节结论

AI Coding 的基本工作原理，不是 AI 神奇地“理解一切并自动写对代码”，而是模型根据有限上下文生成候选方案，工具把方案转化为实际操作，人再利用运行结果和测试反馈进行验证与迭代。

真正可靠的 AI Coding 依赖三个条件：**给对上下文、限制操作范围、坚持人工验证。**
