TradingAgents/Docs/daily_codex_reports_setup_k...

13 KiB

TradingAgents 일일 Codex 리포트 운영 가이드

이 문서는 self-hosted Windows runner + Codex + GitHub Actions + GitHub Pages 조합으로 TradingAgents를 매일 자동 실행하고, 웹페이지에서 결과를 확인하는 전체 절차를 정리한 문서입니다.

기준 저장소:

  • https://github.com/nornen0202/TradingAgents

기본 분석 설정:

  • 티커: GOOGL, NVDA
  • provider: codex
  • model: gpt-5.4
  • analyst: market, social, news, fundamentals
  • 출력 언어: Korean

관련 파일:

1. 현재 완료된 상태

2026-04-06 기준으로 아래 항목은 이미 완료되었습니다.

  • self-hosted Windows runner 설치 및 저장소 등록 완료
  • runner 이름: desktop-gheeibb-codex
  • runner 현재 상태: online
  • GitHub Pages 소스: GitHub Actions로 설정 완료
  • Actions 변수 TRADINGAGENTS_ARCHIVE_DIR 설정 완료
  • 값: C:\TradingAgentsData\archive
  • GOOGL, NVDA용 설정 파일 작성 완료
  • 실제 원격 GitHub Actions 실행 성공 완료

검증된 원격 실행:

  • run URL: https://github.com/nornen0202/TradingAgents/actions/runs/24013668241
  • 상태: success
  • 실행 시작: 2026-04-06 09:15:42 KST
  • 분석 단계 완료: 2026-04-06 09:28:35 KST
  • Pages 배포 완료: 2026-04-06 09:28:47 KST

검증된 산출물:

  • archive manifest: C:\TradingAgentsData\archive\latest-run.json
  • Pages URL: https://nornen0202.github.io/TradingAgents/

이번 성공 실행 결과:

  • GOOGL: BUY
  • NVDA: SELL
  • trade date: 두 티커 모두 2026-04-02

2. 가장 중요한 개념 3가지

2-1. runner token은 무엇인가

runner token은 self-hosted runner를 GitHub 저장소에 등록할 때 한 번 쓰는 짧은 수명의 등록 토큰입니다.

중요:

  • 영구 토큰이 아닙니다.
  • 보통 1시간 안쪽의 짧은 만료 시간을 가집니다.
  • runner를 새로 등록하거나 다시 등록할 때마다 새로 발급받으면 됩니다.

2-2. codex login은 어디에서 해야 하나

codex login은 GitHub가 아니라, 실제로 workflow를 실행할 self-hosted runner 머신에서 해야 합니다.

즉 이 구성에서는:

  • 이 로컬 Windows PC에서 로그인해야 합니다.
  • GitHub-hosted runner에서는 이 로그인 상태를 유지할 수 없습니다.

2-3. TRADINGAGENTS_ARCHIVE_DIR는 어떤 경로여야 하나

이 변수는 GitHub 저장소 경로나 GitHub Pages URL이 아니라, self-hosted runner가 돌아가는 로컬 PC의 절대 경로여야 합니다.

올바른 예:

  • C:\TradingAgentsData\archive
  • D:\TradingAgents\archive

권장하지 않는 예:

  • 저장소 체크아웃 폴더 내부 임시 경로
  • GitHub URL
  • 상대 경로

이유:

  • runner는 매 실행마다 저장소를 다시 checkout할 수 있습니다.
  • archive는 저장소 밖의 고정 경로에 있어야 이전 실행 이력이 계속 누적됩니다.

3. 관리자 PowerShell에서 새 runner token 발급받는 방법

관리자 PowerShell이 꼭 필요한 것은 아닙니다. 토큰 발급 자체는 GitHub UI 또는 gh CLI로 하면 됩니다.

방법 A. GitHub 웹 UI에서 발급

  1. 저장소 TradingAgents로 이동
  2. Settings
  3. Actions
  4. Runners
  5. New self-hosted runner
  6. 운영체제 Windows 선택
  7. 화면에 표시되는 config.cmd --token ... 명령의 토큰 부분을 사용

설명:

  • 이 방법이 가장 직관적입니다.
  • 토큰은 화면에 잠깐 보이는 등록용 토큰입니다.
  • 만료되면 다시 같은 화면에서 새로 받으면 됩니다.

방법 B. GitHub CLI로 발급

PowerShell:

gh auth status
gh api -X POST repos/nornen0202/TradingAgents/actions/runners/registration-token

응답 예시는 아래와 비슷합니다.

{
  "token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "expires_at": "2026-04-06T00:49:20Z"
}

이 세션에서 실제 검증한 결과:

  • 토큰 발급 API 호출 성공
  • 토큰 길이 확인 완료
  • 만료 시각 응답 확인 완료

언제 새 token이 필요한가

아래 경우 새 token이 필요합니다.

  • runner를 처음 등록할 때
  • config.cmd remove 후 다시 등록할 때
  • 이름이나 labels를 바꿔서 재등록할 때
  • 서비스 모드로 새로 등록할 때

4. runner 머신에서 codex login 또는 codex login --device-auth 하는 방법

4-1. 먼저 확인할 것

PowerShell에서 아래를 확인합니다.

where.exe codex
codex --help

만약 codex alias가 애매하게 잡히거나 바로 실행이 안 되면, 실제 바이너리를 직접 실행하면 됩니다.

이 PC에서 확인된 실제 Codex 바이너리:

C:\Users\JY\.vscode\extensions\openai.chatgpt-26.325.31654-win32-x64\bin\windows-x86_64\codex.exe

4-2. 브라우저 로그인 방식

PowerShell:

codex login

또는 실제 경로 직접 실행:

& 'C:\Users\JY\.vscode\extensions\openai.chatgpt-26.325.31654-win32-x64\bin\windows-x86_64\codex.exe' login

동작:

  • 브라우저 인증 창이 열리거나
  • 브라우저 인증 링크가 표시됩니다.
  • ChatGPT/OpenAI 계정으로 로그인하면 됩니다.

4-3. 디바이스 인증 방식

브라우저 팝업이 어려우면 아래를 사용합니다.

codex login --device-auth

또는:

& 'C:\Users\JY\.vscode\extensions\openai.chatgpt-26.325.31654-win32-x64\bin\windows-x86_64\codex.exe' login --device-auth

동작:

  • 터미널에 코드와 인증 URL이 나옵니다.
  • 브라우저에서 해당 URL을 열고 코드를 입력해 인증합니다.

4-4. 로그인 확인

codex login status

또는:

& 'C:\Users\JY\.vscode\extensions\openai.chatgpt-26.325.31654-win32-x64\bin\windows-x86_64\codex.exe' login status

이 세션에서 실제 확인된 상태:

Logged in using ChatGPT

즉 현재 이 runner 머신은 Codex 로그인 상태가 이미 유효합니다.

5. TRADINGAGENTS_ARCHIVE_DIR에 어떤 경로를 넣어야 하나

질문에 대한 짧은 답:

네. 이 self-hosted runner가 돌아가는 로컬 PC 기준의 절대 경로를 넣는 것이 맞습니다.

다만 정확히는:

  • "프로젝트 경로"를 넣는 것이 아니라
  • "프로젝트 바깥의 영속 보관 폴더"를 넣는 것이 더 좋습니다.

왜 프로젝트 경로 자체는 권장하지 않나

예를 들어 아래 경로는 권장하지 않습니다.

C:\Projects\TradingAgents

이유:

  • 저장소 작업 폴더와 결과 보관 폴더가 섞입니다.
  • checkout/clean 동작과 결과 보존이 충돌할 수 있습니다.
  • 리포트 이력 관리가 지저분해집니다.

권장 경로

이 세션에서 이미 설정해둔 값:

C:\TradingAgentsData\archive

이 경로가 좋은 이유:

  • 저장소 바깥 경로입니다.
  • runner가 같은 PC에서 실행되므로 항상 접근 가능합니다.
  • 실행 이력이 계속 누적됩니다.

현재 설정 상태 확인 방법

gh variable list --repo nornen0202/TradingAgents

현재 실제 설정값:

TRADINGAGENTS_ARCHIVE_DIR    C:\TradingAgentsData\archive

6. self-hosted runner 등록 방법

현재 상태

이미 이 PC에서 등록 완료되어 있습니다.

  • runner name: desktop-gheeibb-codex
  • labels: self-hosted, Windows, X64, codex

현재 워크플로의 대상:

runs-on: [self-hosted, Windows]

새로 등록해야 할 때 전체 절차

PowerShell:

mkdir C:\actions-runner
Set-Location C:\actions-runner
Invoke-WebRequest -Uri https://github.com/actions/runner/releases/download/v2.333.1/actions-runner-win-x64-2.333.1.zip -OutFile actions-runner-win-x64-2.333.1.zip
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::ExtractToDirectory("$PWD/actions-runner-win-x64-2.333.1.zip", "$PWD")

그 다음 GitHub에서 받은 token으로 등록:

.\config.cmd --url https://github.com/nornen0202/TradingAgents --token <NEW_TOKEN>

실행:

.\run.cmd

7. 관리자 권한이 필요한 경우와 아닌 경우

관리자 권한이 없어도 되는 것

  • runner token 발급
  • config.cmd로 일반 runner 등록
  • run.cmd로 foreground 실행
  • codex login
  • GitHub Actions 실행

관리자 권한이 필요한 것

  • Windows 서비스로 runner 등록
  • 시스템 전체 실행 정책 변경

현재 상태:

  • 일반 runner 등록은 완료
  • 로그인 시 자동 시작되도록 작업 스케줄러 등록 완료
  • 따라서 "사용자가 로그인된 상태"에서는 정상 동작

주의:

  • PC가 꺼져 있거나
  • Windows에 로그인되어 있지 않으면
  • 현재 구성에서는 runner가 잡을 받지 못할 수 있습니다.

8. 진짜 항상 돌게 하려면

현재도 자동화는 동작합니다. 다만 가장 안정적인 운영을 원하면 나중에 관리자 PowerShell에서 서비스 모드로 전환하는 것이 좋습니다.

서비스 모드 재등록 예시:

Set-Location C:\actions-runner
.\config.cmd remove
.\config.cmd --unattended --url https://github.com/nornen0202/TradingAgents --token <NEW_TOKEN> --name desktop-gheeibb-codex --work _work --replace --labels codex --runasservice

설명:

  • 이 방식은 로그아웃 상태에서도 계속 동작하게 만드는 방향입니다.
  • 새 token이 필요합니다.

9. GitHub Pages 설정 확인 방법

웹 UI:

  1. 저장소 Settings
  2. Pages
  3. Build and deployment
  4. Source = GitHub Actions

현재 실제 확인 상태:

  • Pages URL: https://nornen0202.github.io/TradingAgents/
  • build type: workflow
  • 공개 상태: public

10. 수동 실행 방법

로컬에서 바로 실행

PowerShell:

Set-Location C:\Projects\TradingAgents
python -m pip install -e .
python -m tradingagents.scheduled --config config/scheduled_analysis.toml --label manual-local

GitHub Actions에서 수동 실행

  1. 저장소 Actions
  2. Daily Codex Analysis
  3. Run workflow
  4. 필요하면 입력값 지정

입력값 예시:

  • tickers: GOOGL,NVDA
  • trade_date: 2026-04-02
  • site_only: false

11. 매일 자동 실행 방식

현재 cron:

- cron: "13 0 * * *"

이 의미:

  • UTC 기준 00:13
  • 한국 시간 기준 매일 09:13

즉 지금은 매일 오전 9시 13분에 자동 실행되도록 설정되어 있습니다.

12. 결과는 어디서 보나

웹페이지

로컬 archive

  • C:\TradingAgentsData\archive\latest-run.json
  • C:\TradingAgentsData\archive\runs\...

runner 작업 폴더에서 생성된 site

  • C:\actions-runner\_work\TradingAgents\TradingAgents\site\index.html

13. 이번에 실제로 검증한 항목

이번 세션에서 아래를 직접 검증했습니다.

  • gh 인증 상태 정상
  • self-hosted runner 온라인 상태 확인
  • Codex 로그인 상태 확인
  • TRADINGAGENTS_ARCHIVE_DIR 변수 설정 확인
  • GitHub Pages 설정 확인
  • 원격 workflow dispatch 실행 성공
  • GOOGL, NVDA 실제 분석 성공
  • Pages artifact 업로드 성공
  • GitHub Pages 배포 성공
  • 실제 Pages URL HTTP 200 응답 확인
  • 실제 Pages HTML에 최신 run ID 노출 확인

실제 성공 run:

14. 당신이 지금 꼭 해야 하는 일

즉시 사용 기준으로는 추가 필수 작업이 없습니다.

이미 완료된 것:

  • 설정 파일 작성
  • runner 등록
  • Codex 로그인 확인
  • Actions 변수 설정
  • Pages 설정
  • 원격 실실행 검증

다만 아래 상황이면 당신이 직접 해야 합니다.

  • 로그아웃 상태에서도 항상 돌게 만들고 싶다
    • 관리자 PowerShell로 서비스 등록 필요
  • 티커를 바꾸고 싶다
  • 다른 PC로 runner를 옮기고 싶다
    • 그 PC에서 다시 codex login과 runner 등록 필요

15. 자주 쓰는 확인 명령

gh auth status
gh variable list --repo nornen0202/TradingAgents
gh run list --repo nornen0202/TradingAgents --workflow daily-codex-analysis.yml --limit 5
gh run view 24013668241 --repo nornen0202/TradingAgents
codex login status

실제 Codex 바이너리 직접 확인이 필요하면:

& 'C:\Users\JY\.vscode\extensions\openai.chatgpt-26.325.31654-win32-x64\bin\windows-x86_64\codex.exe' login status