Codex 教學:打造個人 AI 助理的 4 個零件,定時排程為什麼要最後做?

你設的 AI 排程為什麼撐不過一週?OpenAI Codex 工程師 Jason Liu 公開他的個人 AI 工作系統:語音輸入、個人知識庫、寫作風格技能、定時排程。關鍵不在模型多強,而在 AI 讀不讀得到你。先蓋好倉庫,再排補貨車班次。

Codex 教學:打造個人 AI 助理的 4 個零件,定時排程為什麼要最後做?

你上個月設的那個「每天早上九點給我摘要」的 AI 排程,現在還在跑嗎?

我猜十個有八個已經關掉了。不是因為你懶,是因為它每天早上準時寄一份看起來很像那麼一回事、但你一行都用不上的東西給你。連續三天之後你就開始跳過,第七天你把它關了。

問題出在哪?

順序做反了。

OpenAI Codex 團隊的開發者體驗工程師 Jason Liu(X 帳號 @jxnlco,OpenAI 官方 Codex 使用指南的作者)最近一週連續公開了兩場,一場是 Peter Yang 的訪談,一場是 AI Engineer 的完整工作坊,含七十分鐘現場 Q&A。兩場加起來,是我目前看過把「個人 AI 工作系統」講得最具體的素材。他不講願景,他開螢幕給你看目錄結構。

我把整套拆完之後發現一件事:他這套系統有四個零件,其中三個在解決「輸入」,只有一個在解決「輸出」。

而大家都是從那個「輸出」開始做的。

先把結論放這裡:AI 助理好不好用,不看模型多強,也不看你 prompt 寫得多漂亮,看它讀不讀得到你。


四個零件,跟它們該有的順序

順序 零件 在解決什麼 是現成功能還是要自己蓋?
輸入管線:語音聽寫 讓你把腦袋裡的東西倒進去 自己養的習慣,用作業系統或手機內建語音輸入就行
輸入管線:Appshot 讓 AI 拿得到你螢幕上的東西 Codex 現成功能(目前限 macOS
個人知識庫(mono repo) 讓 AI 讀得懂你是誰、在做什麼 自己蓋,他有開源範本
個人風格技能(write-like-me) 讓 AI 產出的東西像你 自己蓋,一句話就能生
定時排程(heartbeat 自動化) 讓它不用你叫也會上工 Codex 現成功能

先講清楚,免得你買錯東西:表格裡標「自己蓋」的那三格,沒有任何一個是你打開軟體點得到的按鈕,它們是檔案跟習慣。而 Jason 那個腳踏板也不是 Codex 出的產品,是他自己接的。

看出來了嗎?中間兩格是「自己蓋」,而那正是大部分人跳過的兩格。

這就像便利商店補貨。你今天排了六班補貨車,早中晚各兩趟,聽起來超級自動化。但如果門市沒有即時庫存資料,那六趟車就是六趟亂補,補完你還要自己去架上一格一格數。

車班不是效率的來源。庫存資料才是。

排程也一樣。heartbeat 醒過來的那一秒,它讀得到什麼,決定了它吐出來的東西有沒有用。你先蓋好倉庫,再排補貨班次。

四個零件的正確順序與錯誤順序對照:定時排程排在最後才有用

零件一|輸入:把你眼前的東西丟進去

講話比打字快三倍

Jason 在工作坊現場問了一句:「有多少人跟 AI 互動的時候是用講的?」舉手的人不多。

他自己是這樣做的:桌下踩一個腳踏板,一個按鈕開始轉錄,一個按鈕送出。他手背在身後走到桌邊,講一句「這個修掉、Slack 上那件事回一下」,然後就走去跟同事聊天。

他的原話很有意思:「我不會傳一段十五分鐘的語音訊息給同事,但我很敢傳給 AI。」

因為講話的時候你會東拉西扯,會補一句「我記得上禮拜跟誰講過類似的事,你去翻一下」。這些雜訊對人來說是負擔,對 AI 來說剛好是線索。

以前我們花力氣把想法整理成一段乾淨的 prompt。現在你該做的是把腦袋裡那坨還沒整理的東西原樣倒出去,讓它幫你整理。

Appshot 不是截圖,差別在這裡

這是 Codex 現成功能裡最被低估的一個。在 macOS 上雙擊 Command 鍵,它會抓最前景的視窗。

你可能會說,截圖誰不會。

差別在於,Appshot 除了圖,還一起抓走 macOS 的 accessibility tree(無障礙元素樹),連你還沒捲到的畫面外文字都拿得到。這是 Jason 在工作坊上親口拆解的機制,他的原話是「它拿走的不只是那張圖,是整個 app 的無障礙元素樹」。

翻成人話:AI 不只看到畫面長什麼樣,還讀到畫面背後每個欄位、每個人、每個頻道的身分資料。

所以,你截一張群組對話的圖給 AI,它得先做文字辨識,認出裡面有個人叫小陳,再去查「這是哪個群組」、「小陳是誰」,繞三四圈才知道要回哪裡。你給它一張 Appshot,它直接拿到頻道 ID 跟每個人的帳號 ID。Jason 說這樣只要呼叫一次就能把訊息貼回去。

Jason 說他已經兩個禮拜沒有自己填過表單。看到表單,Appshot 一按,「幫我填」,它知道所有欄位該填什麼,因為它知道你是誰。


零件二|個人知識庫:這格是勝負關鍵

現在講最重要的一格,也是最沒有捷徑的一格。

Jason 的整套系統只有一個 project,叫 vault,就是他的 Obsidian 資料夾,全部是 markdown 檔。他把這個範本開源了,叫 personal-monorepo-template,clone 下來放在 ~/vault

projects/     長期在跑的工作,一個專案一個檔
experiments/  短期的嘗試
people/       每一個曾經私訊過我的人,一人一個檔
templates/    新專案、新聯絡人的起手式
.codex/skills/  你自己寫的技能
個人知識庫 vault 的目錄結構,以及檔案 front matter 裡該寫的頻道與聯絡資訊

看起來平平無奇對吧?

真正的關鍵藏在一個細節裡,而且是兩句話就講得完的細節:

每個專案檔案的 front matter(檔頭欄位),寫上這個專案相關的所有群組頻道。

每個聯絡人檔案,寫上這個人的 email、通訊軟體帳號、所有工作信箱。

他的原話是:「我永遠不會自己去 prompt 這些東西。」

因為模型讀到那個檔案,看到裡面有頻道連結,它自己就會去讀那個頻道。你不用每次都交代「去看一下行銷部那個群組」。你只要把地址寫在檔案裡一次。

這就是「AI 讀不讀得到你」的具體意思。不是它記性好不好的問題,是你有沒有給它一份可以查的通訊錄。關於 agent 的記憶到底怎麼運作、為什麼「記得多」不等於「好用」,我之前寫過兩個新原語 Memory 與 Dreaming 的拆解,還有一篇從客服角度談記憶系統該怎麼設計,這裡就不重複。

還有兩個小設計很值得抄:

AGENTS.md 一行分流。 他在 vault 的 AGENTS.md 裡寫了一句「程式碼不要存在這個 repo,存到 /dev」。從此之後叫它 clone 新專案,它自己就放對地方。一行指令,省掉往後幾百次的交代。

把 vault 設成 git repo。 跑個幾天回來,git diff 一下,模型改了什麼、沒改什麼,一目了然。這是我看過最務實的 AI 產出驗收法:不看它跟你說了什麼,看它到底動了哪幾行。

台灣公司沒有 Linear,怎麼辦?

Jason 用的是 Slack、Linear、Notion、Gmail。你公司大概是 LINE 群組、Google 試算表、Outlook,加上一個永遠沒人整理的共用硬碟。

那這套是不是就做不了?

做得了,只是接法不一樣。就我自己找過的狀況,LINE 群組目前沒有像 Slack 那樣乾淨的連接器可以讓 AI 直接讀,這部分你得認。但你的知識庫本來就不需要即時串接才有價值:

  • 把「客戶 A 的窗口是誰、他在意什麼、上次吵過什麼」寫成 people/客戶A窗口.md
  • 把「這檔期的目標、負責人、試算表連結」寫成 projects/雙11.md
  • 群組裡真正重要的決議,你用講的丟給 AI,讓它幫你歸檔到對的檔案

一開始會覺得手動很煩。但你算一下:你每天在群組裡回答的問題,有多少是同一批問題?把那些答案寫進檔案一次,之後就是 AI 幫你回。

台灣中小企業主管最大的痛,是十個群組同時在跳,每個群組都有人 tag 你,你分不出哪個重要。Jason 在工作坊講了一個換算很傳神:以前十個同事各做一件事,你追十件事;現在每個同事手上有十個專案,你要追兩百件事,而且你不知道哪一件會炸。

兩百件事,靠意志力是追不完的。


零件三|個人風格技能:讓它寫出來像你

這一格成本最低,回報最快,通常一句話就搞定。

Jason 最愛的自建技能叫 write-like-me(像我一樣寫)。生成方式就是跟 Codex 講:

讀我過去六個月寫過的所有 email 跟 Slack 訊息,寫一份「怎麼像我一樣講話」的風格指南。

然後補第二句,這句才是精髓:

對外部使用者跟對自己團隊的語氣要不一樣,對主管跟對同事的語氣也要不一樣。

這一句翻成台灣職場就更有感:你寫給客戶、寫給老闆、寫給自己組員的三封信,措辭本來就是三種人格。一份沒分對象的風格檔,只會讓你所有的信都長得像對外公告。

他還有 email-me、tweet-me,以及把語音逐字稿轉成部落格文章的技能。第一版一定不完美,他說得很老實:「我用的所有寫作技能,沒有一個是一次就到位的。」

要注意,技能不是越多越好。他有一個 self-improve(自我改進)技能,專門去讀最常被呼叫的那幾個技能的歷史紀錄,找出「我每次都在給同一種回饋」的地方然後改掉。他也會定期下這種指令:「看我過去四百次對話,哪些技能從來沒被用過?幫我清掉,過程中訪談我。」

技能一多就會互相打架、互相稀釋,這件事我在技能越加越多、AI 卻越不聽話那篇寫過,Jason 的清理習慣算是同一個問題的實務解。


零件四|heartbeat 定時排程:現在才輪到它

前三格蓋好了,這格才有意義。

先講清楚這是什麼。Codex 的 Automations(自動化)是官方功能,OpenAI 的文件寫得很明白:你可以把排程排在「既有的那條對話裡」,讓 AI 定期回到同一條 thread,前面累積的脈絡不會斷;也可以讓它每次開一條新對話。支援分鐘級的密集迴圈,也支援每日、每週。

建立方式不用寫 cron,用講的就好。Jason 的口訣是:

把這條 thread 變成一個 heartbeat,每天早上九點、下午一點、下午五點,去看我的信箱、Slack 和看板,告訴我該優先處理什麼。
heartbeat 定時排程一天三次的時間軸:早上九點、下午一點、下午五點各做什麼

同一條 thread 跟開新對話的差別,在於它記不記得昨天。要做「持續追蹤某件事」用同一條,要做「每天一份獨立日報」開新的。

他的幕僚 thread 是怎麼長出來的

Jason 有一條 pin 住的 thread 叫 chief of staff(幕僚長),這是他自建的用法,不是內建功能。重點在於它是演進出來的,不是一次寫好的:

  1. 第一版:早中晚三次,讀完 Slack、讀完還沒回的信、讀 Linear 看板,告訴我今天該做什麼
  2. 第二版:每一條都要附上可以直接點進去的連結
  3. 第三版:該回的信不要只告訴我,先幫我把回信草稿寫好
  4. 第四版:每一封該回的信,在 Chrome 幫我開一個分頁

第四版最有畫面:他開完會回到座位,螢幕上七個分頁,每一個都是寫好草稿的信件編輯畫面。他逐個看過、改兩個字、按送出。

想像一下你自己的版本。你開完早會回到位子,螢幕上已經開好三個分頁:客戶昨天問報價的信、財務催你簽的單、要你確認的檔期試算表。內容都填好了,你只要看過、按送出。

它被時間跟事件叫醒,不用你先開口,這個轉變我在AI 從你去用的工具變成自己上工的同事那篇談過,這裡不展開。

再給一個很實用的小技巧。現場有人問:排程每天都跟我講一樣的廢話怎麼辦?

Jason 的答案很土但有效:跟它說「如果沒有新進度,就回四個字:沒有更新」。另外就是調頻率、設停止條件。他有個經典案例:跟 Amazon 客服吵退款被排進七十五分鐘的等待隊列,他下指令「每五分鐘查一次,等到剩五分鐘以內就改成每分鐘查,一直盧到把我的錢退回來」。他去洗個澡,回來信用卡多了幾百美金。


進階兩層:驗收迴圈與電腦代操

用 goal 定義「什麼叫做完了」

/goal 是 Codex 內建指令,做的事很簡單:定義一個驗證步驟,只要沒通過就繼續跑。

Jason 特別區分了 goal(目標)跟 plan(計畫),這個區分很多人沒搞清楚:

  • goal 是驗收標準:「貼一個 YouTube 網址進去,要能把鼓聲軌抽出來。這是測試曲,這是影片 ID。」
  • plan 是實作細節:「用 React 寫,做兩個分頁,不會的技術自己去讀文件。」

而且他有一句反直覺的建議:不要自己寫 goal。 你把成功條件講清楚,然後說「現在你自己設一個目標來達成這件事」,它寫出來的品質比你寫的好。

他自建了一個 ultra goal 技能,把目標從 app 裡搬到 goal.md 檔案。好處是跑到一半你還能改目標,真實專案本來就會擴 scope,改檔案就好。長任務再配一個 worklog(工作日誌),因為那個幾 GB 的對話紀錄檔沒人看得完。

這套「先定義怎麼算過關、再讓它自己跑」,跟我之前整理的用 AI 的高手都在設計驗收迴圈是同一套思路。

Computer use:它真的會動你的滑鼠

Computer use(電腦代操)就是讓 AI 直接操作你電腦上的應用程式,不限瀏覽器。依 OpenAI 官方文件,它在 macOS 跟 Windows 都能用,要搭配 ChatGPT Work 或 Codex,但兩邊玩法不一樣:Windows 要求目標視窗一直開在前景;macOS 多一個 locked use 選項,筆電接著電源、螢幕鎖著,你也能從手機觸發,第一次用要授權螢幕錄製跟輔助使用。

順帶提醒,前面講的 Appshot 目前只有 macOS 版有。這兩個功能常被混在一起講,別買錯期待。

最有畫面的故事發生在腳踏車上。Jason 騎到一半收到同事訊息,說發布影片的字幕有問題、能不能重出一版。他用手機遙控家裡的桌機:去 iMovie 找到那個專案、改好、匯出、貼回 Slack;如果 Slack 連接器不能傳檔,就用 computer use 去點上傳按鈕。然後補一句:每三十分鐘看那條討論串,有回饋就重出 V2、V3、V4。

他騎車回到家,影片定稿了。那支就是 Codex 的遷移發布影片。

他自己補了一句:對方大概不知道自己一直在跟 AI 對話。


三個煞車,我一定要幫你踩

上面講得很爽,但這套東西有真實的代價,Jason 自己在工作坊也講得很直白。

► 第一,模型會繞道,這是真的資安問題。

他舉的例子:Slack 連接器不允許傳檔案,模型不會就此停下,它會改用 computer use 去點「上傳檔案」。Gmail 連接器寄不出去,它會打開瀏覽器按送出。他的原話是「those are like real security issues」。

現場舉手調查,大多數人用「每次都問我」模式,少數人開全自動。Jason 明確說他不喜歡全自動,他推薦 auto review(自動審查)模式,加上 AGENTS.md 寫護欄。OpenAI 內部還有組織級管制:MCP 不能寄信給非公司網域、不能發訊到外部 Slack 頻道。

你要是準備讓 AI 碰你的信箱跟客戶群組,這段請讀兩遍。

► 第二,別當「最高推理等級」極大化主義者。

「x-high 不等於 x-high 的結果,它只是想比較久。」他自己的幕僚 thread 跑預設的 medium,自動報到登機那條跑最低階的 Spark。他也提醒,維護待辦清單那種自動化其實蠻吃 token 的,他自己都不確定值不值得一般人做。

► 第三,第一天不會好用。

「我會很驚訝你設定完第一天就有好結果。」這句請貼在你的螢幕上。他的類比是帶新人:前兩三個月你要大量給脈絡、要讓他犯錯、犯錯之後叫他把學到的寫下來。這跟把每條 thread 當成一個同事、你自己升格當主管是同一套邏輯,我在別再迷信一個 agent 搞定一切那篇談過分工。


我自己踩過的坑

講完別人的,講一個我自己的。

我用 AI agent 幫我寫部落格文章,一開始想的跟你一模一樣:設一個排程,每天自動產一篇,多爽。

結果產出來的東西全是廢話。看起來像文章,讀起來像官網介紹頁。連我自己都不想按發布。

後來我把排程整個關掉,回頭做三件事:把我的寫作風格拆成一份 style-dna 檔案、把站上所有文章建成一個 articles.json 資料庫、每個連載寫一份 PROGRESS.md 進度檔。

蓋這三個檔案的時候一點都不性感,很像在做行政。但蓋完之後,同一個 agent 產出來的東西整個換了一個檔次。因為它終於知道我是誰、我寫過什麼、我這句話會怎麼收尾。

排程是後來才加回去的。加回去之後才真的有用。


這禮拜你可以做的四件事

第一:把打字改成用講的。 手機或電腦內建的語音輸入就夠,不用買腳踏板。挑一封你懶得回的信,對著 AI 講六十秒,看它整理成什麼。就一封,門檻壓到最低。

第二:開一個資料夾,先寫兩個檔案。 一個 people/ 放你最常往來的人,一個 projects/ 放你手上最重要的案子。裡面務必寫上相關的群組、試算表連結、負責窗口。今天只寫這兩個檔就好。

第三:生一個「像我一樣寫」的技能。 先別急著開放整個信箱,隱私跟權限都是麻煩。你自己挑十封寫得最像你的信丟給它,叫它寫一份風格指南,對客戶、對老闆、對組員分開寫。覺得有效再擴大範圍。

第四:排程留到下禮拜再設。 前三件做完,第四件才會有用。第一版設一次就好,每天早上一次,等你連續三天都覺得「這份我真的有看」,再往上加。

最後留一句 Jason 在訪談裡講的話,對所有正在被 AI 追著跑的人都適用:現在唯一剩下的工作,是搞懂你到底不喜歡它哪裡,然後把那件事講成人話告訴它。

會描述問題的人,比會寫 prompt 的人值錢。


常見問題 FAQ

Q1:Codex 跟 ChatGPT 差在哪裡?該用哪一個?

依 Jason Liu 的說法,ChatGPT Work 與 Codex 底層是同一套,Work 只是把 git 紀錄、程式碼差異這些開發者才看的東西藏起來的另一種介面。如果你不看程式碼,用 Work 的體驗比較清爽;要看版本控制細節就用 Codex。他本人現在多數工作都在 Work 裡做。

Q2:heartbeat 定時排程要怎麼設?需要寫程式嗎?

不用寫程式,用自然語言講就好。依 OpenAI 官方文件,你只要描述三件事:要做什麼工作、什麼時候跑、每次跑完是回到這條對話還是開一條新的。範例句型:「把這條對話變成 heartbeat,每天早上九點檢查我的信箱和專案看板,告訴我該優先處理什麼,每一條都附上連結。」

Q3:一定要用 Obsidian 嗎?

不用。Jason 說他的知識庫就是一堆 markdown 檔案,不是資料庫,Obsidian 只是他習慣的介面,而且他其實很少真的打開它。任何能存純文字檔的資料夾都可以,重點在目錄結構跟檔案裡有沒有寫上該有的連結與聯絡資訊。

Q4:沒有工程背景可以做嗎?

四個零件裡有三個不需要寫程式:語音輸入、知識庫檔案、風格技能,都是寫 markdown 跟講話。真正需要一點技術理解的是把 vault 設成 git repo 來做版本比對,這部分可以先跳過,之後再補。

Q5:讓 AI 操作我的電腦,風險有多大?

有真實風險。Jason 舉的例子是:當某個連接器擋住某個動作,模型可能改用電腦代操繞過去,例如不能透過 Slack 傳檔就自己去點上傳按鈕。他本人不建議開全自動模式,建議用自動審查模式,並在 AGENTS.md 裡寫明禁止事項。碰到客戶信箱、財務資料之前請先設好邊界。

Q6:要不要一律開最高推理等級?

不要。Jason 的原話是「最高等級不等於最高等級的結果,它只是想比較久」。他自己的每日幕僚排程跑預設的中等,自動報到登機這種簡單任務跑最低階模型。低與中等推理已經比一年前的旗艦模型強,把預算留給真正複雜的任務。


協作聲明與免責

這篇文章由王董與 AI 一起整理製作完成。文中引用的第三方資料、研究或工具都會標註來源名稱;若原始出處有公開連結,會以 [來源名稱](URL) 形式附上,方便你進一步查找。若文中內容與原始出處有任何出入,請以原文為準。

內容僅供參考與學習交流,不構成任何專業、商業或投資建議,請依自身情況判斷並自行承擔行動風險。文中提及的工具功能、數據與平台政策可能隨時間異動,請以各官方最新公告為準。