---
# 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 對話框中打出的訊息。簡單來說，只要是使用者主動輸入給 AI 的問題、要求或指令，都屬於 User Prompt。

### 特性

- **即時產生**：每次對話都會根據當下需求動態改變
- **使用者可見**：由使用者直接輸入，也能清楚看到內容
- **互動導向**：主要用來向 AI 提問、描述需求或下達指令
- **彈性高**：可以是簡短問題，也可以是非常長的複雜需求

### 範例

```
User Prompt 範例：
- 「幫我寫一篇 AI 文章」
- 「請翻譯成英文」
- 「幫我整理會議重點」
```

User Prompt 的品質，往往也會直接影響 AI 回答的品質。描述越清楚，AI 通常越能產生符合需求的結果。

---

## 四、System Prompt

**System Prompt** 是開發者在對話開始前預先設定的底層指令，用來定義 AI 的角色、行為方式、回答風格與限制規則。

它有點像 AI 在正式開始對話前收到的「工作守則」或「角色設定」。例如，開發者可以透過 System Prompt 告訴 AI：

你是一位專業工程師
回答時要保持禮貌
避免輸出危險內容
使用條列式整理資訊

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

一般使用者通常無法直接看到 System Prompt，但它對模型的影響力非常大，甚至優先級通常高於 User Prompt。因此，即使使用者要求 AI 做某些不被允許的事情，System Prompt 仍可能限制模型的最終輸出。

在實際應用中，System Prompt 常被用來控制 AI 的安全性、回答風格與產品功能，確保模型能維持穩定且符合需求的行為模式。



---

## 五、User Prompt和System Prompt兩者的關鍵差異

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

---

## 六、Prompt Engineering

「**Prompt Engineering（提示詞工程）**」是近年生成式 AI 領域中非常重要的技術之一，指的是透過系統化方式設計 Prompt，讓 AI 能更精準理解需求，進而產生更高品質的輸出結果。

隨著大型語言模型能力快速提升，Prompt 已不只是「對 AI 下指令」，更像是一種與 AI 溝通的技巧。相同的 AI 模型，只要 Prompt 設計不同，輸出的品質、完整度與準確性就可能有巨大差異。

### 幾個重要技巧

**1. 給予角色（Role Prompting）**

Role Prompting 是最常見的方法之一，也就是先替 AI 設定一個明確角色，讓模型能以特定專業角度回答問題。

例如：
```
「你是一位擁有 20 年經驗的軟體架構師，請審查以下程式碼…」
```
當 AI 被賦予「資深軟體架構師」角色後，通常會更偏向專業、嚴謹且工程導向的回答方式。
除了工程領域，也能應用在許多情境，例如：
- 「你是一位專業營養師」
- 「你是一位科技媒體編輯」
- 「你是一位資深行銷顧問」

這種方法能有效提升 AI 回答的風格一致性與專業感。

**2. 提供範例（Few-shot Prompting）**
有時候，單純描述需求仍不夠明確，因此可以先提供幾個範例，讓 AI 理解你希望的輸出格式與邏輯。
例如:
```
「請按照以下格式分類商品評論：
範例 1：'這個產品很棒' → 正面
範例 2：'品質很差' → 負面
現在分類：'還可以接受'」
```
由於 AI 已先看到輸入與輸出的對應關係，因此通常能更準確模仿格式與判斷方式。
Few-shot Prompting 在：
- 文本分類
- 格式轉換
- 摘要整理
- 資料標註

等任務中特別常見。

**3. 思維鏈（Chain of Thought）**
Chain of Thought 是讓 AI 「一步步思考」的重要技巧。
一般情況下，AI 可能會直接給出答案；但若要求模型先拆解問題、逐步推理，往往能提升邏輯性與正確率。
```
「請一步步思考，先分析問題，再給出答案」
```
這種方式特別適合：
- 數學問題
- 邏輯推理
- 程式除錯
- 複雜決策分析

因為 AI 會先展示中間推論過程，而不只是直接輸出最終結果。

**4. 明確限制**
如果 Prompt 過於模糊，AI 的回答也可能變得發散。因此，在 Prompt 中加入明確限制，通常能大幅提升結果品質。
```
「用繁體中文、300 字以內、條列式回答」
```
限制條件可以包含：
- 語言
- 字數
- 格式
- 回答風格
- 輸出結構

這能讓 AI 更容易產生符合需求的內容，尤其在商業應用與內容生成領域非常重要。


---

## 七、重點整理

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

---

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