v2

latestOpenAPI 3.1.02026-08-0382170235.8 KB
edges
edges

Detect edges between facts and the Constitution using LLM

Analyse the supplied facts against the POT's Constitutional axioms to detect typed epistemic edgesSUPPORTS, CONTRADICTS, REFINES, DERIVES_FROM, IS_PART_OF — using an LLM with structured output. Each edge carries a confidence-weighted relationship that drives downstream POT Score propagation.

Scope of this endpoint: detection runs across facts_to_analyze × constitution_facts (the workhorse mode that catches contradictions against canonical truths). It does NOT currently run fact↔fact detection among the supplied facts themselves — that's a separate, on-demand operation (see roadmap M16 for batch intra-fact detection).

Request shape:

  • fact_ids — facts to evaluate against the Constitution (required).
  • include_constitution=true (default) — load and pair against the POT's axioms. Setting false results in zero pairs analysed.
  • auto_save=true — persist detected edges (deduplicated by (pot_id, from_id, to_id, type)) and trigger POT Score propagation.
  • min_weight (default 0.2) — filter low-confidence detections.

Cost model: roughly len(fact_ids) × len(constitution_facts) LLM pair-evaluations (linear in the number of axioms — Constitutions are typically 3–10 facts, so this is cheap).

Contradictions are flagged, never auto-resolved. Detected CONTRADICTS edges land in the curator review queue with priority based on what was contradicted (Constitution = critical; high-score fact = high; standard = normal).

post/pots/{pot_id}/edges/detect

Path parameters

pot_idstring uuid required

Request body

fact_idsstring[] required

Fact IDs to analyze for relationships

include_constitutionboolean

Include constitution axioms in analysis

auto_saveboolean

Persist detected edges automatically

min_weightnumber

Minimum weight threshold for edges

batch_sizeinteger

Facts per batch LLM call for edge detection. Overrides server default (edge_detection_batch_size setting).

Response

Edges detected; included in the response with metadata