Communitygithub.com

Danicahhh/codex-skills

AutoDL 远程服务器上使用 Codex CLI 的完整流程 Skill,帮助用户直接在远程环境中修改和调试项目代码。

codex-skills란 무엇인가요?

이 Skill은 AutoDL 원격 서버에서 Codex CLI를 직접 사용하여 프로젝트 코드를 수정하고 디버깅할 수 있도록 도와줍니다. 데이터가 큰 경우 로컬로 다운로드할 필요 없이 원격 코드를 직접 읽고, 파일을 수정하고, 테스트를 실행할 수 있습니다. 또한 AutoDL 서버가 `chatgpt.com` 또는 `api.openai.com`에 직접 접근할 수 없는 네트워크 문제를 해결하기 위해 SSH 역방향 프록시를 설정하고, gawk/SHA-256 검증 오류, npm 설치 문제, PATH 설정 문제 등 일반적인 설치 문제를 단계별로 해결합니다. 마지막으로 대규모 데이터 프로젝트에서 안전하게 Codex를 사용하기 위한 `AGENTS.md` 파일 작성 가이드와 권장 사용 원칙을 제공합니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add Danicahhh/codex-skills

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

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/your-project-directory
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는 쉘 스크립트가 아닌 바이너리 프로그램입니다.

수정 방법:

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가 터미널에 로그인 링크와 일회용 코드를 제공합니다.

로컬 컴퓨터의 브라우저에서 링크를 열고 ChatGPT에 로그인한 다음 터미널에 제공된 코드를 입력합니다.

로그인에 성공하면 AutoDL에 다음이 표시됩니다:

Successfully logged in

로그인 상태를 확인할 수 있습니다:

codex login status

10. AutoDL 프로젝트 디렉토리에서 Codex 시작

프로젝트 디렉토리로 이동합니다:

cd /autodl-tmp/your-project-directory

예시:

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

Codex를 시작합니다:

codex

그런 다음 Codex가 원격 코드를 직접 분석하고 수정할 수 있습니다.

첫 번째 프롬프트로 다음을 권장합니다:

이 프로젝트의 코드 구조를 먼저 읽어주세요. 전체 데이터셋을 읽지 마세요. 훈련 파이프라인과 현재 잠재적인 문제를 분석해 주세요. 아직 파일을 수정하지 말고 수정 계획을 먼저 알려주세요.

코드 수정이 필요한 경우 다음과 같이 말할 수 있습니다:

방금 분석 내용을 바탕으로 코드를 수정해 주세요. 필요한 파일만 수정하고, 전체 데이터셋을 읽지 마세요. 데이터, 가중치, 로그 파일을 삭제하지 마세요. 수정 후 어떤 파일을 변경했는지와 테스트 방법을 알려주세요.

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/your-project-directory
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는 설치되었지만 현재 쉘의 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가 여전히 존재하는지 확인합니다.

관련 스킬