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' // 증거 기반 충돌 해결
});
합의 도출 메커니즘:
- 가중 평균: 각 에이전트의 신뢰도 점수를 가중치로 사용
- 증거 강도: 데이터 기반 주장 > 이론 기반 주장 > 경험 기반 주장
- 일관성 보너스: 여러 에이전트가 동의하는 요인에 추가 가중치
- 소수 의견 보존: 중요한 반대 의견은 별도 기록
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