본문으로 건너뛰기

스튜디오 Debate Round 설정 기능 개발 계획

배경

  • 현재 Debate round 수는 환경 변수 COD_MAX_ROUNDS에 의해 전역으로 고정되며, Studio UI에서는 조정이 불가능함.
  • AI Agent 개발자는 사용자/시나리오에 따라 최적 라운드 수를 탐색할 필요가 있으며, 실험 속성으로 손쉽게 제어할 수 있는 옵션이 요구됨.

목표

  • Studio 백테스트 실행 시 Debate round 수를 프론트에서 설정하고, 백엔드 워크플로우가 해당 값을 안전하게 반영하도록 확장한다.
  • 기본값은 기존 환경 설정을 유지하면서, 세션 단위 override가 가능하도록 한다.
  • 진행 중/완료 후에도 UI에서 설정 값과 실제 수행 결과를 명확히 확인할 수 있게 한다.

범위

  • 대상 서비스: dta-wir-agent-studio (Backtest UI), SOL CoD 백엔드(sol-cod-workflow.service).
  • 제외: Flowise 에이전트, 릴리스 자동화, 프로덕션 환경 변수 변경.

구현 항목

1. 환경설정 및 백엔드 튜닝

  • SOLCoDWorkflowService 생성자 초기화 후, 실행 컨텍스트에서 전달되는 maxDebateRounds가 존재하면 Math.min(override, configuredMax)로 적용.
  • lastRunSnapshot 및 SSE 브로드캐스트가 수정 값을 사용하도록 확인하고, 부족 시 추가 필드를 전달.
  • 기본값은 solPrediction.cod.maxRounds(= COD_MAX_ROUNDS)에서 가져오며, 1 이하 또는 10 초과 값은 방어 로직으로 차단.

2. API/DTO 확장

  • StartSimulationRequest, StepSimulationRequest 등에 maxDebateRounds?: number 필드 추가 (apps/dta-wir-agent-studio/src/app/backtest/types.ts).
  • Next API 라우터(pages/api/simulation/...)와 Nest 명령 처리 계층에서 신규 필드를 추출하여 서비스 호출 시 포함.
  • 요청 값 검증: 정수 여부, 허용 범위, 미지정 시 기본값 사용.

3. Studio UI 업데이트

  • 백테스트 설정 모달에 Debate round 설정 UI 추가(Select/Slider, 기본값은 서버 상태 또는 환경 기본값).
  • useSimulation 훅에 maxDebateRounds 상태 및 setter, API 호출 시 payload 포함.
  • 실행 중 카드 하단 정보에 “Debate rounds: 진행/설정” 형식으로 표시.

4. Telemetry 및 상태 동기화

  • SSE debate-round-complete 수신 시 누적 라운드와 설정 값 비교하여 경고 메시지 또는 툴팁 제공 여부 검토.
  • 필요 시 state.statusText에 조기 종료 사유(예: 조기 합의) 반영.

5. 테스트 계획

  • 단위 테스트: sol-cod-workflow.service.spec.ts에 override 적용 여부, 범위 밖 입력 거부 시나리오 추가.
  • 프론트 단위/스냅샷: 설정 컴포넌트 렌더링, API 호출 payload 확인.
  • 통합 테스트: yarn test:features 실행, Studio 백엔드 모킹으로 라운드 수 반영 검증.

6. 문서화 및 배포

  • apps/dta-wide-doc 하위 CoD 문서에 UI 옵션 추가 설명.
  • 환경 변수 가이드(docs 또는 README)에 “Studio override > COD_MAX_ROUNDS” 우선 순위 명시.
  • QA 체크리스트와 릴리스 노트 템플릿에 항목 추가.

진행 관리

단계담당예정일상태메모
API 계약 확장대기
백엔드 override 적용대기
Studio UI 업데이트대기
테스트 & 회귀대기
문서/릴리스 정리대기

Progress 업데이트 방법

  • 각 작업 완료/착수 시 위 표의 상태, 메모, 예정일을 즉시 갱신한다.
  • 주간 스탠드업 전까지 최신 상태를 반영하며, 차주 계획 변경 시 메모에 리스크/차단 요소를 기록한다.
  • 대규모 범위 조정 필요 시 본 문서 하단에 “변경 이력” 섹션을 추가해 결정 사항과 근거를 남긴다.