# M0.1 什么是人工智能 / 大模型 / Agent

> 目标：建立对 AI、大模型、Agent 三者关系的正确直觉，知道它们分别"能"和"不能"做什么。

## 1. AI、机器学习、深度学习的关系

简单说，这是一层套一层的关系：

```
AI（人工智能，最广义）
 └─ 机器学习（让机器从数据中自己找规律）
     └─ 深度学习（用"神经网络"这一种模型）
         └─ 大模型（用海量文本训练的深度学习模型）
```

**动手感受差异**：下面两段"判断是不是垃圾邮件"的代码，代表了两种思路。

```python
# 思路 A：规则式 AI（早期做法）——人写规则
def is_spam_rule(text):
    return any(k in text for k in ["免费", "中奖", "点击链接", "转账"])

# 思路 B：机器学习式——模型从大量"已标注邮件"里自己学规律
# （这里只是示意，真实要训练）
model = load_trained_model("spam_model.pkl")
def is_spam_ml(text):
    return model.predict(text) == "spam"
```

- A 的优点是简单可控，缺点是规则永远写不全。
- B 不写规则，而是喂数据，但它需要数据、需要训练、结果是"黑盒"。

**练习**：找出你手机里 3 个"机器学习"功能（如相册人脸识别、输入法联想、推荐流），用一句话说明它靠"数据规律"而非"写死规则"在哪里体现。

## 2. 大模型（LLM）是什么

大模型 = 用海量文本训练出来的、能"接龙式"生成文字的模型。你给它前半句，它预测最可能接着出现的字。

它的本质是**概率预测**，不是"理解"。但因为它见过太多人类文本，预测出来的东西看起来像"懂了"。

**动手**：用最直白的方式理解"预测下一个字"：

```python
# 这不是真正的大模型，只是用最简单的方式演示"语言模型"在做什么
from collections import Counter

# 假设模型只见过这一句话
corpus = "今天天气真好 今天天气晴朗 今天我想出门".split()
model = Counter(corpus)

# 当输入"今天"后，模型统计历史里"今天"后面最常跟的词
next_words = [w for w in corpus if w != "今天"]
print(next_words)   # 看，它只是在做"统计 + 预测"
```

真实大模型做的事完全一样，只是它见过万亿字、参数上千亿，所以预测得极像人话。

## 3. Agent：会自己干活的"程序"

普通聊天机器人：你问一句，它答一句，**不动手**。
Agent：**能规划、能调工具、能一步步把事办成**。

```python
# 普通聊天：只回答
def chatbot(q):
    return llm_answer(q)

# Agent：接到任务后，自己决定"要不要查天气、要不要算数"
def agent(task):
    plan = llm_plan(task)          # 1. 先想清楚要几步
    for step in plan:
        if step.need_tool:
            result = call_tool(step.tool, step.arg)   # 2. 动手调用工具
            step.feed(result)                        # 3. 把结果喂回去
    return llm_summarize(plan)
```

**关键区别一句话**：普通 AI 是"嘴"，Agent 是"嘴 + 手"。

## 4. 三者关系

```
AI ⊃ 大模型 ⊃ Agent 的"智能底座"
```

- 大模型是 Agent 的"大脑/嘴"，负责理解和生成。
- Agent 在大模型外面套了一层"手脚"（工具调用 + 流程控制），让它能真正办事。
- 没有大模型，也能做 Agent（早期规则 Agent）；但今天说的 Agent，几乎都基于大模型。

## 自测

1. 判断：某公司说"我们的客服是 AI"，它更可能是"规则机器人"还是"大模型 Agent"？怎么区分？（提示：看它能不能调用后台系统查你的订单）
2. 为什么大模型"会一本正经地胡说"？根子出在哪一步？
3. 用你自己的话，给一个完全不懂技术的朋友解释 Agent 和聊天机器人的区别（不超过 50 字）。
