這篇文章整理自 Jason Liu(X:@jxnlco)對 Codex 工作流的觀察與實務建議。根據 Jason Liu 個人網站的介紹,他目前是 OpenAI Codex 團隊的 Developer Experience Engineer,也就是負責協助開發者理解、使用並拓展 Codex 應用方式的角色。

文章的重點不只是介紹 Codex 如何協助寫程式,而是進一步說明:當 Codex 能結合長期 thread、語音輸入、工具操作、瀏覽器、自動化、Goals、side panel 與 shared memory 時,它其實已經從單純的「程式碼助手」,逐漸變成一套能承接完整電腦工作流程的 agent 系統。

對開發者來說,這篇文章值得注意的地方在於,它不是單純列功能,而是從實際工作模式出發,說明如何把 Codex 用在程式碼之外的任務,例如文件審查、訊息追蹤、工作排程、網頁檢查、artifact 修正與長期專案記憶管理。也因此,這篇內容可以視為理解 Codex 下一階段使用方式的一份實務導讀。

需要注意的是,這篇文章雖然來自 OpenAI Codex 團隊成員的公開分享,但仍應視為作者個人的使用經驗與觀點整理,而不是 OpenAI 官方文件或正式產品規格。

--

大多數開發者第一次使用 coding agents 時,都是拿來處理程式碼:檢查 repository、產生 diff、執行測試,以及開啟 pull request。

這仍然是 Codex 的核心重心。但現在,電腦上的許多工作其實早已透過程式碼來中介:執行 shell 指令、瀏覽網頁、呼叫 API、匯出文件、回應事件,以及觸發自動化流程。隨著這些介面逐漸開放給 Codex,它開始不再只是狹義上的程式助手,而更像是一套「完成電腦工作」的系統。

Codex App 將這種轉變具體化。一個 thread 可以保留上下文、使用工具、呈現產出物,並在多次提示之間持續延伸,而不是每次交流後都重新開始。

想更有效地使用 Codex,代表要把以下能力整合運用:

  • 可以保留上下文的持久化 threads
  • 在使用者仍參與流程時,使用語音輸入、steering 與 queuing
  • browser、computer-use、MCP servers 與 connectors,讓 Codex 能在 repository 之外行動
  • thread automations 與 Goals,讓工作在使用者離開後仍持續進行
  • side panel,讓使用者能檢視程式碼、文件、簡報與其他產出物

Durable threads

Durable threads:指的是能在多次工作階段之間保留工作上下文的長時間 Codex threads。

Pinned threads 是讓 durable threads 保持在手邊的一種方式。它們很適合用於重複性的工作流程,例如:

  • Chief of Staff thread
  • 發版 thread
  • 文件審查 thread
  • 專門用於外部監控的 thread

這些是持續存在的工作空間,而不是短暫聊天。Codex 可以隨時間回到這些 threads,保留先前的決策、偏好與工作上下文,而不需要每次重新建立。

Pinned-thread 快捷鍵讓這件事更實用。Command-1 到 Command-9 可以直接跳轉到已儲存的 threads。

Voice input

語音輸入很有價值,因為它能捕捉一個想法最粗略、尚未被壓縮成精緻文字前的樣子。

Codex 內建語音輸入。它特別適合處理那些說出來很自然、打字卻很麻煩的模糊起點,例如:

「我記得有個叫 Ben 的人曾在 Slack 提過這件事。」

「我不記得細節了。」

「幫我去查一下。」

對於能搜尋、收集上下文並回報結果的 agent 來說,這些資訊通常已經足夠。

它也很適合用來進行兩到三分鐘的想法傾倒,也就是在任務還沒完全成形前,先把腦中的想法講出來。

逐字稿也有類似效果。比起簡短摘要,原始會議逐字稿或口述規劃筆記往往能提供更好的素材,因為它保留了不確定性、重點與尚未完成的思路。

Steering and queuing

當語音功能與對執行中任務的明確控制結合時,它會更有價值。

Steering:在目前步驟完成前,直接中斷正在執行的 Codex 任務,並給予新的方向。

Steering 很適合用在 agent 走錯方向、需要在完成前修正時。例如在網站審查時,使用者可以一邊在 side panel 上標註,一邊中斷目前工作:

「把這個再小一點。」

「這兩個元素之間的間距怪怪的。」

「這段文案不對。」

Queuing:在目前步驟完成後,替 Codex 加入接下來要做的工作。

Queuing 不一樣。它不會中斷目前正在進行的任務,而是把下一個任務排到後面。使用者可能會說:

「等工作完成後,把預覽連結傳到 Slack 給 reviewer。」

Steering 改變的是 Codex「現在正在做什麼」。Queuing 改變的是「接下來要做什麼」。兩者都能讓使用者在工作展開的過程中保持接近現場。

Tools and reach

當 thread 擁有連續性之後,下一個問題就是它能操作哪些東西。Codex 可以逐步向外延伸:

$browser:side panel 內建瀏覽器,Codex 可以用它檢查與標註網頁介面。

@chrome:用於需要登入狀態與 Chrome 工作流程的情境。

@computer:用於只能透過桌面 GUI 完成的工作。

$browser 適合 side-panel 的瀏覽器審查。@chrome 適合依賴使用者 Chrome 環境的登入狀態工作。@computer 則適合那些只能透過桌面 GUI 存在的任務。

MCP servers 與 connectors 將同樣的概念延伸到整體工作流程中。Slack、Gmail 與 Calendar 很重要,因為很多重要工作最初其實是以訊息、信件或排程問題的形式出現,而不是程式碼。

Skills 可以讓重複工作流程變成可重複使用的模組。一旦某個流程被證明有效,就可以把它封裝成 skill,讓 Codex 下次直接執行,而不用重新學習整套流程。

Work from anywhere

Codex mobile app 改變了使用者「必須待在桌前」這件事。任務可以先在 Mac 上開始,因為檔案、權限與本地設定都已經存在,之後使用者再透過手機繼續追蹤。

這在許多小情境中特別有意義。使用者可以離開桌面,讓 Codex 執行較長的任務;人在外面時回答問題、批准下一步,或在回到座位前重新導向 thread。本地環境會保持在原處,使用者不必一直待在電腦前。

Automations

Automations 能讓 Codex 按照排程執行工作。當重複性工作應該從一個工作空間重新開始時,例如每日報告或定期 repository 檢查,可以使用 scheduled automation。當排程應該回到同一個持續中的 conversation 與其執行中的上下文時,則可以使用 thread automation。

Thread automations:像心跳一樣,按照排程定期喚醒同一個 Codex thread 的機制。

Pinned threads 很有用,但它們仍然要等使用者回來。Thread automation 則可以每幾分鐘或每幾小時檢查某件事,持續執行直到條件達成,並且隨時間調整頻率。

一個 Chief of Staff thread 可能每 30 分鐘執行一次:

「每 30 分鐘檢查 Slack 與 Gmail 中有哪些尚未回覆、且需要我注意的訊息。」

「幫我判斷哪些事情最重要。」

「如果有人問我問題,請盡可能深入研究答案,並替我草擬回覆,但不要直接送出。」

當使用者回來時,最耗時的上下文收集工作通常已經完成。人類仍然決定哪些內容要送出。

Thread automations 也適合處理 feedback loops。Thread automation 可以監看 pull request comments、Google Docs 留言或 Slack 回覆,並在使用者離開時持續推進相關工作。

以動畫工作流程為例,當 reviewer 在 Slack 分享一支影片時,thread automation 可以按照排程檢查該 thread;當有評論出現時,自動重新 render 更新版本,並在同一個 thread 中標記 reviewer 回覆。如果某個整合無法完成最後上傳,desktop automation 也可以透過 GUI 完成最後一步。

這個循環橫跨 Slack 的回饋、codebase 中的 render,以及 desktop automation 完成最後上傳。

Goals

Goals 在任務有真正終點、且 agent 可以持續朝這個終點推進時最有威力。

Goals:指的是具有完成終點、且 agent 能隨時間持續推進的長時間 Codex 任務。

一個較弱的 goal 可能是:

「根據這份 Markdown 文件實作計畫。」

更強的 goal 則會有可衡量的成功條件。

例如,一位工程師可能要把內部工具從 Python 遷移到 Rust。他可以先建立新的目錄、定義 goal,並明確指定完成條件:只有當新實作的單元測試通過時,這項工作才算完成。

一個 goal 結合了持續執行與 verifier。使用者會定義結果、停止條件,以及判斷 Codex 是否正在接近目標的訊號。

有用的 verifier 包括:

  • 測試套件
  • benchmark
  • bug 重現流程
  • 驗證矩陣
  • 必須持續通過的 end-to-end workflow

有野心很重要,但如果沒有驗證機制,那就只是願望。

The side panel

Side panel 會把工作成果保留在產生它的 conversation 旁邊。使用者不需要匯出 artifact 再切換脈絡,而是可以直接在原處檢視。輸出物可能是程式碼,也可能是簡報、PDF、瀏覽器頁面、資料表,或其他在過程中建立出來的 artifact。

它特別適合支援四種工作:

  • 檢查 artifacts
  • 標註需要修改的地方
  • 操作網頁介面
  • 審查變更

Side panel 讓使用者可以在原處檢視 Markdown、試算表、資料表、文件與投影片。他們可以檢查、標記並修正 artifacts,而不會打斷整個工作循環。

Annotations

 

簡報或 PDF 可以保持開啟在產生它的 thread 旁邊,方便直接檢視與修正。

Sheets in Codex

 

Codex 的 in-app browser 可以檢查已渲染的頁面、控制頁面,並直接回應使用者在受檢視畫面上的標註。頁面或 artifact 上的評論會留在同一個工作循環中,而不是變成另一個額外交接。

Web 不只是輸出,也是控制介面。Codex 可以建立 artifact,在 side panel 中打開它、檢查它、除錯它,並在同一個物件上持續修正。

這些介面特別適合這種流程:

  • index.html:輕量靜態 artifacts
  • Storybook:UI 審查
  • Remotion Studio:程式化動畫
  • 瀏覽器型投影片簡報
  • 用於分析工作流程的資料應用程式

單一 index.html 檔案就能成為持久化的互動式 artifact,而且不需要伺服器。Thread automations 也可以隨時間更新靜態 artifacts,讓使用者回來時,thread 裡已經有新的內容等著他。

Shared memory

當長時間 threads 能在單一 conversation 之外共享記憶時,它們會變得更有用。

Shared memory:指的是儲存在單一 thread 之外的持久化上下文,讓未來工作可以從明確、可檢視的內容接續。

一種持久化的實用模式,是把 persistent threads 錨定在 Obsidian vault 中。實際上,這代表一個由純文字檔組成的資料夾,方便檢查、編輯、搬移與長期保存。團隊可以把這個資料夾放在雲端儲存、Git、Dropbox、Google Drive,或任何適合他們工作流程的同步系統中。

一個 vault 可能長這樣:

vault/
├── TODO.md
├── people/
├── projects/
├── agent/
└── notes/

 

在最上層,AGENTS.md 可以定義 Codex 應該如何更新這個工作空間,隨著它逐漸理解人物、專案、決策與尚未關閉的事項。

不要直接複製某一種固定的 vault 結構。重點是教會 agent:持久化上下文應該存放在哪裡、哪些上下文應該保存,以及什麼時候不要造成不必要的頻繁更新。

一份實用的 AGENTS.md 可能會這樣寫:

  • ~/vault 視為持久化工作記憶。
  • 優先使用正式主筆記,而不是製造大量零散筆記。
  • 明確分類 TODO、人物、專案、每日摘要與臨時筆記。
  • 保留決策、阻塞點、負責人、日期與有用連結。
  • 如果沒有實質變化,就不要頻繁改動 vault。

Repositories 保存程式碼;vault 保存持續演進的上下文:參與的人、發生了什麼變化、目前卡在哪裡、哪些事情需要追蹤,以及那些原本會在不同工作階段之間消失的資訊。

重要的上下文不應該只存在於 conversation transcript 裡。應該把它寫到某個地方,讓下一個 thread 能夠接著使用。

Codex 也在 Settings > Personalization > Memories 中提供第一方記憶功能。它們提供一層本地回憶能力,用來保存偏好、重複工作流程與已知陷阱。這些功能是補充明確寫下的上下文,而不是取代它。Chronicle 也朝著同樣方向前進,透過最近的螢幕上下文,幫助 Codex 建立記憶。

From code outward

Codex 仍然從程式碼開始。但現在,更多圍繞程式碼的工作,也已經能透過同一套系統觸及:MCP servers、browser surfaces、desktop controls、thread automations,以及可審查的 artifacts。

這改變了整個控制模式。Steering 會中斷正在進行的工作。Queuing 會安排下一個任務。Thread automations 會在使用者離開時讓 thread 保持活躍。Goals 則替 Codex 加入明確的完成終點,讓它可以持續朝目標推進。

現在,即使工作離開了 repository,Codex 也能把一個工作流程從指令、執行,一路帶到 artifact 審查。

原文連結