---
# System prepended metadata

title: 第三篇：與模型溝通的語言 — Prompt、User Prompt、System Prompt
tags: [大語言模型, Agent, 核心概念大串聯, AI]

---

###### tags: `大語言模型` `AI` `Agent` `核心概念大串聯`
# 第三篇：與模型溝通的語言 — Prompt、User Prompt、System Prompt

> **系列**：AI 核心概念大串聯 | [返回總覽](https://hackmd.io/@TommyHuang/ByDQ96dcZx)
> [← 上一篇：Context 與 Context Window](https://hackmd.io/@TommyHuang/SkiIsT_qbe) | [下一篇：Tool 與 MCP →](https://hackmd.io/@TommyHuang/Bkltjadc-l)

---

## 一、Prompt 是什麼？

**Prompt（提示詞）** 是你傳給 LLM 的輸入內容，是人類與模型之間的「溝通語言」。

Prompt 的品質直接決定模型輸出的品質。同樣的模型、同樣的問題，不同的 Prompt 寫法可能產生天壤之別的結果。

```
差的 Prompt：「幫我寫文章」
好的 Prompt：「請以科技部落格風格，為一般讀者撰寫一篇 600 字的文章，
             主題是 AI Token 的概念，需要包含生活化比喻與具體範例」
```

---

## 二、Prompt 的兩大類型

在 AI 系統架構中，Prompt 依**傳送者與目的**分為兩種：

```
┌─────────────────── LLM 收到的 Context ───────────────────┐
│  ┌─────────────────────────────────────────────────────┐  │
│  │  System Prompt（開發者設定，使用者通常看不到）       │  │
│  └─────────────────────────────────────────────────────┘  │
│  ┌─────────────────────────────────────────────────────┐  │
│  │  User Prompt（使用者輸入的訊息）                    │  │
│  └─────────────────────────────────────────────────────┘  │
└───────────────────────────────────────────────────────────┘
```

---

## 三、User Prompt

**User Prompt** 是使用者在對話中輸入的訊息，也就是你平常在 ChatGPT 或 Claude 對話框裡打的那些字。

### 特性

- **即時性**：每次對話動態產生
- **可見性**：使用者自己寫、自己看得到
- **目的**：表達需求、提問、給指令

### 範例

```
User Prompt 範例：
- 「幫我把這段程式碼從 Python 改寫成 JavaScript」
- 「請摘要以下這篇論文的重點：[論文內容]」
- 「你覺得我的商業計畫有什麼問題？」
```

---

## 四、System Prompt

**System Prompt** 是開發者在對話開始前預先設定的指令，用來定義模型的**角色、行為規則與限制**。

使用者通常看不到 System Prompt，但它對模型的影響力極大——往往比 User Prompt 的優先級更高。

### System Prompt 能做什麼？

```
System Prompt 範例：

你是一位專業的法律助理，只能回答台灣法律相關問題。
- 回答必須引用相關法條
- 不可提供投資建議
- 若問題超出法律範圍，請禮貌拒絕並說明原因
- 回答語氣正式、精確
```

### System Prompt 的用途

| 用途 | 範例 |
|------|------|
| **角色設定** | 「你是一個客服機器人，代表 XX 品牌」 |
| **行為規範** | 「不可討論競爭對手產品」 |
| **輸出格式** | 「所有回答必須用 JSON 格式」 |
| **知識注入** | 把產品文件、FAQ 放入 System Prompt |
| **安全護欄** | 「不可生成任何有害內容」 |

---

## 五、兩者的關鍵差異

| | User Prompt | System Prompt |
|--|-------------|---------------|
| **撰寫者** | 使用者 | 開發者 |
| **可見性** | 使用者可見 | 通常隱藏 |
| **時機** | 對話中動態輸入 | 對話前預先設定 |
| **目的** | 提出需求 | 定義角色與規則 |
| **類比** | 顧客的點餐 | 餐廳的服務手冊 |

---

## 六、Prompt Engineering

「**Prompt Engineering（提示詞工程）**」是指系統化地設計 Prompt 以獲得更好輸出結果的技術。

### 幾個重要技巧

**1. 給予角色（Role Prompting）**
```
「你是一位擁有 20 年經驗的軟體架構師，請審查以下程式碼…」
```

**2. 提供範例（Few-shot Prompting）**
```
「請按照以下格式分類商品評論：
範例 1：'這個產品很棒' → 正面
範例 2：'品質很差' → 負面
現在分類：'還可以接受'」
```

**3. 思維鏈（Chain of Thought）**
```
「請一步步思考，先分析問題，再給出答案」
```

**4. 明確限制**
```
「用繁體中文、300 字以內、條列式回答」
```

---

## 七、重點整理

- **Prompt** = 傳給 LLM 的輸入，是人機溝通的核心介面
- **User Prompt** = 使用者的即時輸入，表達需求
- **System Prompt** = 開發者預設的規則，定義模型角色與行為
- 好的 Prompt 設計能大幅提升輸出品質——這就是 Prompt Engineering

---

> 下一篇：[第四篇 — 賦予模型行動力：Tool 與 MCP →](https://hackmd.io/@TommyHuang/Bkltjadc-l)
