用Codex操作Chrome瀏覽器,自動讀Gmail、寫Google Sheet教學!設「3層護欄」防AI亂點亂寄

博碩文化
1天前
1407次觀看

想讓AI幫忙操作Chrome瀏覽器、讀Gmail、下載附件、寫進Google Sheet,又怕它亂點、亂寄信?作者以教師可能遇到的「自動批改作業信」為例,示範用Codex Chrome Extension設定白名單、二次確認與留痕log三層護欄,再一步步放手讓AI操作瀏覽器。本文節錄自《ChatGPT × Codex全攻略》。

文/曾慶良(阿亮老師)

本文目錄(點擊可快速前往)

編按:作者以「老師自動批改學生作業信」為範例,示範讓Codex讀取Gmail「作業繳交」標籤的來信、下載附件、產出評語,再逐列寫進Google Sheet。雖然示範情境在教學現場,但換個主題就能套用到職場,例如整理應徵者的履歷信、客戶詢價信或活動報名回覆;文中的白名單、二次確認、留痕log三層護欄,也適用於任何讓AI代操瀏覽器的工作。

※本文以「Chrome Extension」模式操作,是由Codex直接在你的Chrome「已登入」的Gmail等分頁操作,不必處理OAuth、API token(這些憑證都不用辦),看得到它在做什麼。

動手做前準備清單

項目規格沒有怎麼辦
Codex CLI + 桌面App已完成、能登入補安裝,Codex CLI 、桌面App
Chrome Extension從Codex App Plugins內裝補安裝,Chrome extension
Gmail帳號有「作業繳交」標籤、收得到信Gmail內建立一個Label「作業繳交」
Google Sheet一張空白工作表,欄位先排好Drive內新建一張,命名「本學期_作業批改」

Google Sheet欄位先排好

第一列填入這6個欄位(順序很重要,等下Skill要按這個順序寫入):

ABCDEF
批改日期學生姓名作業主題AI評語字數建議評分

權限設「僅特定人員」或「限校內帳號(你的學校網域)可存取」,把你自己(和真的需要看的同事)逐一加進去。不必也不要用「擁有連結的任何人可檢視」,Codex用你登入的身分操作,本來就進得去,不需要開公開連結。

此表含學生個資(姓名+評語),絕對不可以用「擁有連結的任何人可檢視/可編輯」公開連結分享。公開連結等於把全班個資丟到網路上任人抓取。務必設成「僅特定人員」或「限校內帳號」,並定期到「共用」設定檢查存取名單有沒有跑進不該有的人。

【補充】企業導入前置(用公司信箱、下載含個資附件前必看)

本章讓Codex操作你「已登入」的信箱、下載附件、寫進Sheet,放在公司環境要先過3關,別自己一個人默默開跑:

  1. 公司信箱須經IT /資安核准:使用Codex Extension操作公司Gmail / Workspace前,先問過IT或資安窗口,確認符合公司對第三方工具存取信箱的規範,否則別用個人身分擅自授權公司帳號。
  2. 先用測試帳號跑通:第一輪用一個測試信箱+假資料把流程走順,確認護欄有效,再碰真實信箱。
  3. 附件含個資要確認合法性、用完清除:下載的.docx /客戶附件若含個資,先確認你有處理的合法依據(同意/業務必要),處理完就從~/Downloads/inbox-essays/之類暫存夾刪除,別長期堆在本機或同步到公開雲端夾。


全章流程地圖:4步由小到大

1 授權與護欄    Chrome Extension 範圍限定 + 二次確認
       ↓
2 寫 Skill      auto-email-processor 四階段定義
       ↓
3 跑 1 封測試   盯著看,確認沒亂點
       ↓
4 放開跑全部   批次處理 + 失敗重試 + 總結報告

絕不可跳過步驟3,跑1封測試看看,這是整章最關鍵的安全閘門。沒看過第1封就放執行,等同把你的Gmail鑰匙交給陌生人。


動手實作:讓Codex操作你的Google Chrome

步驟1-A 授權與三層護欄

  1. 確認Codex桌面App已開啟、已登入
  2. 確認Chrome已裝Codex Extension
  3. Chrome右上工具列點Codex圖示
  4. 看到「Chrome plugin connected」狀態 = 正常
  5. Codex桌面App內的Plugins區也顯示「Chrome plugin connected」,兩邊都看得到 = OK
圖33-2 Chrome工具列Codex圖示與connected狀態

Codex從這裡開始就有能力「在你登入的Chrome內」做事。所以下一步馬上設範圍限制,沒設好就不要往下做。

步驟1-B 護欄1:範圍限定(白名單)

Codex Extension預設「進入新網站會問」。但更穩的做法是明確設一份白名單。在Codex對話開頭就先宣告:

本對話只允許操作 mail.google.com、docs.google.com、sheets.google.com。
任何其他網域請拒絕並回報給我。

明確列出允許與禁止的清單:

# 允許 Codex 操作的網域白名單
mail.google.com         # Gmail
docs.google.com         # Google Sheet / Docs
sheets.google.com       # Google Sheet(舊網域別名)

# 禁止:其它一律不行
✗ bank.example.com         # 銀行
✗ pay.example.com          # 支付
✗ facebook.com / x.com     # 社群媒體

這是用文字下的範圍限制,搭配Extension預設的「進新網站問一次」雙重防護。

圖33-3 Codex Extension進入新網域時的授權詢問

步驟1-C 護欄2:二次確認

在Codex對話開頭就先指定下面五類動作必須先暫停問你,得到「OK」才能繼續:

  • 刪除任何信件 → 必須問
  • 寄出任何信件 → 必須問
  • 移動信件到垃圾桶 → 必須問
  • 修改Sheet既有列(非新增)→ 必須問
  • 修改Gmail filter / forwarding設定 → 必須問

「標記為已讀」、「加標籤」、「下載附件到自己電腦」、「在Sheet新增一列」這幾項算可逆操作,不需要每次都問。

步驟1-D 護欄3:留痕log

叫Codex把它做的每一步寫成log,方便事後抽查:

請建立一個 ~/codex-logs/email-processor.log
每次處理一封信,寫一行 JSON:
{"ts":"2026-05-17T10:00:00Z","subject":"...","sender":"...","action":"已批改寫入Sheet","ok":true}
失敗時 ok:false,多寫 reason 欄位。
請在每次跑完 Skill 後自動 append。

跑完一輪後,cat ~/codex-logs/email-processor.log(Windows PowerShell:Get-Content $HOME\codex-logs\email-processor.log)看得到N行JSON,每行對應一封信。

動手操作3大原則

  1. 範圍限定:只開放特定網域,其餘一律拒絕
  2. 二次確認:刪/寄/改既有資料必須先問
  3. 留痕:每次操作寫log,可事後追查

三個都做到了,才往下進步驟2寫Skill。

步驟2-A 寫auto-email-processor Skill

macOS / Linux(或在Git Bash執行):

mkdir -p ~/.agents/skills/auto-email-processor
cd ~/.agents/skills/auto-email-processor
touch SKILL.md

Windows PowerShell寫法(同一件事的PowerShell寫法):

New-Item -ItemType Directory -Force $HOME\.agents\skills\auto-email-processor
Set-Location $HOME\.agents\skills\auto-email-processor
if (-not (Test-Path SKILL.md)) { New-Item -ItemType File SKILL.md }

如果Windows使用者希望直接沿用Bash指令,可以在~/.agents/skills/的上層資料夾右鍵 → Open Git Bash Here,就能在Git Bash內原樣執行mkdir -p、touch。兩個方式擇一即可,不必兩邊都跑。

為什麼用Skill而不是直接打prompt?Skill寫一次、用很久。下次要批改只要說「跑auto-email-processor」,不必再貼整段流程描述。

  • 2026新功能NEW:Record & Replay(錄一次、重播多次)
  • Skill有3種建立法:
    • 手寫SKILL.md(本節做的)
    • 對話中請Codex幫你生
    • Record & Replay,你手動把一連串網頁操作(點「作業繳交」標籤 → 過濾未讀 → 下載.docx)錄製一遍,Codex會把它存成可重播的Skill。像Gmail這種步驟固定、重複性高的流程特別適合這種方式,錄完再回頭微調SKILL.md補上護欄。搭配always-allow(總是允許):把重播時重複跳出來的權限請求(例如每次都問「可以操作mail.google.com嗎」)設為「總是允許」,就不會一直被打斷,但只對白名單網域開always-allow,刪/寄/改既有資料這類敏感動作仍維持二次確認。

步驟2-B SKILL.md開頭:frontmatter與Scope

SKILL.md一定要以YAML frontmatter開頭(name、description是必要欄位,觸發詞寫進description,Codex才會自動觸發):

---
name: auto-email-processor
description: 讀 Gmail「作業繳交」標籤內的未讀信,抓 .docx 附件,套 essay-feedback Skill 批改,寫回 Google Sheet「本學期_作業批改」。觸發詞:批次批改、處理交作業信、跑 email processor。
---

# auto-email-processor

## Scope
- 允許網域:mail.google.com、docs.google.com、sheets.google.com
- 禁止:其它任何網域
- 允許動作:讀信、下載附件、加標籤、Sheet 新增列
- 禁止動作:刪信、寄信、修改 Sheet 既有列

Skill的「身分證」段落,讓Codex知道「我可以做什麼、不能做什麼」。

步驟2-C 中段:四階段Steps

## Steps

### Phase 1 讀
1. 開新分頁到 https://mail.google.com
2. 點左側「作業繳交」標籤
3. 加「is:unread」過濾條件
4. 列出信件主旨與寄件者,不要點開

### Phase 2 分(過濾)
對每封信,符合所有三條件才處理:
- 寄件者是學生(你的學校網域,例:@school.edu.tw)
- 主旨含「作業」或「homework」
- 有 .docx 附件

### Phase 3 處(批改)
1. 下載 .docx 到 ~/Downloads/inbox-essays/
2. 從寄件者名 / 主旨解析學生姓名與作業主題
3. 呼叫 essay-feedback Skill 批改
4. 把回傳的「評語/ 字數/ 評分」記下來

### Phase 4 記
1. 開 Google Sheet「本學期_作業批改」
2. 新增一列:日期 / 姓名 / 主題 / 評語 / 字數 / 評分
3. 回 Gmail 標該信「已讀」+ 加「已批改」標籤
4. 寫一行 log 到 ~/codex-logs/email-processor.log

【補充】Phase 3那句「呼叫essay-feedback Skill」是哪來的?

這支批改Skill在「多檔案批次處理」篇建立過,該章resources/essay-feedback/有現成檔案,只要將其複製到~/.agents/skills/essay-feedback/就能被本章觸發。還沒建也能先跑通流程,把Phase 3第3步暫時換成這3行替代做法:

  1. 用Codex內建能力讀出.docx純文字內容
  2. 請Codex直接寫一段150字評語、估算字數、給A / B / C建議評分
  3. 把這三個值當成回傳結果往Phase 4傳(先能寫進Sheet,之後再換成正式的essay-feedback)

步驟2-D 末段:Rules護欄

## Rules

### MUST(必須)
- MUST 敏感操作前停下來問我(刪信、寄信、改既有列)
- MUST 處理失敗的信維持「未讀」、加標籤「需人工處理」
- MUST 每處理一封寫 log
- MUST 全程操作我這個帳號,不可切到別人的 Gmail

### NEVER(絕不)
- NEVER 自動回信給學生
- NEVER 跨網域操作(白名單以外)
- NEVER 刪除任何信件
- NEVER 修改 Sheet 既有列(只能 append)

## Tools
- Codex Chrome Extension(Gmail / Sheet 操作)
- Codex 內建 .docx 解析
- essay-feedback Skill(subagent 呼叫,來源見第三篇 CH19)

Skill寫完存檔。Codex下次看到觸發詞會自動讀SKILL.md。


準備測試素材:先讓信箱有東西可讀

Skill寫好了,但如果「作業繳交」標籤裡一封信都沒有,步驟3的測試就沒東西可跑。動手前先花3分鐘,自己造1~2封測試信,讓自動化有真實素材可讀。這步驟做完,跑步驟3才有意義。

  1. 準備1~2份.docx測試檔:隨手開Word(或Google Docs →下載為.docx)打一段假作文,存成例如:測試作文_王小明.docx。想更真實就做兩份、換個學生名。
  2. 自己寄給自己:在Gmail點「撰寫」,收件者填你自己的Gmail,主旨故意帶關鍵字(例:第八單元作文 作業繳交 王小明,一定要含「作業」讓Phase 2過濾條件吃得到),把剛才的.docx當附件夾進去,寄出。寄1~2封。
  3. 建一個標籤:Gmail左側sidebar往下拉找到「建立新標籤」,命名為作業繳交(就用這章Skill要讀的標籤名,別另取,不然Skill讀不到)。若動手前清單那步已經建過,這步跳過。
  4. 手動把測試信貼上該標籤:回收件匣,勾選剛剛那1~2封自寄信 → 點上方「標籤」圖示(或右鍵)→ 勾「作業繳交」。現在這個標籤底下就有真實的未讀作業信可供Codex練習了。

【提醒】用「自寄信」當測試素材最安全
就算Codex跑歪了、標錯標籤,動到的也只是你自己建立的虛假信件,不會影響到學生真正交的作業。等步驟3測試通過,再放真實信件進來。

步驟3-A 跑1封測試(最關鍵的一步)

進Codex:

codex

輸入:

請執行 auto-email-processor Skill,但這次只處理 1 封測試:
1. 開 Gmail
2. 找到「作業繳交」標籤內第一封符合條件的未讀信
3. 完整跑完 Phase 1-4
4. 跑完後回報你做了什麼(步驟列表、最後 Sheet 寫了哪一列)

整個過程請在我面前跑、不要靜默。
每動一步先告訴我「我準備做 X」,等我說 OK 才執行。

【提醒】請全程盯著螢幕看!
不要去泡咖啡、不要切到別的視窗。第一次跑就是要確認「它真的有照規矩來」。

步驟3-B 盯著看的時候要確認什麼?

Codex跑的時候,眼睛確認這6件事:

  1. Codex開的是正確的Gmail標籤(不是收件匣全部)
  2. 它沒有點開不該點的信(例如沒有.docx的、或寄件者不是學生的)
  3. 下載.docx時沒覆蓋你既有檔案
  4. 批改完Sheet新增一列(不是修改既有列)
  5. 信件標為「已讀」+ 加「已批改」標籤,沒刪除、沒進垃圾桶
  6. log檔有一行新紀錄
圖33-4 Gmail「作業繳交」標籤內的未讀作業信列表

任何一項不對 → 立刻按Esc中止(在CLI內跑則按Ctrl + C)、修SKILL.md、再跑一次測試,不要現在就往步驟4前進。

步驟3-C 第一次跑常見的「走偏」

Q1:Codex點到收件匣不是「作業繳交」標籤

回答:Gmail介面更新時,標籤位置會變動。SKILL.md改成「在左側sidebar用文字找『作業繳交』再點」,不要靠固定位置。

Q2:把作文老師個人信也當成作業處理

回答:Phase 2過濾條件不夠嚴。再加「主旨必須有作業/homework」「附件必須是.docx」雙條件。

Q3:Sheet寫到錯的工作表(同一活頁簿有多張表)

回答:Skill補上「先點底部tab確認是『本學期_作業批改』再寫」。

Q4:標完「已批改」標籤後又標「重要」

回答:Codex在學Gmail介面,可能誤點。Rules補:「只加『已批改』標籤,其他不准動」。

步驟4-A 測試OK了,跑全部未讀

同一個Codex對話內輸入:

很好,剛才測試正確。現在請執行 auto-email-processor Skill
處理「作業繳交」標籤內所有未讀信。

需求:
1. 並行數:1(順序處理,方便我看)
2. 失敗自動重試 1 次
3. 重試仍失敗的信:加標籤「需人工處理」,跳過,繼續下一封
4. 全部跑完給總結報告:成功 N 封 / 需人工 N 封 / 失敗 N 封
5. 列出需人工的信件主旨與寄件者,方便我之後處理

開始。

「並行數1」會比較慢,但安全。等你跑過3-5次都OK再考慮加到2-3並行。

步驟4-B 預期看到的總結報告

✅ auto-email-processor 處理完成

成功批改:23 封
需人工處理:2 封
  - 「期中作文.docx 附件損壞」 / 小明 <ming@...>
  - 「忘記附檔」 / 阿花 <hua@...>
失敗:0 封

Google Sheet 已新增 23 列
Gmail 標記已讀 + 標籤「已批改」:23 封
標籤「需人工處理」:2 封
log 寫入 ~/codex-logs/email-processor.log:25 行

數字加總 = 標籤內未讀信總數 = Sheet新增 + Gmail標記 = log行數,四個數字對得起來就是完成。

圖33-5 自動評分完整報告示意

步驟4-C 抽查Sheet內容是否正確

  1. 打開「本學期_作業批改」工作表
  2. 隨機挑3列,對應到原信件
  3. 檢查欄位:日期、姓名、主題、評語、字數、評分都對
  4. 檢查AI評語有沒有亂寫(這部分是essay-feedback Skill的責任,但這次順便抽查)
  5. Gmail內隨便開一封看是否標籤「已批改」+「已讀」
  6. 看log檔最後幾行有ok:true

6項都對 = 整套流程信任度 +1。下次可以放心多並行、少盯著。

圖33-6 Google Sheet批改結果新增列

動手操作3大禁區

把這3個禁令寫在便條紙貼在螢幕上:

  1. 不操作金融帳戶:銀行、支付、券商、加密貨幣交易所,一律白名單外。不論看起來多簡單的「查餘額」也不行,因為AI沒辦法分辨「查」和「轉」之間只差一個按鈕。
  2. 不自動寄信給真人:草稿可以、儲存可以,但按下「寄出」這個動作絕對是你自己按。AI寄錯信沒辦法收回,後果你扛。
  3. 不超範圍:Skill寫了什麼就只做什麼。不要在同一個Codex對話「順便叫它做別的事」,授權邊界會模糊掉。要做別的就開新對話、重新設權限。

節錄自:博碩《ChatGPT × Codex全攻略:從零基礎到自動化,打造你的AI Agent工作流》/曾慶良(阿亮老師) 著

節錄自:博碩文化《ChatGPT × Codex全攻略:從零基礎到自動化,打造你的AI Agent工作流》/曾慶良(阿亮老師) 著

將【104職場力】加入Google偏好來源

耕耘圖書超過30年,博碩文化出版社涵蓋多元主題的圖書,主打最夯趨勢IT用書外,也延伸經營原創文學小說電子書、原創漫畫閱讀,以及線上專業教學!