Skip to main content
Nora 의 인과 그래프에는 두 표면 이 있고 causal CLI 가 둘 다 커버합니다.
  • 폴더 기반 (paper-ver6 흐름) 문서 폴더에 그래프를 붙이고 트리플을 staged 로 추출한 뒤 live 로 승인합니다. 코퍼스에서 큐레이션한 권위 있는 그래프에 맞습니다.
  • 인스턴스 기반 (캔버스 모양 모델) out_kg / out_causal_graph 블록이 있는 파이프라인이 실행되면 그래프 인스턴스를 자동으로 만들고, CLI 로 조회·재연결·감사하거나 엣지를 원자적으로 편집합니다.
둘 다 Pearl DAG(스펙 v3.1), 즉 변수·causes 엣지·backdoor · adjustment-set 분석을 그대로 지킵니다.

명령 그룹

  • 폴더 추출: causal get, causal settings show/set, causal bootstrap, causal refresh, causal approve, causal reject
  • 인스턴스 CRUD: causal graphs list/get/upsert/delete
  • 연결: causal bindings list/add/remove
  • 근거: causal evidence node/graph
  • 엣지 (원자적): causal edges add/remove/update
  • 자동 제안: causal staged-proposals <graph-id>
폴더 식별자는 문서 폴더 태그(예: billing, product-docs), 그래프 인스턴스 id 는 kg_<uuid> 입니다.

causal get

전체 그래프 출력:
  • live_nodes와 live_edges 검증과 추론에 쓰임
  • staged_nodes와 staged_edges 리뷰 대기
구조화 출력은 --json을 붙입니다. 흔한 빠른 점검입니다:

causal settings show / set

설정과 스테이지 수를 표시합니다.
넘긴 플래그만 바뀝니다.
  • --connection <kind:id> 그래프를 특정 데이터 소스에 잇기(예: documents_folder:billing)
  • --retrieval-preset <preset-id> 추출이 컨텍스트를 끌어올 때 쓰는 프리셋
  • --dedup-policy <policy> 중복 처리 방식(merge, keep_newer, keep_older, keep_all)
  • --auto-restage true|false 연결된 소스가 바뀌면 자동으로 다시 부트스트랩

causal bootstrap

폴더의 모든 문서에서 인과 트리플을 STAGED로 추출합니다. approve할 때까지 LIVE로는 아무것도 가지 않습니다.
  • --model <m> 추출에 쓰는 모델. 워크스페이스 기본이 기본
부트스트랩은 멱등입니다. 이미 채워진 폴더에 다시 돌려도 LIVE 데이터를 잃지 않습니다. 재추출이 새 STAGED 줄을 만들고 기존 LIVE는 그대로입니다. 새 폴더는 bootstrap → 앱에서 STAGED 영역 리뷰 → 좋은 것 승인 순입니다. 기존 폴더는 refresh가 대개 원하는 것입니다.

causal refresh

델타만 다시 계산합니다. 마지막 부트스트랩 이후 더해진 새 문서, 바뀐 기존 문서입니다. 전체 부트스트랩보다 쌉니다. Refresh 출력은 STAGED에 쌓입니다. 기존 LIVE는 그대로입니다. --auto-restage가 안 맞으면 스케줄로(또는 문서 변경으로 걸어) 돌립니다.

causal approve / reject

  • --ids <id,…> 특정 스테이지 줄 ID. 생략하면 모든 STAGED에 적용
approve 뒤에는 이렇게 됩니다:
  • 줄이 LIVE로 이동합니다
  • 검증이 바로 그것들을 쓰기 시작합니다
  • STAGED에는 이 명령이 안 건드린 것이 여전히 남습니다
reject는 올리지 않고 줄을 버립니다. 다음 부트스트랩이나 refresh로 다시 만들 수 있습니다.

레시피

CLI로 폴더를 처음부터 끝까지 부트스트랩

CI: STAGED가 너무 크면 실패

무제한 백로그를 막습니다:

사람이 검토한 뒤 선택해 승인

리뷰 흐름이 외부 시스템에서 줄 ID로 승인 표시한다고 하면, 한꺼번에 승인합니다:

감사용 LIVE 그래프 스냅샷

인스턴스 CRUD (graphs)

out_kg / out_causal_graph 블록이 있는 파이프라인이 실행되면 그래프 인스턴스를 자동으로 만듭니다. 조회·이름 변경·삭제에 이 verb 들을 씁니다.
삭제는 영구적입니다. 붙어 있던 청크는 kg_instance_id 참조를 그대로 유지해 orphan 이 됩니다. 매달린 참조가 싫으면 먼저 청크부터 정리하세요. --lifecycle 은 JSON 이고 선택이라, 안 넘기면 서버 기본값을 유지합니다.

바인딩 (bindings)

어느 파이프라인이 어느 그래프 인스턴스에 떨어지는지 봅니다. out_kg 블록이 있는 파이프라인이 실행되면 자동으로 쓰이는 테이블에 대해 수동 연결하는 verb 들입니다.

근거 (evidence)

노드(또는 그래프 전체) 를 어떤 청크가 뒷받침하는지 보는 reader view 입니다.
감사(“그래프가 이걸 왜 결정했지?”) 와 orphan 청크(지운 노드에 붙어 있는 청크) 를 찾아 재연결·삭제할 때 좋습니다.

원자적 엣지 CRUD (edges)

surfaces blob 전체를 보내지 않고 엣지 하나만 read/modify/write 합니다. precedence 술어 계열(defers_to / overrides / …) 은 스펙 docs/mcp/temporal-retrieval-setup.md §G4 를 참고하세요.
미등록 술어도 받지만 응답에 predicateWarning: true 로 표시됩니다. 화이트리스트 이행 중에도 커스텀 어휘가 계속 굴러갑니다.

자동 제안 (staged-proposals)

인스턴스 안의 STAGED(미검수) 노드·엣지를 나열합니다. 보통 propose_hierarchy=true 로 돈 Foundry out_causal_graph 의 자동 제안입니다.
승인·거절은 위 폴더 스코프 causal approve / reject 로 합니다.

STAGED / LIVE 모델

인과 추출은 최선의 제안이라 두 스테이지가 있습니다. 모델이 제안하고 사람이 확정합니다. 폴더 기반 approve / reject 가 대량 결정, edges 가 엣지 단위 정정, 앱의 그래프 캔버스가 자유형 손편집을 담당합니다.

관련