본문으로 건너뛰기

CRM Agent (환자참여케어연속성전문가) 사양서

1. Agent 개요

1.1 역할 정의

  • 공식명칭: Patient Engagement & Care Continuity Expert
  • 한글명칭: 환자참여케어연속성전문가
  • 약칭: CRM Agent
  • 핵심 역할: 환자 상담 기록과 케어 연속성 데이터를 분석하여 SOL 예측 정확도 향상

1.2 주요 기능

  1. 상담 기록 텍스트 분석: 환자의 주관적 수면 보고 추출 및 분석
  2. 치료 순응도 평가: 상담 참여도와 일정 준수율 정량화
  3. 데이터 품질 보정: 앱 이슈로 인한 데이터 누락 영향 평가
  4. 치료 진행도 추적: 시점별 개선 패턴 학습 및 예측

1.3 Chain of Debate 내 역할

  • 6개 전문가 에이전트 중 하나로 참여
  • 환자의 치료 참여 관점에서 SOL 예측에 기여
  • 다른 에이전트의 객관적 데이터 분석을 주관적 보고로 검증

2. 데이터 소스 및 분석 전략

2.1 활용 데이터베이스 테이블

2.1.1 user_follow_up_log 테이블

-- CRM 스키마의 핵심 테이블
model user_follow_up_log {
id Int -- 고유 ID
account_id Int? -- CRM 계정 ID
user_id Int? -- 사용자 ID
user_cycle_id Int? -- 치료주기 ID
log String? -- 상담 내용 또는 이벤트 설명
created_at DateTime? -- 생성 시간
meta Json? -- 메타데이터 (이벤트 타입별 추가 정보)
updated_at DateTime? -- 업데이트 시간
type String? -- 로그 타입
}

로그 타입별 활용 방안:

  • LOG: 상담 내용 텍스트 (수면 패턴, 약물 복용, 스트레스 요인)
  • FOLLOW_UP_STATUS_CHANGE: 상담 완료 상태 추적
  • CALL_SCHEDULE_CHANGE: 상담 일정 변경 추적
  • PATIENT_ISSUE: 앱 사용 문제 기록

2.1.2 user_issue 테이블

model user_issue {
id Int -- 고유 ID
user_cycle_id Int -- 치료주기 ID
created_by_id Int -- 작성자 ID
issue String -- 이슈 내용
status String? -- 이슈 상태
created_at DateTime? -- 생성 시간
updated_at DateTime? -- 업데이트 시간
nth_day_in_user_cycle Int? -- 치료주기 내 발생 일차
}

2.1.3 follow_up 테이블

model follow_up {
id Int -- 고유 ID
title String? -- 상담 제목
description String? -- 상담 설명
days_to_follow_up Int? -- 상담 예정 일차 (3, 7, 21일차 등)
created_at DateTime? -- 생성 시간
}

2.2 상담 기록 텍스트 마이닝 전략

2.2.1 수면 관련 키워드 추출

const SLEEP_KEYWORDS = {
// SOL 직접 관련
sleepLatency: ['잠들기', '잠이 들', '입면', '수면 시작', '한시간', '30분', '빨리'],

// 수면제 관련
medication: ['수면제', '수면유도제', '수면유지약', '약효', '복용', '처방'],

// 수면 품질
quality: ['깊은잠', '얕은잠', '자주 깸', '푹 자', '수면 도중'],

// 스트레스 요인
stressors: ['스트레스', '긴장', '불안', '걱정', '힘들'],

// 개선 지표
improvement: ['많이 달라짐', '개선', '좋아짐', '나아짐', '효과']
};

2.2.2 주관적 SOL 보고 추출

interface SubjectiveSOLReport {
reportedSOL: number | null; // 환자가 보고한 SOL (분)
medicationEffect: boolean; // 약물 효과 여부
stressImpact: 'high' | 'medium' | 'low'; // 스트레스 영향도
comparisonToPrevious: 'better' | 'same' | 'worse'; // 이전 대비 비교
}

2.3 치료 순응도 지표 계산

2.3.1 상담 완료율

interface ComplianceMetrics {
// 예정된 상담 대비 완료율
consultationCompletionRate: number; // 0-1 스케일

// 상담 참여 적극성 (내용 길이, 구체성)
engagementScore: number; // 0-100 점수

// 일정 준수율 (재스케줄링 빈도)
scheduleAdherenceRate: number; // 0-1 스케일

// 종합 순응도 점수
overallCompliance: number; // 0-100 점수
}

2.3.2 순응도 기반 신뢰도 조정

function adjustConfidenceByCompliance(
baseConfidence: number,
compliance: ComplianceMetrics
): number {
if (compliance.overallCompliance > 80) {
return baseConfidence * 1.2; // +20% 신뢰도
} else if (compliance.overallCompliance < 50) {
return baseConfidence * 0.85; // -15% 신뢰도
}
return baseConfidence;
}

2.4 데이터 품질 평가 및 보정

2.4.1 앱 이슈 영향도 분석

interface AppIssueImpact {
issueType: 'login' | 'update' | 'crash' | 'other';
affectedDays: number[]; // 영향받은 일차
dataQualityScore: number; // 0-1 스케일
resolution: 'resolved' | 'ongoing' | 'workaround';
}

2.4.2 데이터 누락 보정 전략

  • 이슈 발생 기간의 데이터 신뢰도 하향 조정
  • 이슈 해결 후 데이터 품질 회복 추적
  • 대체 데이터 소스 활용 (상담 기록의 주관적 보고)

3. 분석 알고리즘

3.1 상담 내용 감정 분석

interface EmotionAnalysis {
sentiment: 'positive' | 'neutral' | 'negative';
confidence: number;
emotionalTrends: {
day: number;
sentiment: number; // -1 to 1 스케일
}[];
}

3.2 약물 효과 패턴 분석

interface MedicationPattern {
medicationType: string[];
effectiveness: {
withMedication: number; // 평균 SOL (분)
withoutMedication: number; // 평균 SOL (분)
};
dependencyLevel: 'high' | 'medium' | 'low';
}

3.3 치료 진행도 추적

interface TreatmentProgress {
phase: 'early' | 'middle' | 'late'; // 3-7일, 8-14일, 15일+
improvementRate: number; // 개선 속도
plateauDetected: boolean; // 정체기 감지
predictedOutcome: 'excellent' | 'good' | 'fair' | 'poor';
}

4. Chain of Debate 통합

4.1 CRM Agent 의견 구조

interface CRMAgentOpinion {
// SOL 예측값
predictedSOL: {
value: number; // 분 단위
confidence: number; // 0-1 스케일
};

// 근거 데이터
evidence: {
subjectiveReports: SubjectiveSOLReport[];
complianceMetrics: ComplianceMetrics;
dataQuality: AppIssueImpact[];
treatmentProgress: TreatmentProgress;
};

// 다른 에이전트와의 일치도
agreementWithOthers: {
sleepLatencyAnalyst: number; // 0-1 스케일
psychologicalExpert: number;
cbtiExpert: number;
digitalEnvironment: number;
melatoninAnalyst: number;
};

// 핵심 인사이트
keyInsights: string[];
}

4.2 토론 참여 전략

  1. 초기 의견 제시: 상담 기록 기반 독립적 분석
  2. 타 에이전트 의견 검증: 주관적 보고와 객관적 데이터 비교
  3. 합의 도달: 불일치 영역 식별 및 조정
  4. 최종 의견: 통합된 예측값 제시

4.3 가중치 제공 기준

function calculateCRMWeight(data: CRMData): number {
let weight = 0.15; // 기본 가중치

// 상담 데이터 풍부도에 따른 조정
if (data.consultationCount > 3) weight += 0.05;
if (data.averageLogLength > 200) weight += 0.05;

// 순응도에 따른 조정
if (data.compliance > 0.8) weight += 0.1;

// 데이터 품질에 따른 조정
if (data.issueCount === 0) weight += 0.05;

return Math.min(weight, 0.4); // 최대 40%
}

5. 프롬프트 템플릿

5.1 CRM Agent 시스템 프롬프트

const CRM_AGENT_SYSTEM_PROMPT = `
당신은 SOL(Sleep Onset Latency) 예측을 위한 환자참여케어연속성전문가입니다.

## 역할
- 환자 상담 기록 분석을 통한 주관적 수면 보고 추출
- 치료 순응도 평가 및 예측 신뢰도 조정
- 데이터 품질 문제 식별 및 보정
- 다른 에이전트의 객관적 분석 검증

## 분석 대상 데이터
1. 상담 기록 (user_follow_up_log)
- 3일차, 7일차, 21일차 정기 상담 내용
- 수면제 복용 패턴 및 효과
- 스트레스 요인 및 생활 패턴

2. 치료 순응도 지표
- 상담 완료율
- 일정 준수율
- 참여 적극성

3. 데이터 품질
- 앱 사용 이슈
- 데이터 누락 기간
- 해결 상태

## 분석 방법
1. 텍스트에서 SOL 관련 키워드 추출
2. 주관적 보고와 객관적 데이터 비교
3. 감정 변화 추이 분석
4. 약물 효과 패턴 파악
5. 치료 진행도 평가

## 출력 형식
{
"predictedSOL": <number>,
"confidence": <0-1>,
"keyFindings": [<string>],
"complianceScore": <0-100>,
"dataQualityScore": <0-1>
}
`;

5.2 분석 요청 프롬프트 예시

const analysisPrompt = `
다음 환자의 상담 기록을 분석하여 SOL을 예측해주세요.

## 환자 정보
- 치료주기: Day ${dayIndex}
- 이전 SOL 평균: ${avgSOL}

## 상담 기록
${consultationLogs}

## 순응도 데이터
- 상담 완료율: ${completionRate}%
- 일정 준수율: ${adherenceRate}%

## 데이터 품질
- 앱 이슈: ${issueCount}
- 영향받은 기간: ${affectedDays}

위 정보를 종합하여 다음 예측 기간의 SOL을 추정하고,
예측의 근거를 구체적으로 제시해주세요.
`;

6. 구현 고려사항

6.1 데이터 접근 권한

  • CRM 스키마 읽기 권한 필요
  • 개인정보 마스킹 처리
  • GDPR/HIPAA 준수

6.2 성능 최적화

  • 상담 기록 캐싱
  • 배치 처리 지원
  • 비동기 분석 파이프라인

6.3 확장성

  • 다국어 상담 기록 지원
  • 새로운 상담 타입 추가 가능
  • 외부 CRM 시스템 연동 대비

7. 테스트 및 검증

7.1 단위 테스트

  • 키워드 추출 정확도
  • 순응도 계산 로직
  • 데이터 품질 평가

7.2 통합 테스트

  • 다른 에이전트와의 상호작용
  • Chain of Debate 참여
  • 최종 예측값 기여도

7.3 검증 지표

  • 주관적 보고와 실제 SOL 상관관계
  • 순응도와 치료 효과 상관관계
  • 데이터 품질 보정 효과

8. 향후 개선 방향

  1. NLP 고도화: 더 정교한 텍스트 분석 모델 적용
  2. 실시간 분석: 상담 중 실시간 피드백 제공
  3. 예측 모델 학습: 과거 데이터 기반 ML 모델 훈련
  4. 다차원 분석: 음성 톤, 대화 속도 등 추가 지표 활용