Skip to main content
인과 그래프를 만들면 안전망으로 쓸 수 있습니다. Agent가 낸 답을 모두 그래프에 대조해, 사용자가 보기 전에 모순을 잡죠.

무엇을 검사하나

Nora가 Agent 응답에서 사실 주장을 뽑아 그래프와 견줍니다.
  • 방향 주장 “A가 B를 일으킴”(엣지 구조에 대조).
  • 부호 주장 “A가 늘면 B가 늚”(엣지의 부호에 대조).
  • 크기 주장 “A는 200쯤”(변수의 알려진 범위에 대조).
  • 값 주장 “상태는 ‘error’“(이산 변수의 허용 값에 대조).

설정

  1. 인과 그래프를 배포합니다(개요 참고).
  2. Agent에 붙입니다. Agent 인스펙터 → Verification → Add graph 입니다.
  3. 심각도별 동작을 고릅니다.
    • 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의 최종 답을 검사합니다.
둘 다 인과 그래프를 쓰고 서로 보완합니다. 둘 다 켜면 “Agent가 나쁜 컨텍스트를 읽음” 과 “Agent가 좋은 컨텍스트에도 환각함” 을 다 잡습니다.

성능

검증은 답이 담은 주장 수에 따라 실행당 100~400ms를 더합니다. 처리량이 큰 Agent는 위험한 의도를 다루는 Agent에만 검증을 거는 걸 생각해 보세요.

언제 검증을 끄나

어떤 Agent는 정말 검증하면 안 됩니다. 창작 글쓰기, 브레인스토밍, 의견 프롬프트 같은 것들이죠. 그래프를 안 붙이거나, 모든 동작을 warn으로 두고 붙이세요(절대 막지 않고, 늘 트레이스에는 보입니다).