무엇을 검사하나
Nora가 Agent 응답에서 사실 주장을 뽑아 그래프와 견줍니다.- 방향 주장 “A가 B를 일으킴”(엣지 구조에 대조).
- 부호 주장 “A가 늘면 B가 늚”(엣지의 부호에 대조).
- 크기 주장 “A는 200쯤”(변수의 알려진 범위에 대조).
- 값 주장 “상태는 ‘error’“(이산 변수의 허용 값에 대조).
설정
- 인과 그래프를 배포합니다(개요 참고).
- Agent에 붙입니다. Agent 인스펙터 → Verification → Add graph 입니다.
- 심각도별 동작을 고릅니다.
- Warn 답변에 경고 필드를 답니다. 사용자는 그래도 봅니다.
- Block 답변을 멈추고 보내지 않습니다.
- Rewrite 모순을 짚어 주고 Agent에게 다시 답할 기회를 한 번 줍니다.
warn, 강한 모순은 block 입니다.
심각도
- Hard contradiction Agent는 A→B 라는데 그래프는 B→A 입니다. 또는 Agent가 변수 범위 밖 값을 주장합니다.
- Soft contradiction Agent가 그래프가 확인하진 않는(반박도 안 하는) 부호를 주장합니다.
- Consistent 다 맞습니다.
- Uncheckable 응답의 어떤 주장도 그래프의 무엇과 안 맞습니다.
트레이스의 검증
검증을 켠 실행마다 트레이스에 Verification 패널이 뜹니다.- 답에서 뽑은 주장 각각.
- 맞는지, 부딪히는지, 그래프에 없는지.
- 검사에 쓴 그래프 엣지·변수.
- 취한 동작(warn / block / rewrite).
Rewrite 루프
rewrite로 두면 Agent가 이런 시스템 메시지와 함께 다음 턴을 받습니다.이전 답변에서 A→B라고 했습니다. 도메인 그래프에 따르면 B→A 입니다. 다시 답해 주세요.Agent가 새 응답을 내고, 검증을 다시 돕니다. block으로 넘어가기 전에 rewrite를 최대 3번 시도합니다(조정 가능).
검증과 리트리벌 그라운딩
- 그라운딩(리트리벌 그라운딩)은 Agent에 닿기 전 리트리벌한 청크를 검사합니다.
- 검증은 사용자에게 닿기 전 Agent의 최종 답을 검사합니다.
성능
검증은 답이 담은 주장 수에 따라 실행당 100~400ms를 더합니다. 처리량이 큰 Agent는 위험한 의도를 다루는 Agent에만 검증을 거는 걸 생각해 보세요.언제 검증을 끄나
어떤 Agent는 정말 검증하면 안 됩니다. 창작 글쓰기, 브레인스토밍, 의견 프롬프트 같은 것들이죠. 그래프를 안 붙이거나, 모든 동작을warn으로 두고 붙이세요(절대 막지 않고, 늘 트레이스에는 보입니다).