Communitygithub.com

Danicahhh/codex-skills

在 AutoDL 遠端伺服器中直接安裝與使用 Codex CLI 的完整指南,解決網路限制、工具依賴與路徑問題。

codex-skills 是什麼?

這個 Skill 提供了一套完整的流程,幫助使用者在 AutoDL 遠端伺服器上直接使用 Codex CLI 來修改與除錯專案程式碼,避免將遠端專案或大數據下載到本地。它涵蓋了從 SSH 反向代理設定、代理環境變數配置、自動化安裝 Codex CLI,到處理常見錯誤(如 gawk SHA-256 校驗失敗、npm 遺失、PATH 未刷新)的逐步教學。支援平台包括本機端與 AutoDL 雲端伺服器,並建議透過建立 `AGENTS.md` 來限制 CLI 讀取大數據,確保高效與安全開發。這個 Skill 主要適用於需要在遠端伺服器上使用 AI 代理進行程式碼編輯的開發者與資料科學家。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add Danicahhh/codex-skills

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

AutoDL 中使用 Codex CLI 的完整流程

本 Skill 用於幫助使用者在 AutoDL 遠端伺服器中直接使用 Codex CLI 修改和除錯專案程式碼,避免將遠端專案和大數據下載到本機。適用於以下場景:

  • 使用者的程式碼和資料都在 AutoDL 遠端伺服器上;
  • 資料檔案較大,不適合下載到本機;
  • 使用者希望 Codex 直接讀取遠端程式碼、修改檔案、執行測試;
  • AutoDL 伺服器無法直接存取 chatgpt.com 或 api.openai.com;
  • 安裝 Codex CLI 時遇到網路、npm、PATH、gawk、SHA 校驗等問題。

1. 總體思路

不要把 AutoDL 上的專案下載到本機再讓 Codex 修改,而是:

  1. 在本機電腦開 SSH 反向代理;
  2. 讓 AutoDL 透過本機代理存取 OpenAI;
  3. 在 AutoDL 伺服器中安裝 Codex CLI;
  4. 在 AutoDL 專案目錄中直接執行 codex;
  5. 讓 Codex 在遠端伺服器上直接讀取、修改、執行程式碼。

最終目標是:

cd /autodl-tmp/你的專案目錄
codex

2. 取得 AutoDL 的 SSH 位址和埠號

在 AutoDL 控制台中找到當前執行個體的 SSH 登入命令。

通常格式類似:

ssh -p 32384 [email protected]

其中:

[email protected]

是 AutoDL 位址;

-p 32384

是 SSH 埠號。

後續所有命令中的 <PORT> 替換為埠號,例如 32384;<HOST> 替換為位址,例如 connect.bjb2.seetacloud.com。


3. 在本機電腦開啟 SSH 反向代理

如果本機電腦已經開啟 Clash、VPN 或其他代理,並且本機代理埠號是 7890,則在本機 Windows PowerShell、CMD 或 Git Bash 中執行:

ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>

範例:

ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]

輸入 AutoDL 的 SSH 密碼。

注意:

  • 輸入密碼時,終端不會顯示任何字元,也不會顯示 *;
  • 貼上密碼後直接按 Enter;
  • 如果登入成功,該視窗會卡住不動,這是正常的;
  • 不要關閉這個視窗,它負責維持 AutoDL 到本機代理的隧道。

如果提示:

Permission denied

說明密碼錯誤,需要回 AutoDL 控制台複製正確的 SSH 密碼。


4. 在 AutoDL 中設定代理環境變數

開啟另一個終端,正常 SSH 登入 AutoDL,或者使用 AutoDL 網頁終端。

進入 AutoDL 後執行:

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

然後測試網路:

curl -I https://chatgpt.com
curl -I https://api.openai.com

如果之前是:

Connection timed out

現在變成:

HTTP/1.1 200 Connection established

說明代理隧道已經生效。

如果存取 chatgpt.com 回傳:

HTTP/2 403

這通常說明已經連到了網站,只是網頁本身被 Cloudflare 或存取策略拒絕,不一定代表代理失敗。應繼續測試 Codex 安裝腳本或 api.openai.com。


5. 安裝 Codex CLI

在 AutoDL 中執行:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

如果成功,會看到類似:

Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.

6. 處理 gawk / SHA-256 校驗報錯

如果安裝過程中出現:

Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.

通常是系統預設 awk 不是 GNU awk,安裝腳本解析 SHA256SUMS 失敗。

先檢查:

awk --version

如果輸出:

awk: not an option: --version

說明當前 awk 不是 GNU awk。

不要使用:

bash awk --version

這是錯誤寫法。awk 是二進位程式,不是 shell 腳本。

修復方式:

apt-get update
apt-get install -y gawk

安裝後檢查:

gawk --version
awk --version

如果 awk --version 仍然不是 GNU Awk,則切換預設 awk:

update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk

再次檢查:

awk --version

正常後重新安裝 Codex:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

7. 處理 npm command not found

如果執行:

npm install -g @openai/codex

出現:

bash: npm: command not found

說明當前 AutoDL 環境沒有 Node.js/npm。

可以使用 conda 安裝:

conda install -c conda-forge nodejs -y

檢查:

node -v
npm -v

然後給 npm 設定代理:

npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890

再安裝 Codex:

npm install -g @openai/codex

如果官方安裝腳本已經成功,則不需要 npm 方案。


8. 處理 codex command not found

安裝成功後,如果執行:

codex --version

卻出現:

bash: codex: command not found

通常是當前終端 PATH 沒重新整理。

先執行:

export PATH=/root/.local/bin:$PATH

然後檢查:

which codex
codex --version

也可以直接用完整路徑:

/root/.local/bin/codex --version

為了以後每次開啟終端都能使用 codex,寫入 .bashrc:

echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

再次檢查:

codex --version

正常情況下會顯示類似:

codex-cli 0.141.0

9. 登入 Codex

AutoDL 通常是無瀏覽器環境,應使用裝置碼登入:

codex login --device-auth

Codex 會在終端裡給出登入連結和一次性 code。

在本機電腦瀏覽器中開啟連結,登入 ChatGPT,然後輸入終端給出的 code。

登入成功後,AutoDL 中會顯示:

Successfully logged in

可以檢查登入狀態:

codex login status

10. 在 AutoDL 專案目錄中啟動 Codex

進入專案目錄:

cd /autodl-tmp/你的專案目錄

範例:

cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition

啟動 Codex:

codex

之後即可讓 Codex 直接分析和修改遠端程式碼。

推薦第一條 prompt:

請先閱讀這個專案的程式碼結構,不要讀取完整資料集。幫我分析訓練流程和當前可能的問題。先不要修改檔案,先給我修改方案。

如果需要它修改程式碼,可以說:

請根據剛才的分析修改程式碼。只修改必要檔案,不要讀取完整資料集,不要刪除資料、權重和日誌檔案。修改後告訴我改了哪些檔案,以及如何測試。

11. 大數據專案的安全使用規則

AutoDL 專案通常包含大數據、模型權重、日誌和實驗結果。使用 Codex 前建議新建 AGENTS.md:

nano AGENTS.md

寫入:

# 專案說明

這是一個執行在 AutoDL 伺服器上的機器學習專案。

## 重要規則

- 不要讀取完整資料集。
- 不要開啟 data、dataset、checkpoints、outputs、logs 等大檔案目錄,除非使用者明確要求。
- 如果需要檢查資料格式,只讀取前 5 行或請求使用者提供小樣本。
- 修改程式碼前,先說明準備修改哪些檔案。
- 不要刪除任何資料檔案、模型權重、日誌或實驗結果。
- 不要直接執行完整訓練,除非使用者明確要求。
- 優先執行輕量級測試、語法檢查或小樣本測試。

然後再執行:

codex

12. 推薦的完整命令順序

本機電腦:開啟反向代理

ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>

保持該視窗不關閉。

AutoDL 伺服器:設定代理

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

AutoDL 伺服器:測試網路

curl -I https://chatgpt.com
curl -I https://api.openai.com

AutoDL 伺服器:修復 awk

apt-get update
apt-get install -y gawk

AutoDL 伺服器:安裝 Codex

curl -fsSL https://chatgpt.com/codex/install.sh | sh

AutoDL 伺服器:重新整理 PATH

export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

AutoDL 伺服器:檢查版本

codex --version

AutoDL 伺服器:登入

codex login --device-auth

AutoDL 伺服器:進入專案並啟動

cd /autodl-tmp/你的專案目錄
codex

13. 常見問題速查

問題 1:curl: (28) Failed to connect to chatgpt.com

原因:AutoDL 無法直接存取 ChatGPT。

解決:本機電腦開啟 SSH 反向代理,並在 AutoDL 設定代理環境變數。


問題 2:輸入 SSH 密碼時貼不上

原因:SSH 密碼輸入不會顯示任何字元。

解決:貼上後直接按 Enter。如果出現 Permission denied 才說明密碼錯誤。


問題 3:HTTP/1.1 200 Connection established 後出現 HTTP/2 403

原因:代理隧道已通,目標網站拒絕了當前請求。

解決:繼續測試安裝腳本或 api.openai.com,不一定是代理失敗。


問題 4:npm: command not found

原因:AutoDL 中沒有安裝 Node.js/npm。

解決:

conda install -c conda-forge nodejs -y

問題 5:Could not find SHA-256 digest

原因:系統預設 awk 不是 GNU awk,安裝腳本解析 SHA 校驗檔案失敗。

解決:

apt-get install -y gawk

必要時:

update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk

問題 6:bash: codex: command not found

原因:Codex 安裝成功,但當前 shell 的 PATH 沒有重新整理。

解決:

export PATH=/root/.local/bin:$PATH
source ~/.bashrc

或者:

/root/.local/bin/codex --version

問題 7:Codex 登入時打不開瀏覽器

原因:AutoDL 是遠端無瀏覽器環境。

解決:

codex login --device-auth

在本機瀏覽器中完成裝置碼登入。


14. 使用原則

在 AutoDL 中使用 Codex 時,應遵守以下原則:

  1. 先開代理,再用 Codex;
  2. 不要關閉本機 SSH 反向代理視窗;
  3. 不要在大數據根目錄啟動 Codex;
  4. 優先從專案程式碼目錄啟動 Codex;
  5. 使用 AGENTS.md 限制 Codex 不要讀取大數據;
  6. 修改程式碼前讓 Codex 先給方案;
  7. 修改後用 git diff 檢查;
  8. 不要讓 Codex 直接刪除資料、權重或實驗結果;
  9. 完整訓練前,先讓 Codex 做小樣本測試;
  10. 每次重新開啟 AutoDL 終端時,確認代理變數和 PATH 是否仍然存在。

相關技能