feat: Self-Evolving Digital Employee OS P0~P6 + 캘린더 충돌 게이트
신뢰성 코어 (P1~P2): - Requirement Graph: 업무 유형(회의록/시장조사/업무조사/일정) 필수 요소 주입 + 커버리지 hook - Confidence Engine(0~100 결정론적) / Escalation Engine(검토 요청) / Epistemic Guard(모름·추정·확실 3분류) - Provenance: citationTrace 에 출처 수정일·오래됨 경고 - Critic Loop: 문제 신호 turn 만 LLM 검수 1회 + 보완 카드 성장 루프 (P3): - Gap Detector(Requirement-Knowledge) / Need Engine(30/25/20/15/10 공식) / Knowledge Inventory - Learning Queue(proposed 전용 병합 — 승인은 사람만) / Decision Journal / Reflection 기록 - 반복 누락 요소(3회+)는 다음 turn 체크리스트에 자동 강조 (T5 루프) 지식 운영 (P4) + 기억 (P5) + 학습 실행 (P6): - Knowledge Validation + Belief Revision(중복 reject·충돌 시 update/add 권고) - Knowledge Decay(분야별 반감기 감사) / Knowledge Debt(blocked x impact) - Organizational Memory(.astra/organization.md 상시 주입) - Research Agent(approved 큐 -> 조사 브리프+추정 라벨 초안+Validation 게이트 -> proposals/) - Skill Score(전/후반 추세) + Success Pattern DB(전요소충족+확신도90+ 자동 적재) 병렬 트랙: - 캘린더 충돌 게이트: conflictCheck + 구조화 이벤트 캐시 + create_calendar_event 차단(force 는 사용자 승인 후) - Task Eval Harness: 회의록 골든셋 자동 채점 명령 + 성장 리포트/학습 큐/노후 점검 명령 신규 모듈 17종(src/intelligence/), VS Code 명령 5종, 설정 11종, 테스트 +89건(전체 508 통과). 설계 문서: docs/SELF_EVOLVING_OS_MASTER_PLAN.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Epistemic Guard — 모름/추정/확실 3분류 강제 시스템 프롬프트 블록.
|
||||
*
|
||||
* Self-Evolving OS 마스터 플랜 Phase 2 / Track 1-3 (Anti-Hallucination Layer).
|
||||
* 신뢰 조건 T1 "모르면 모른다고 말한다" 담당.
|
||||
*
|
||||
* CoVe(coveBlock) 와의 분업:
|
||||
* - CoVe: 검색 *출처가 있을 때* 주장-출처 매핑을 검증 (그라운딩 점검)
|
||||
* - Epistemic Guard: 출처 유무와 *무관하게* 모든 주장의 인식론적 등급 표시를 강제,
|
||||
* 특히 검색 근거가 *없는* turn 에서 단정 금지 + 역질문 우선 지시
|
||||
*
|
||||
* 즉 CoVe 가 못 덮는 "검색 결과 0건인데 모델이 그럴듯하게 지어내는" 케이스가
|
||||
* 이 블록의 주 타깃. 검색 근거가 약할수록 지시가 강해진다.
|
||||
*/
|
||||
|
||||
export interface EpistemicGuardSignals {
|
||||
/** 선택된 검색 청크 수 (brain-trace 제외). */
|
||||
chunkCount: number;
|
||||
/** 업무 유형 감지됨 (Requirement Graph) — 업무 산출물은 더 엄격하게. */
|
||||
taskDetected: boolean;
|
||||
}
|
||||
|
||||
export function buildEpistemicGuardBlock(signals: EpistemicGuardSignals): string {
|
||||
const lines: string[] = [];
|
||||
lines.push('[EPISTEMIC GUARD]');
|
||||
lines.push('모든 사실성 주장은 다음 3등급 중 하나로 인식하고, 등급이 낮으면 표시할 것:');
|
||||
lines.push('');
|
||||
lines.push('- **확실** — 검색 출처 또는 명백한 사실이 직접 지지. 표시 불필요.');
|
||||
lines.push('- **추정** — 근거가 간접적이거나 일반화. 문장에 "~로 추정", "일반적으로" 명시.');
|
||||
lines.push('- **모름 / 확인 필요** — 근거 없음. *지어내지 말고* "(확인 필요)" 표시 또는 솔직히 모른다고 말할 것.');
|
||||
lines.push('');
|
||||
lines.push('금지: 근거 없는 수치·날짜·고유명사·인용을 사실처럼 제시하는 것. 모름을 인정하는 답변이 그럴듯한 오답보다 항상 낫다.');
|
||||
|
||||
if (signals.chunkCount === 0) {
|
||||
lines.push('');
|
||||
lines.push('⚠️ 이번 턴은 *검색 근거가 없음* — 모델 일반 지식만으로 답하는 상태다.');
|
||||
lines.push('- 구체적 수치·최신 정보·사용자 고유 정보(일정, 과거 회의 등)는 단정하지 말 것.');
|
||||
if (signals.taskDetected) {
|
||||
lines.push('- 업무 산출물 요청인데 근거가 없으므로, 필요한 원자료(회의 메모, 조사 범위 등)를 먼저 *질문*하는 것을 우선 고려할 것.');
|
||||
}
|
||||
}
|
||||
|
||||
lines.push('[/EPISTEMIC GUARD]');
|
||||
return lines.join('\n');
|
||||
}
|
||||
Reference in New Issue
Block a user