본문으로 건너뛰기

Chain of Debate (CoD) System Flow Overview

Executive Summary

Chain of Debate (CoD) 시스템은 SOL(Sleep Onset Latency) 예측을 위해 여러 전문 AI 에이전트가 협력적 토론을 통해 더 정확한 예측에 도달하는 멀티 에이전트 추론 프레임워크입니다. 각 에이전트는 독립적인 분석을 수행한 후, 상호 비판과 검증을 거쳐 최종 합의를 도출합니다.

System Architecture

Core Agents

1. Sleep Pattern Analyst

  • 역할: 수면 데이터의 시계열 패턴 분석
  • 전문 분야: 통계적 분석, 추세 인식, 변동성 평가
  • 주요 관점: "데이터가 보여주는 객관적 패턴"

2. Psychological State Analyst

  • 역할: 심리적 요인과 수면의 상관관계 분석
  • 전문 분야: 스트레스, 불안, 인지적 각성
  • 주요 관점: "마음 상태가 수면에 미치는 영향"

3. CBT-I Expert

  • 역할: 인지행동치료 관점의 수면 행동 분석
  • 전문 분야: 수면 위생, 조건화된 각성, 수면 제한
  • 주요 관점: "행동 패턴과 수면 습관의 영향"

4. Digital Environment Specialist

  • 역할: 디지털 환경과 수면의 관계 분석
  • 전문 분야: 스크린 타임, 청색광 노출, 디지털 자극
  • 주요 관점: "현대 디지털 생활이 수면에 미치는 영향"

Detailed Process Flow

Phase 1: Data Preparation (데이터 준비)

// 1. 원시 데이터 수집
const sleepLogs = await queryBus.execute(GetLlmFriendlySleepLogByDayIndexQuery);
const sleepGoals = await queryBus.execute(GetLlmFriendlySleepGoalByDayIndexQuery);

// 2. 데이터 변환 및 요약
const sleepDataSummary = {
averageSOL: 32,
recentSOLTrend: [25, 32, 28, 45, 30, 38, 29],
sleepEfficiency: 0.85,
bedtimeConsistency: 0.72,
goalAchievementRate: 0.65,
// ... 기타 메트릭
};

Phase 2: Independent Analysis (독립 분석)

각 에이전트가 동시에 병렬로 독립적인 분석 수행:

// 병렬 실행
const analyses = await Promise.all([
sleepPatternAgent.analyze(sleepDataSummary), // 데이터 패턴 분석
psychologicalAgent.analyze(sleepDataSummary), // 심리 상태 분석
cbtiExpertAgent.analyze(sleepDataSummary), // 행동 패턴 분석
digitalEnvAgent.analyze(sleepDataSummary) // 디지털 환경 분석
]);

각 에이전트의 출력 형식:

{
"agentName": "Sleep Pattern Analyst",
"analysisId": "spa-001",
"solPrediction": 34,
"confidenceScore": 0.72,
"keyFactors": ["높은 SOL 변동성", "최근 악화 추세"],
"analysis": "최근 7일간 변동성 증가와 악화 추세가 관찰됨",
"patternInsights": {
"baselineSOL": 28,
"variabilityLevel": "high",
"trendStrength": "moderate"
}
}

Phase 3: Cross-Examination (상호 비판)

각 에이전트가 다른 에이전트의 분석을 비판적으로 검토:

// 라운드 로빈 방식으로 상호 비판
const critiques = [];

for (let i = 0; i < agents.length; i++) {
for (let j = 0; j < agents.length; j++) {
if (i !== j) {
const critique = await agents[i].critiqueAnalysis(analyses[j]);
critiques.push(critique);
}
}
}

비판의 예시:

Psychological → Sleep Pattern:
"데이터 분석가는 SOL 변동성을 강조하지만, 수면 일지에 기록된
'중요한 프레젠테이션 준비'라는 심리적 스트레스 요인을 간과했습니다.
이는 일시적 요인으로 향후 개선될 가능성이 높습니다."

Sleep Pattern → Psychological:
"심리학자는 주관적 스트레스를 강조하지만, 수면 효율은
85%로 양호합니다. 높은 수면 효율에도 불구하고 SOL이
증가한 이유를 어떻게 설명하시겠습니까?"

Phase 4: Synthesis & Consensus (종합 및 합의)

Moderator가 모든 분석과 비판을 종합하여 최종 결론 도출:

const finalConsensus = await moderatorAgent.synthesize({
initialAnalyses: analyses,
critiques: critiques,
consensusMethod: 'weighted_average', // 또는 'majority_vote', 'expert_judgment'
conflictResolution: 'evidence_based' // 증거 기반 충돌 해결
});

합의 도출 메커니즘:

  1. 가중 평균: 각 에이전트의 신뢰도 점수를 가중치로 사용
  2. 증거 강도: 데이터 기반 주장 > 이론 기반 주장 > 경험 기반 주장
  3. 일관성 보너스: 여러 에이전트가 동의하는 요인에 추가 가중치
  4. 소수 의견 보존: 중요한 반대 의견은 별도 기록

Phase 5: Final Output (최종 출력)

{
"finalSOLPrediction": 37,
"confidenceLevel": 0.78,
"consensusType": "strong_agreement",
"primaryFactors": [
"불규칙한 취침 시간 (3 agents agreed)",
"누적된 수면 부채 (2 agents agreed)",
"일시적 스트레스 요인 (2 agents agreed)"
],
"recommendations": [
"취침 시간 일관성 개선",
"스트레스 관리 기법 적용",
"저녁 디지털 기기 사용 제한"
],
"dissentingOpinions": [
{
"agent": "Digital Environment Specialist",
"opinion": "스크린 타임이 주요 원인일 가능성",
"confidence": 0.45
}
],
"debugInfo": {
"individualPredictions": [34, 40, 38, 35],
"agreementScore": 0.82,
"debateRounds": 2,
"processingTime": "3.2s"
}
}

Prompt Management Strategy

1. Prompt Organization

/docs/application/chain-of-debate/agents/
├── sleep-pattern-analyst-analysis-prompt.md # 분석용
├── sleep-pattern-analyst-critique-prompt.md # 토론용
├── psychological-state-analyst-analysis-prompt.md # 분석용
├── psychological-state-analyst-critique-prompt.md # 토론용
├── cbti-expert-analysis-prompt.md # 분석용
├── cbti-expert-critique-prompt.md # 토론용
├── digital-environment-specialist-analysis-prompt.md # 분석용
├── digital-environment-specialist-critique-prompt.md # 토론용
└── moderator-synthesis-prompt.md # 합의 도출용

2. Prompt Types

Analysis Prompts (분석 프롬프트)

  • 목적: 독립적인 초기 분석 수행
  • 특징:
    • 전문 분야별 도메인 지식 포함
    • 3단계 분석 프로토콜 (데이터 검증 → 패턴 인식 → 예측)
    • 구조화된 JSON 출력 형식

Critique Prompts (비판 프롬프트)

  • 목적: 다른 에이전트의 분석 검토
  • 특징:
    • 비판적 사고 유도
    • 대안적 해석 제시
    • 논리적 허점 식별

Synthesis Prompt (종합 프롬프트)

  • 목적: 최종 합의 도출
  • 특징:
    • 충돌 해결 메커니즘
    • 가중치 기반 통합
    • 소수 의견 처리

Implementation Considerations

1. Performance Optimization

  • 병렬 처리: 독립 분석 단계는 반드시 병렬 실행
  • 캐싱: 동일한 입력에 대한 분석 결과 캐싱 (1시간)
  • 토큰 관리: 각 에이전트당 최대 3500 토큰 제한

2. Error Handling

  • 개별 실패 처리: 한 에이전트 실패 시 나머지로 진행
  • 최소 에이전트 수: 최소 2개 이상 에이전트 성공 필요
  • 타임아웃: 각 단계별 최대 10초 제한

3. Quality Assurance

  • 신뢰도 임계값: confidenceScore < 0.5인 예측은 경고 표시
  • 일관성 검증: 에이전트 간 예측 차이가 30분 이상이면 재분석
  • 로깅: 모든 토론 과정 상세 기록

Benefits of CoD System

1. 다각적 분석

  • 단일 모델의 편향 극복
  • 여러 전문 분야의 통찰 통합
  • 놓치기 쉬운 패턴 발견

2. 강건성 (Robustness)

  • 상호 검증을 통한 오류 감소
  • 과적합(overfitting) 방지
  • 불확실성의 명시적 표현

3. 설명 가능성

  • 각 예측의 근거 명확화
  • 의사결정 과정 추적 가능
  • 반대 의견까지 문서화

4. 지속적 개선

  • 실패 사례에서 학습
  • 프롬프트 반복적 개선
  • 새로운 전문가 에이전트 추가 용이

Future Enhancements

Near-term (1-3 months)

  • 5번째 에이전트 추가: Circadian Rhythm Specialist
  • 동적 가중치 학습 시스템
  • 실시간 토론 시각화 대시보드

Mid-term (3-6 months)

  • 자동 프롬프트 최적화 (메타-프롬프팅)
  • 외부 도구 통합 (통계 분석, 의학 DB 검색)
  • 다국어 지원 (프롬프트 현지화)

Long-term (6+ months)

  • 자가 학습 시스템 (예측 정확도 기반 프롬프트 자동 조정)
  • 도메인 확장 (다른 건강 지표 예측)
  • 연합 학습 (Federated Learning) 통합

Conclusion

Chain of Debate 시스템은 복잡한 수면 데이터를 분석하여 정확한 SOL 예측을 제공하는 혁신적인 접근 방식입니다. 여러 전문 AI 에이전트의 협력적 토론을 통해 단일 모델의 한계를 극복하고, 더 신뢰할 수 있고 설명 가능한 예측을 제공합니다.


Last Updated: 2025-01-23 Author: SOL Prediction CoD System Team Status: Production Ready