OpenAI Codex CLI 代理人開發全攻略

從入門到實戰

學員課前注意事項

OpenAI Codex CLI 代理人開發全攻略:從入門到實戰

直播授課訊息

請登入《OpenAI Codex CLI 代理人開發全攻略》課程頁面以查看進入 Zoom 會議室方式。

https://learn.duotify.com/courses/openai-codex-cli

給學員的話

各位同學大家好:

我們本次的課程的主軸雖然是 OpenAI Codex CLI 這套開源免費的 SWE-Agent (軟體工程代理) 開發工具,但是所教授的內容也適用於 Claude Code 開發工具,這兩套基本上都是可以幫助你開發軟體專案的工具。

我們這次的課程,主要會用到 Visual Studio Code 開發工具的 Dev Containers 功能,課程中我會詳細示範用法,我多年前也有開過一場直播介紹過這個工具,有興趣先瞭解的人可以抽空觀看 使用 VSCode 的 Remote Container 打造 Java 開發環境 這部影片。

由於透過 AI 全自動寫程式,可以任意的對檔案系統進行讀寫,也可以呼叫任意外部工具或命令,威力十分強大,同時也會帶來不小的風險。所以我建議大家把 Codex 安裝在一個隔離的開發環境中,最好是透過 Docker DesktopPodman 這樣的容器技術來隔離,這樣就算有什麼意外發生,也不會影響到你的主機系統。(鬼故事在此)

我們的課程中,由於是在 Linux 環境中進行開發,所以無法避免一定會執行不少命令,畢竟 OpenAI Codex CLI 是個命令列工具,我的容器會使用 Ubuntu 為主要作業系統,這是目前最常用的 Linux 發行版之一,並且有著非常活躍的社群支援。

這堂兩小時的課程不會給大家練習的時間,但你依然可以先準備好上課所需的開發環境,隨時體驗 OpenAI Codex CLI 帶來的強大功能,並且在課堂上隨時提出你的任何想法與疑問。

以下文件將說明學員上課前的注意事項,請詳細閱讀並提前準備,有任何疑問都歡迎隨時到 Discord 提問。

註冊 OpenAI 帳號

如果你還沒有 OpenAI 帳號,請務必先註冊好一個 OpenAI 帳號,並且在上課前先登入 OpenAI Platform 網站。

註冊網址:https://platform.openai.com/signup

取得 OpenAI 的 API Key

由於 OpenAI Codex CLI 支援非常多大語言模型的提供者,但是最完整的功能還是以 OpenAI 自家的 API 為主,所以最沒有問題的方式就是去取得 OpenAI 的 API Keys

不過,要使用 OpenAI 的 API Keys 必須至少先儲值 $5 美元的金額,這是 OpenAI 的規定,這筆錢會在你使用 API 時根據用量扣除。儲值的網址: https://platform.openai.com/settings/organization/billing/overview

取得 Azure OpenAI Service 的 API Key

如果你本身擁有 Azure 雲端的訂用帳戶 (Subscription),也可以透過建立 Azure OpenAI Service 資源,並再建立 o4-mini 的「部署」即可取得金鑰與相關資訊。對於 Azure 新手來說,這是個非常複雜的過程,建議你可以先使用 OpenAI 的 API Key 來進行課程。

我在課堂上會示範怎樣設定 Azure OpenAI Service 的 API Key 到 OpenAI Codex CLI 之中。

安裝 Docker Desktop 或 Podman Desktop

請依照以下步驟安裝 Docker Desktop 或 Podman Desktop:

  1. 安裝 Docker DesktopPodman Desktop

    在 VS Code 使用 Podman 時,需要先在 VS Code 的 User Settings 裡設定 dev.containers.dockerPath 的值為 podman (原本的預設值為 docker)!詳見: Alternate ways to install Docker

  2. 確認 Docker 或 Podman 已經成功安裝,並且可以正常運作。

     docker pull mcr.microsoft.com/devcontainers/dotnet:1-8.0
    

安裝 Visual Studio Code 與擴充套件

  1. 安裝 Visual Studio Code 最新版

  2. 安裝 Remote Development 擴充套件

    我們大概只要安裝這個 VS Code 擴充套件,就可以讓我們在 Docker 容器中開發了。

驗證安裝

在安裝好上述軟體後,請先確認是否可以正常運作:

  1. 建立一個空資料夾,並用 Visual Studio Code 開啟該資料夾

  2. 執行 Dev Containers: Add Dev Container Configuration Files… 命令 (remote-containers.createDevContainerFile)

    按下 F1 鍵,然後輸入 Dev Containers: Add Dev Container Configuration Files 命令,選擇「Add Development Container Configuration Files」。

    選擇 C# (.NET) 範本

    安裝 Node.js (via nvm), yarn and pnpm (node) 功能 (Features)

    💡 備註: Dev Container 的 Features 只是在容器啟動後,額外執行安裝工具的命令而已。

    💡 備註: Codex CLI 需要 Node 22 為執行環境。

  3. 執行 Dev Containers: Rebuild and Reopen in Container 命令 (remote-containers.rebuildAndReopenInContainer)

    走完這個步驟後,你將會進入一個容器中,透過 Terminal > New Terminal 命令 (workbench.action.terminal.new) 開啟一個新的終端機視窗,就可以發現你已經進入一個 Linux Shell 環境。

初始化容器內專用工具

  1. 安裝 Codex CLI 必備工具

     sudo apt-get update && sudo apt-get install -y --no-install-recommends \
       aggregate \
       ca-certificates \
       curl \
       dnsutils \
       fzf \
       gh \
       git \
       gnupg2 \
       iproute2 \
       ipset \
       iptables \
       yq \
       jq \
       less \
       man-db \
       procps \
       unzip \
       ripgrep \
       zsh \
       zstd
    
  2. 安裝 Codex CLI

     npm i -g @openai/codex
    
     codex --version
    
  3. 取得你的 OpenAI API Key

    如果你使用 Windows 的話,可能要先安裝 Node.js 22 執行環境。

     npx -y @openai/codex --free
    

    他會要求你登入 ChatGPT 或 OpenAI 帳號,只要登入成功就可以得到一把 API Key,且檔案會寫入到 %USERPROFILE%\.codex\auth.json 檔案中。

  4. 測試 codex 是否可以正常運作

     codex 'hi'
    
  5. 設定環境變數

     cat <<'EOF' | tee -a ~/.profile
    
     # https://platform.openai.com/api-keys
     export OPENAI_OPENAI_API_KEY=''
     export OPENAI_API_KEY=$AZURE_OPENAI_API_KEY
    
     # https://console.groq.com/keys
     # export GROQ_API_KEY=''
     # export OPENAI_API_KEY=$GROQ_API_KEY
    
     # export AZURE_DEVOPS_EXT_PAT=''
     # export GH_TOKEN=''
    
     # Telegram Bot Token
     # https://core.telegram.org/bots#botfather
     export TG_BOT_TOKEN=''
    
     export CODEX_UNSAFE_ALLOW_NO_SANDBOX=1
     export CODEX_SANDBOX_NETWORK_DISABLED=0
     EOF
    

從原始碼建置出完整可用無 Bug 的 codex 命令列工具

💡 完整腳本已經分享在 Discord 的「心得分享」頻道中!

相關連結

  1. Development Containers

    Developing inside a Container

    Development Containers

  2. OpenAI Codex CLI

    GitHub: https://github.com/openai/codex