Sleep Pattern Analyst 전문가 에이전트 명세서
1. 개요
1.1 에이전트 정보
- 에이전트 타입:
SLEEP_PATTERN(Sleep Pattern Analysis Expert) - 전문 분야: 수면 패턴 분석 및 SOL(Sleep Onset Latency) 예측
- 버전: 2.0.0 (수면 목표 달성률 분석 기능 추가)
- LLM 엔진: Gemini Pro (Fallback: 규칙 기반 분석)
1.2 확장된 분석 범위 (v2.0.0)
기존 분석 영역에 수면 목표 달성률 기반 예측이 추가되어 보다 정확하고 개인화된 SOL 예측을 제공합니다.
기존 분석 영역
- ✅ 수면 패턴 메트릭스 (평균 SOL, SOL 변동성, 주중/주말 차이)
- ✅ 수면 트렌드 분석 (개선/악화/안정)
- ✅ 수면 부채 영향 분석
- ✅ 생체리듬 정렬도 평가
- ✅ 계절적 요인 및 이상치 탐지
신규 추가 분석 영역
- 🆕 수면 목표 달성률 분석: 취침/기상 목표 준수율이 SOL에 미치는 영향
- 🆕 목표-실제 갭 분석: 목표 대비 실제 수면 시간 차이와 SOL 상관관계
- 🆕 목표 준수 일관성 평가: 연속 달성 일수와 SOL 안정성 관계
- 🆕 개인별 목표 적응 패턴: 사용자별 목표 달성 패턴 학습
2. 분석 아키텍처
2.1 데이터 입력 구조
interface SleepPatternAnalysisInput {
// 기존 수면 데이터
sleepData: SleepDataSummary & {
// 새로 추가된 수면 목표 관련 필드
goalAchievementRate: number; // 전체 목표 달성률 (0-1)
lightsOutGoalSuccessRate: number; // 취침시간 목표 달성률
wakeTimeGoalSuccessRate: number; // 기상시간 목표 달성률
goalAdherenceConsistency: number; // 목표 준수 일관성
averageGoalActualGap: number; // 평균 목표-실제 차이(분)
recentGoalSuccessStreak: number; // 최근 연속 달성 일수
};
analysisDate: Date;
userId: string;
userCycleId: string;
}
2.2 분석 프로세스 플로우
3. 확장된 메트릭 정의
3.1 기존 메트릭 (유지)
interface SleepPatternMetrics {
// 기본 SOL 메트릭
averageSOL: number; // 평균 SOL (분)
solVariability: number; // SOL 변동성 (표준편차)
weekdayVsWeekendSOL: number; // 주중/주말 SOL 차이
trendDirection: 'improving' | 'worsening' | 'stable';
// 수면 패턴 메트릭
sleepDebtImpact: number; // 수면 부채 영향 (0-1)
circadianMisalignment: number; // 생체리듬 정렬도 (0-1)
}
3.2 신규 수면 목표 메트릭
interface SleepGoalPatternMetrics {
// 목표 달성률 메트릭
overallGoalAchievementRate: number; // 전체 목표 달성률 (0-1)
bedtimeGoalSuccessRate: number; // 취침 목표 달성률 (0-1)
waketimeGoalSuccessRate: number; // 기상 목표 달성률 (0-1)
// 목표-실제 갭 메트릭
averageBedtimeGap: number; // 평균 취침시간 갭 (분)
averageWaketimeGap: number; // 평균 기상시간 갭 (분)
gapVariability: number; // 갭 변동성 (표준편차)
// 일관성 메트릭
goalAdherenceConsistency: number; // 목표 준수 일관성 (0-1)
currentGoalStreak: number; // 현재 연속 달성 일수
longestGoalStreak: number; // 최장 연속 달성 일수
goalStreakTrend: 'improving' | 'declining' | 'stable';
}
4. 예측 알고리즘 개선
4.1 목표 달성률 기반 SOL 조정
/**
* 목표 달성률에 따른 SOL 예측 조정
*/
function adjustSOLByGoalAchievement(
basePrediction: number,
goalMetrics: SleepGoalPatternMetrics
): number {
let adjustment = 0;
// 1. 전체 목표 달성률 영향
if (goalMetrics.overallGoalAchievementRate >= 0.8) {
adjustment -= 8; // 높은 달성률: SOL -8분
} else if (goalMetrics.overallGoalAchievementRate <= 0.4) {
adjustment += 12; // 낮은 달성률: SOL +12분
}
// 2. 연속 달성일 영향
if (goalMetrics.currentGoalStreak >= 7) {
adjustment -= 5; // 1주 이상 연속: SOL -5분
} else if (goalMetrics.currentGoalStreak === 0) {
adjustment += 8; // 연속 중단: SOL +8분
}
// 3. 목표-실제 갭 영향
const averageGap = (goalMetrics.averageBedtimeGap + goalMetrics.averageWaketimeGap) / 2;
if (averageGap > 30) {
adjustment += Math.min(15, averageGap / 3); // 큰 갭: 최대 +15분
}
// 4. 일관성 영향
adjustment += (1 - goalMetrics.goalAdherenceConsistency) * 10; // 최대 +10분
return Math.max(0, Math.round(basePrediction + adjustment));
}
4.2 신뢰도 점수 조정
/**
* 수면 목표 관련 요소를 반영한 신뢰도 계산
*/
function calculateEnhancedConfidenceScore(
baseConfidence: number,
goalMetrics: SleepGoalPatternMetrics,
dataQuality: number
): number {
let confidenceAdjustment = 0;
// 목표 데이터 품질 보너스
if (goalMetrics.overallGoalAchievementRate > 0) {
confidenceAdjustment += 0.1; // 목표 데이터 존재 시 +0.1
}
// 높은 일관성 보너스
if (goalMetrics.goalAdherenceConsistency > 0.8) {
confidenceAdjustment += 0.15; // 높은 일관성: +0.15
}
// 연속 달성일 보너스
if (goalMetrics.currentGoalStreak >= 7) {
confidenceAdjustment += 0.1; // 1주 이상 연속: +0.1
}
// 높은 변동성 페널티
if (goalMetrics.gapVariability > 45) {
confidenceAdjustment -= 0.2; // 높은 갭 변동성: -0.2
}
return Math.max(0.3, Math.min(1.0, baseConfidence + confidenceAdjustment));
}
5. LLM 프롬프트 템플릿 업데이트
5.1 확장된 수면 패턴 분석 프롬프트
const ENHANCED_SLEEP_PATTERN_PROMPT = `
Analyze comprehensive sleep patterns for SOL prediction:
**Sleep Data (Last 7 days)**: {{recentSOL}}
**Pattern Metrics**:
- Average SOL: {{averageSOL}}min
- Variability: {{solVariability}}min
- Trend: {{trendDirection}}
- Sleep Debt Impact: {{sleepDebtImpact}}
- Circadian Alignment: {{circadianAlignment}}
**Sleep Goal Analysis** (NEW):
- Goal Achievement Rate: {{goalAchievementRate}}
- Bedtime Goal Success: {{bedtimeGoalSuccess}}
- Waketime Goal Success: {{waketimeGoalSuccess}}
- Goal Consistency: {{goalConsistency}}
- Average Goal Gap: {{averageGoalGap}}min
- Current Streak: {{goalStreak}} days
**Contextual Factors**:
- Seasonal factors: {{seasonalFactors}}
- Anomalies: {{anomalies}}
- Data quality: {{dataQualityScore}}
Provide structured response focusing on sleep goal impact:
1. SOL Score (0-120 min): [number]
2. Confidence (0.0-1.0): [number]
3. Goal Impact Analysis: [How goal adherence affects SOL]
4. Key Factors: [max 3 bullet points including goal-related factors]
5. Prediction Reasoning: [max 60 words emphasizing goal patterns]
Prioritize goal adherence patterns in your analysis.
`;
5.2 토론 프롬프트 업데이트
const GOAL_AWARE_DEBATE_PROMPT = `
**Sleep Pattern Expert Debate - Round {{roundNumber}}**
**My Analysis**: SOL {{mySOL}}min (confidence: {{myConfidence}})
- Goal Achievement Rate: {{myGoalRate}}
- Goal Impact Assessment: {{myGoalImpact}}
**Other Experts**:
{{otherAnalyses}}
**Goal-Related Disagreements**:
{{goalDisagreements}}
As sleep pattern specialist, defend or revise considering goal adherence:
**Response Format** (JSON):
{
"revisedSOL": number,
"revisedConfidence": number,
"goalImpactReasoning": "goal adherence impact explanation",
"counterArguments": ["goal pattern argument 1", "sleep pattern argument 2"],
"supportingEvidence": ["goal data evidence", "sleep pattern evidence"],
"finalStance": "maintain/revise",
"reasoning": "Combined goal and sleep pattern explanation (max 50 words)"
}
Focus on goal adherence vs natural sleep patterns balance.
`;
6. 핵심 요인 식별 확장
6.1 목표 관련 요인 추가
async function identifyEnhancedKeyFactors(
sleepMetrics: SleepPatternMetrics,
goalMetrics: SleepGoalPatternMetrics,
seasonalFactors: string[],
anomalies: string[]
): Promise<string[]> {
const factors: string[] = [];
// 기존 수면 패턴 요인들...
// 신규 수면 목표 관련 요인들
if (goalMetrics.overallGoalAchievementRate > 0.8) {
factors.push('Excellent goal adherence supports SOL stability');
} else if (goalMetrics.overallGoalAchievementRate < 0.4) {
factors.push('Poor goal adherence may increase SOL variability');
}
if (goalMetrics.currentGoalStreak >= 7) {
factors.push(`${goalMetrics.currentGoalStreak}-day goal streak indicates strong routine`);
} else if (goalMetrics.currentGoalStreak === 0) {
factors.push('Recent goal adherence break may disrupt sleep onset');
}
if (goalMetrics.averageBedtimeGap > 30 || goalMetrics.averageWaketimeGap > 30) {
factors.push(`Significant goal-actual gap (${Math.round(goalMetrics.averageBedtimeGap + goalMetrics.averageWaketimeGap)/2}min) impacts rhythm`);
}
if (goalMetrics.goalAdherenceConsistency < 0.5) {
factors.push('Inconsistent goal adherence disrupts circadian stability');
}
return factors.slice(0, 5); // 최대 5개 요인
}
7. 성능 지표 및 모니터링
7.1 예측 정확도 지표
- 전체 예측 정확도: MAE, RMSE, ±15분 정확도
- 목표 달성률별 정확도: 높은/낮은 달성률 그룹별 분석
- 목표 일관성별 정확도: 일관성 높은/낮은 사용자 그룹별 분석
- 갭 크기별 정확도: 목표-실제 갭 크기에 따른 예측 성능
7.2 분석 품질 지표
interface GoalAwareAnalysisMetrics {
// 기존 메트릭들...
// 신규 목표 관련 메트릭들
goalDataCoverageRate: number; // 목표 데이터 존재율
goalAnalysisConfidenceBoost: number; // 목표 분석으로 인한 신뢰도 증가
goalPatternRecognitionRate: number; // 목표 패턴 인식 정확도
goalImpactPredictionAccuracy: number; // 목표 영향 예측 정확도
}
8. 테스트 시나리오
8.1 목표 달성률 테스트 케이스
- 높은 목표 달성률 (>80%): SOL 감소 효과 검증
- 낮은 목표 달성률 (<40%): SOL 증가 효과 검증
- 연속 목표 달성 (7일+): SOL 안정성 증가 검증
- 목표 달성 중단: SOL 변동성 증가 검증
8.2 목표-실제 갭 테스트 케이스
- 큰 갭 (30분+): SOL 증가 예측 검증
- 작은 갭 (<15분): SOL 안정성 검증
- 갭 변동성 높음: 예측 신뢰도 감소 검증
- 갭 일관성 높음: 예측 정확도 증가 검증
9. 배포 및 롤아웃 계획
9.1 단계적 배포
- Phase 1: 기존 분석 + 목표 데이터 수집 (신뢰도 변경 없음)
- Phase 2: 목표 기반 SOL 조정 활성화 (A/B 테스트)
- Phase 3: 목표 기반 신뢰도 조정 활성화
- Phase 4: 완전 통합 및 모니터링
9.2 성공 지표
- 전체 SOL 예측 정확도 10% 이상 향상
- 목표 달성률 높은 사용자군에서 15% 이상 정확도 향상
- 예측 신뢰도 점수 평균 0.1 이상 증가
10. 변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 1.0.0 | 2025-08-31 | bok@weltcorp.com | 최초 작성 (기본 수면 패턴 분석 명세) |
| 2.0.0 | 2025-09-08 | bok@weltcorp.com | 수면 목표 달성률 분석 기능 추가 - 목표 메트릭, 예측 알고리즘 개선, LLM 프롬프트 업데이트, 테스트 시나리오 정의 |