# AI 怎麼幫你操作手機？

> AI 看手機截圖、決定下一步點哪裡，還會替自己打信心分數，沒把握時就停下來問你。

- 作者：Michael Kuo（https://mk-ai-notes.pages.dev/about/）
- 發布日期：2026-11-02（2026-11-02T20:09:00+08:00）
- 原文網址：https://mk-ai-notes.pages.dev/posts/ep09-gui-agent/
- 分類：一人公司工作流＋學習系列（https://mk-ai-notes.pages.dev/category/workflow/）
- 系列：動手學大模型 12 問 第 10 篇／共 12 篇（https://mk-ai-notes.pages.dev/series/dive-into-llms/）
- 標籤：AI 代理、GUI、手機自動化
- 閱讀時間：約 8 分鐘（約 1294 字）
- 參考來源：https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter9

![AI 怎麼幫你操作手機？](https://mk-ai-notes.pages.dev/og/ep09-gui-agent.png)

---

## 一句話回答

讓 AI 操作手機，核心是「看截圖、想下一步、輸出一個動作」不斷重複。它把螢幕當圖片看，輸出像「點座標 (454, 87)」「輸入文字」「往下捲」這樣的指令，再交給手機執行。上交大這章更進一步：讓 AI 替每個動作打一個信心分數，分數低就主動請人類接手。

## 為什麼值得知道

「AI 幫你訂餐廳、回訊息」這類展示，背後就是 GUI 智能體（GUI Agent，GUI 指圖形使用者介面）。它跟聊天機器人最大的不同是會「動手」。

會動手就代表會出錯。點錯一個按鈕，可能是多付一筆錢、刪掉一張照片。所以實用的關鍵不只是「會不會做」，還有「知不知道自己什麼時候不會做」，這也是你評估這類工具時最該問的問題。

## 白話原理

把 GUI 智能體想成一個坐在你旁邊、只能看螢幕的新同事：

| 步驟 | 新同事會做的事 | GUI 智能體對應 |
|---|---|---|
| 1 | 聽你說要做什麼 | 讀取任務文字（例：打開音樂 App 搜尋某首歌並播放） |
| 2 | 看螢幕 | 讀入目前的截圖 |
| 3 | 回想剛剛做過什麼 | 讀入「先前動作」紀錄 |
| 4 | 決定下一步 | 輸出一個動作，例如 CLICK 某座標 |
| 5 | 評估自己有沒有把握 | 給這個動作 1–5 分 |

教程的動作分兩類：基本動作有點擊（CLICK）、輸入（TYPE）、捲動（SCROLL）；自訂動作有返回（PRESS_BACK）、回主畫面（PRESS_HOME）、確認（ENTER）和「做不到」（IMPOSSIBLE）。格式固定，模型好學也好檢查。

### 何時該問人：OS-Kairos 的想法

本章採用的 OS-Kairos 是一篇「自適應人機互動」研究。全自動容易闖禍，每步都問人又很煩。OS-Kairos 的做法是讓模型在輸出動作時，同時輸出自己的信心分數：

- 分數高：照做，繼續下一步
- 分數低：代表這一步可能超出它的能力範圍，交給人類決定

就像新同事說「這個我不確定，你看一下？」

## 教程裡實際做了什麼

**工具與模型**：多模態模型 Qwen2-VL-7B-Instruct（看得懂圖片的 70 億參數模型）、微調框架 LLaMA-Factory、OS-Kairos 開源資料集。

**資料長什麼樣子**：每筆有任務、截圖路徑、步驟清單、目前第幾步、先前動作、分數、模型動作（`osatlas_action`）、老師動作（`teacher_action`）和是否成功。

**步驟**：

1. 下載 OS-Kairos 資料集與 Qwen2-VL-7B 權重，下載 LLaMA-Factory 原始碼。
2. 寫一支轉換程式，把每筆資料包成對話格式（ShareGPT 格式）。使用者訊息是一段英文指示：列出可用動作、要求打 1–5 分，再填入任務、先前動作和截圖；助手回答是「action: 動作、score: 分數」。
3. 在 LLaMA-Factory 的 `data/dataset_info.json` 註冊這份資料集。
4. 修改 Qwen2-VL 的全參數微調設定檔，主要設定如下（摘自原教程，節錄）：

```yaml
stage: sft
finetuning_type: full
deepspeed: examples/deepspeed/ds_z3_config.json
template: qwen2_vl
learning_rate: 1.0e-5
num_train_epochs: 5.0
bf16: true
```

也就是監督式微調（SFT）、更新全部參數、用 DeepSpeed ZeRO-3 分散到多張卡、訓練 5 輪。

5. 用 `llamafactory-cli train` 開始訓練。
6. 用 `llamafactory-cli webchat` 開網頁介面推理：丟測試集或自己的手機截圖加同格式指示，模型回答下一步動作和信心分數。

**硬體**：原文寫明訓練至少要 3 張 80GB A100（範例指令用 8 張卡）；推理範例用 1 張卡，顯存需求原文沒寫。

注意：教程做到「模型輸出動作與分數」為止，沒有接上真的手機自動點擊，執行端原文沒有涵蓋。

## 動手試試

老實說，完整照做要多張 A100，筆電和免費 Colab 做不到。實際的入門順序：

1. **先讀資料**：到 OS-Kairos 的 GitHub 頁面看資料格式，感受「任務→步驟→動作」怎麼拆。
2. **跑轉換程式**：資料前處理只是 Python 讀寫 JSON，筆電就能跑。
3. **體驗多模態模型**：把手機截圖丟給 Qwen2-VL，請它描述畫面、指出按鈕位置。7B 模型推理仍需要有一定顯存的 GPU，硬體不夠就改用線上服務。
4. **觀察信心分數**：有機會跑微調後的模型，就刻意給它沒看過的 App，看分數會不會下降。

## 常見誤解

- **「AI 是讀 App 程式碼來操作」**：本章是看截圖、輸出座標，像人用眼睛看螢幕。
- **「GUI 智能體就是全自動」**：OS-Kairos 的重點恰好相反，是知道何時該問人。
- **「信心分數高就一定對」**：分數是模型自己估的，沒見過的情況仍可能高分出錯。
- **「微調 7B 模型一張顯示卡就夠」**：本章採全參數微調，原文要求至少 3 張 80GB A100。

## 延伸閱讀

- 本章原文：https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter9
- OS-Kairos 論文：https://arxiv.org/abs/2503.16465
- OS-Kairos 資料集與程式碼：https://github.com/Wuzheng02/OS-Kairos
- Qwen2-VL-7B-Instruct 模型：https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct
- LLaMA-Factory：https://github.com/hiyouga/LLaMA-Factory/

> 本文整理自上海交通大學《動手學大模型》第 9 章，原教程：https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter9。內容由 MK 以自己的話解說，如有錯誤歡迎留言指正。

---

本系列整理自上海交通大學《動手學大模型》公益教程（https://github.com/Lordog/dive-into-llms），以自己的話解說，非官方內容。

引用本文請附原文網址：https://mk-ai-notes.pages.dev/posts/ep09-gui-agent/（作者：Michael Kuo）
