###### tags: `大語言模型` `AI` `Agent` `核心概念大串聯`
# 第二篇:模型的記憶與視野 — Context 與 Context Window
> **系列**:AI 核心概念大串聯 | [返回總覽](https://hackmd.io/@TommyHuang/ByDQ96dcZx)
> [← 上一篇:LLM 與 Token](https://hackmd.io/@TommyHuang/HyUQiTuqbl) | [下一篇:Prompt →](https://hackmd.io/@TommyHuang/rygOiTucbg)
---
## 一、Context 是什麼?
**Context(上下文)** 是 LLM 在生成回應時,所能「看到」的全部資訊。
LLM 沒有持久記憶。每次呼叫模型,它只能根據**當次傳入的所有內容**來作答。這些內容的總和,就是 Context。
### Context 包含什麼?
```
┌─────────────────── Context ───────────────────┐
│ System Prompt(角色與規則設定) │
│ ───────────────────────────────────────── │
│ User: 你好,請幫我分析這份報告 │
│ Assistant: 好的,請提供報告內容 │
│ User: [報告全文 3000 字] │
│ Assistant: 以下是我的分析… │
│ User: 請針對第三點深入說明 │
└───────────────────────────────────────────────┘
```
對話歷史、系統設定、你貼進去的文件——全都是 Context 的一部分。
---
## 二、Context Window 是什麼?
**Context Window(上下文視窗)** 是 LLM 一次能處理的最大 token 數量。超過這個上限,模型就「看不到」更早的內容了。
把它想像成一個**滑動的閱讀窗口**:
```
整段對話歷史(很長):
[第1輪][第2輪][第3輪]...[第97輪][第98輪][第99輪][第100輪]
↑
Context Window 只能看到這裡之後的內容
(前面的內容已超出視窗,模型不記得了)
```
### 各大模型的 Context Window
| 模型 | Context Window |
|------|---------------|
| GPT-4o | 128K tokens |
| Claude 3.5 Sonnet | 200K tokens |
| Gemini 1.5 Pro | 1M tokens |
| Llama 3.1 70B | 128K tokens |
> 200K tokens ≈ 約 15 萬個中文字 ≈ 一本長篇小說
---
## 三、Context 與 Context Window 的關係
| | Context | Context Window |
|--|---------|----------------|
| **是什麼** | 當次對話的全部內容 | 模型能處理的最大容量 |
| **類比** | 你攤在桌上的所有文件 | 桌子的大小 |
| **影響** | 決定模型「知道什麼」 | 決定模型「能知道多少」 |
當 Context 超過 Context Window 時,系統必須做**截斷或摘要處理**,這是很多「AI 忘記對話前半段」的根本原因。
---
## 四、Context 管理為什麼重要?
### 問題一:超出上限
```
長篇對話 or 大量文件
→ Context 超過 Context Window
→ 早期資訊被丟棄
→ 模型「失憶」
```
### 問題二:稀釋效應
Context 越長,模型對每個部分的「注意力」越分散。即使在 Context Window 內,塞入無關資訊也會降低回應品質。
### 解決策略
1. **RAG(檢索增強生成)**:只把相關片段放入 Context,而非全部文件
2. **對話摘要**:定期將舊對話壓縮成摘要再放入 Context
3. **結構化 Prompt**:把重要資訊放在 Context 的開頭或結尾(模型對這兩處注意力較高)
---
## 五、重點整理
- **Context** = 模型當次能看到的所有資訊(對話歷史 + 文件 + 設定)
- **Context Window** = 模型能處理的 token 上限,超出則「看不到」
- LLM **沒有跨對話記憶**,一切都依賴 Context
- 管理好 Context 是 AI 應用品質的關鍵
---
> 下一篇:[第三篇 — 與模型溝通的語言:Prompt、User Prompt、System Prompt →](https://hackmd.io/@TommyHuang/rygOiTucbg)