§

Radar — Forskningsintelligens

Kan en provenansmotor omvandla informationsbevakning till strukturerad, utforskningsbar kunskap?

Aktiv utveckling LLM-orkestreringvektorsökningserendipitetsdetektionkunskapsinfrastruktur
— — — — —

Aktiv utveckling | LLM-orkestrering, vektorsökning, serendipitetsdetektion, caching


Scenariot

Katarina leder strategi på ett medelstort svenskt konsultbolag. Hon bevakar regulatoriska förändringar, teknikskiften och forskning i angränsande fält — inte bara för vad som händer, utan för kopplingar som ingen letar efter. Förra månaden visade sig en artikel om kaskadfel i immunsystem vara direkt relevant för en kunds problem med leveranskedjans resiliens. Den kopplingen var slumpartad — hon råkade läsa båda artiklarna samma vecka.

Tänk om serendipitet kunde vara systematisk?


Två lager, inte ett

Radar är inte en nyhetsbrevsgenerator. Den har två fundamentalt olika lager:

Radar tvålagerarkitektur — insamling och analys

COLLECTION LAYER (continuous, growing)
═══════════════════════════════════════════════════════════════

  Sources ──→ fetch ──→ normalize ──→ embed ──→ update index
  (RSS, web,
   APIs, HN)
              │                        │
              │  source snapshots      │  vector embeddings
              │  (immutable artifacts) │  (versioned)
              │                        │
              ▼                        ▼
         Source Corpus            Vector Index
         (growing over time)     (LanceDB, file-based)
         sha256:... per doc      sha256:... per version


ANALYSIS LAYER (triggered, snapshot-based, replayable)
═══════════════════════════════════════════════════════════════

  Corpus snapshot ──→ classify ──→ cluster ──→ cross-domain ──→ synthesize ──→ briefing
  (immutable)                                  search
                        │                        │                │
                        │ LLM relevance         │ unexpected     │ LLM writes
                        │ scores                │ proximities    │ the briefing
                        │ DECISION RECORDED     │ found          │ DECISION RECORDED
                        │                       │                │
                        ▼                       ▼                ▼
                   "Is this relevant?"    "Why are these     "What does this
                   "What domain is it?"    close together?"    pattern mean?"

Insamlingslagret körs kontinuerligt i discovery mode — nya källor hittas, hämtas, normaliseras och bäddas in i ett växande vektorindex. Varje dokument får en permanent, unik identitet. Indexet är en versionerad artefakt: varje uppdatering producerar en ny version med en ny hash.

Analyslagret körs på begäran — det tar en immutabel ögonblicksbild av det aktuella corpuset och producerar en briefing. Detta lager är fullt återspelningsbart: samma corpus-ögonblicksbild + samma beslut = samma briefing.

Separationen håller analysen ren och testbar medan insamlingen hanterar den stökiga verkligheten hos det öppna webben.


Vad som gör Radar till mer än en flödesläsare

Domänöverskridande kopplingssökning

Varje dokument bäddas in i ett gemensamt semantiskt rum (vektorindexet). Dokument från olika domäner som är oväntat nära varandra — hög semantisk likhet trots olika källkategorier — flaggas som potentiella kopplingar.

  Domain A: EU regulation                Domain B: Systems theory
  ──────────────────────                 ────────────────────────
  "EUDR requires tracing commodities     "Cascade failure propagation
   through every aggregation point        in complex networks follows
   in the supply chain"                   power-law distributions with
                                          critical node identification"
                        │                          │
                        └──── similarity: 0.84 ────┘
                              (unexpectedly high for
                               cross-domain pair)


                        ┌────────────────────────────┐
                        │  Serendipity candidate     │
                        │                            │
                        │  LLM evaluates: "Supply    │  DECISION RECORDED
                        │  chain traceability under  │
                        │  EUDR is structurally      │
                        │  similar to critical node  │
                        │  identification in cascade │
                        │  failure analysis. The     │
                        │  methods from network      │
                        │  science could identify    │
                        │  which aggregation points  │
                        │  are highest risk for      │
                        │  traceability loss."       │
                        └────────────────────────────┘

Inbäddningen är deterministisk (samma dokument + samma modell = samma vektor, återanvänds). Den domänöverskridande sökningen är deterministisk (nearest-neighbor-sökning mot en specifik indexversion). LLM-utvärderingen av huruvida kopplingen är substantiell är en bedömning — den fångas som ett beslut.

Historisk sökning

Corpuset ackumuleras över tid. Varje dokument har en permanent identitet. En fråga som “har någon skrivit om kaskadfel i leveranskedjor tidigare?” blir en vektorsökning mot hela det historiska corpuset — inte bara den här veckans källor, utan allt som någonsin samlats in.

Serendipitet som arkitektur

Vannevar Bush beskrev en enhet — Memex — som skulle lagra en forskares bibliotek och låta dem skapa associativa spår genom det. Radar delar en konceptuell tråd: ett växande corpus med permanenta dokumentidentiteter och associationsspår genom det. Men där Bush föreställde sig manuellt spårbyggande, är Radars spår beräknade — DAG:en av operationer som kopplar källor till kopplingar till briefingar. Besluten längs spåret registreras: varför fann systemet just den här kopplingen intressant? Den bedömningen bevaras. Spåret är återspelningsbart och forkbart.


En konkret vecka

Måndag — insamling körs över natten:

45 källor bevakade. 12 har nytt innehåll. 33 oförändrade → normalisering cachad. De 12 nya dokumenten bäddas in och läggs till i vektorindexet (indexversion v47 → v48).

Tisdag — analys triggas:

Katarina triggar en analyskörning mot corpus-ögonblicksbild v48.

Run #23 — Tuesday analysis
──────────────────────────

  classify:  38 documents scored for relevance (12 new + 26 from last week still in window)
             LLM decisions recorded for each

  cluster:   4 clusters formed
             A: EU regulatory simplification (5 docs, avg relevance 0.91)
             B: Battery supply chain developments (3 docs, avg 0.87)
             C: Swedish innovation funding (2 docs, avg 0.82)
             D: Process optimization methods (3 docs, avg 0.76)

  cross-domain search:
             2 serendipity candidates found
             ✓ "Network cascade analysis" × "EUDR aggregation traceability" (0.84)
               → LLM: substantive connection (decision recorded)
             ✗ "Enzyme kinetics paper" × "Queue theory in logistics" (0.79)
               → LLM: superficial similarity, different mechanisms (decision recorded)

  synthesize: briefing generated with 4 cluster summaries + 1 serendipity finding
              LLM decision recorded (model, prompt hash, full response)

  Cost: $0.18 (classification: $0.08, serendipity eval: $0.04, synthesis: $0.06)
  Cached ops: 33 normalizations, 26 classifications from previous run

Torsdag — Katarina vill utforska:

“Tänk om vi letade efter kopplingar specifikt mellan hållbarhetsregler och operationsanalys?”

Hon forkar körning #23 vid cross-domain search-steget och ändrar sökparametrarna för att fokusera på dessa två domäner. Allt uppströms (insamling, klassificering, klustring) är cachat. Bara den domänöverskridande sökningen och syntesen körs om.

Kostnad: $0,07. Tid: 12 sekunder.

Forken hittar tre ytterligare kopplingar som den breda sökningen missade — snävare men mer relevanta för ett specifikt kundprojekt.


Vad du kan fråga efteråt

FrågaHur den besvaras
”Varför lyfte briefingen fram kopplingen till kaskadfel?”Spåra: briefing (sha256:9f8e) ← synthesis op ← serendipitetskandidat ← domänöverskridande sökning hittade likhet 0,84 mellan dok sha256:a1b2 (EUDR-artikel) och dok sha256:c3d4 (nätverksteoriartikel) ← LLM utvärderade som substantiell (beslut sha256:7d2f, fullständigt resonemang bevarat)
“Vad sa modellen egentligen om enzymkinetik-kopplingen?”Beslutspost decisions/serendipity_eval_2.json: prompten inkluderade båda abstracten, modellen svarade “ytlig likhet — båda beskriver hastighetsberoende processer men mekanismerna är fundamentalt olika”, poängsatte 0,31 för substantivitet
”Har något om kaskadfel i leveranskedjor dykt upp tidigare?”Historisk sökning mot hela corpuset (alla versioner): returnerar 3 tidigare dokument från månader tillbaka som låg under relevanströskeln då men nu är kontextuellt relevanta givet den nya EUDR-kopplingen
”Tänk om vi hade använt en bredare likhetströskel för serendipitet?”Forka vid domänöverskridande sökning, sänk tröskeln från 0,75 till 0,60. Fler kandidater dyker upp. LLM utvärderar varje (nya beslut registreras). Jämför: vilka ytterligare kopplingar är substantiella?
”Hur har vår bevakning av batterireglering utvecklats de senaste 6 månaderna?”Sök i corpuset: alla dokument taggade “battery regulation” över alla insamlingskörningar, sorterade efter tid. Vektorindexets versioner är alla förseglade artefakter — kunskapsbasens utveckling är i sig ett artefaktspår.

Före och efter

Idag: Katarina läser källor manuellt. Kopplingar är slumpmässiga — hon märker dem när hon råkar läsa två relaterade saker nära inpå varandra. Briefingar skrivs ur minnet. Nästa vecka: börja om från noll. Den institutionella kunskapen finns i Katarinas huvud.

Med Radar: Insamlingslagret bygger ett växande, sökbart corpus med permanenta dokumentidentiteter. Analyslagret hittar kopplingar systematiskt — inklusive domänöverskridande sådana som ingen frågade efter. Varje koppling spåras till specifika källor via specifika modellbedömningar. Briefingar är återspelningsbara och forkbara. När Katarina åker på semester försvinner inte systemets kunskap med henne — den finns i corpuset, beslutsposterna och händelseloggarna.

Den serendipitösa kopplingen mellan immunsystemets kaskadmekanismer och leveranskedjans resiliens? Den hade hittats automatiskt — för att “oväntat nära i semantiskt rum, från olika domäner” är exakt vad den domänöverskridande sökningen beräknar.


Söker omvärldsbevakare och strategiteam intresserade av provenansbaserad kunskapsinfrastruktur. [Kontakt ->]

— — — — —