04-rules-conflict-resolution
Dec 7, 2025
Conflict Resolution
동일한 정보에 대해 충돌하는 값이 있을 때 어떤 것을 사용할지 결정하는 규칙입니다.
왜 충돌이 발생하는가?
시나리오 1: 정보 업데이트
시나리오 2: 정보 불일치
시나리오 3: 다중 소스
우선순위 체계
SourceType 우선순위
순위 | SourceType | 설명 | 신뢰도 |
|---|---|---|---|
1 | USER_INPUT | 사용자가 직접 입력 | 최고 |
2 | BOOTSTRAPPED | 초기 데이터 수집 (검증됨) | 높음 |
3 | TOOL_OUTPUT | MCP 도구가 생성 | 중간 |
4 | REALTIME | 실시간 수집 (검증 시간 없음) | 낮음 |
왜 이 순서인가?
USER_INPUT이 최우선:
사용자가 명시적으로 입력 = 의도적
"시스템이 틀렸어, 이게 맞아"
BOOTSTRAPPED가 두 번째:
초기 설정 시 검증 과정 거침
일괄 처리로 품질 관리 가능
REALTIME이 최하위:
즉각적으로 처리되어 검증 시간 부족
잠재적 오류 가능성 높음
충돌 해결 알고리즘
동일 우선순위 해결
SourceType이 같을 때 추가 기준:
2-1. 시간 기반 (Time-based)
적용 상황: 정보 업데이트 (미팅 시간 변경 등)
2-2. 신뢰도 기반 (Confidence-based)
적용 상황: LLM 추출 결과 비교
2-3. 중요도 기반 (Importance-based)
적용 상황: 중요한 정보가 덜 중요한 정보를 덮어씀
2-4. 병합 (Merge)
적용 상황: 상호 보완적인 정보
필드별 해결 전략
Person.organization
전략: 최신 정보 사용 + 이전 정보 기록
Memory.content
전략: 버전 관리 (UPDATE 관계)
Entity.aliases
전략: 병합
CONTRADICTS 관계 활용
해결 불가능한 충돌은 명시적으로 표시:
충돌 판단 기준
실제 예시
예시 1: 미팅 시간 변경
예시 2: 사용자 수정
예시 3: 실시간 vs 초기
우선순위 요약 다이어그램
다음 문서
→ Importance Scoring: 중요도 점수
→ BaseNode: SourceType 정의