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