# Bedriftsdata klare for AI-agenter

En AI-agent svarer ut fra det den når. I de fleste bedrifter er svaret på et
konkret spørsmål — hva har vi solgt til denne kunden, hva står fortsatt åpent,
hvilken kontrakt står det i — spredt over et CRM, et ERP, en delt disk, noen
innbokser og et regneark bare én person holder liv i. Vi samler dataene på ett
sted en agent kan lese, gjør hvert faktum entydig, avgjør hvem som får se hva, og
holder det slik ved hver innlasting. Det er arbeidet som kommer før agenten, og
det avgjør hvor god agenten kan bli.

## Samlet: ett sted en agent kan nå

Vi bygger [pipelinene](/nb/glossary/#pipeline) som knytter systemene dine
sammen: [ETL](/nb/glossary/#etl)-jobber som kjører etter tidsplan, laster inn
bare det som er endret og melder fra om det de hoppet over. Alt havner i en
[database](/nb/glossary/#database) der [skjemaet](/nb/glossary/#schema) bruker
virksomhetens egne ord — kunder, ordrer, fartøy, kontrakter, saker. Gamle
PDF-er, skanninger og e-postarkiver gjøres om til søkbar tekst med kilden lagret
ved siden av, slik at de kan finnes og ikke bare oppbevares. Agenten når alt
sammen gjennom én dokumentert inngang: en MCP-server eller et
[API](/nb/glossary/#api), aldri en kopi av databasen på noens bærbare.

## Renset: én kunde, ikke fem

Den samme kunden er som regel registrert på fem måter i fem systemer, og en
agent som finner to versjoner av samme faktum, svarer med versjonen den leste
sist. Vi avgjør sammen med deg hvilket system som er sannhetskilden for hvert
faktum, slår sammen duplikater etter regler du kan lese, og lar reglene kjøre
videre, så et nytt duplikat fanges ved neste innlasting og ikke ved neste
revisjon. Datatyper og skranker i databasen avviser en ugyldig rad i stedet for
å lagre den, hver kolonne er dokumentert med hva den betyr, og hver
[migrering](/nb/glossary/#migration) er versjonert og sjekket, så skjemaet en
agent leser, er det samme som er satt i drift.

## Tilgangsstyrt: hver agent ser det brukeren får se

En agent som kan lese alt, er en lekkasje med vennlig stemme. Reglene hører
hjemme i dataene, ikke i prompten: roller i databasen
([RBAC](/nb/glossary/#rbac)), kun lesetilgang som standard, regler på radnivå
der én kunde aldri får se en annens data, og personopplysninger holdt utenfor
rekkevidde med mindre oppgaven trenger dem — slik GDPR også krever. Agenten
handler med brukerens [rettigheter](/nb/glossary/#privilege), aldri med en
administrators, og hvert oppslag [logges](/nb/glossary/#logging) med hvem det
ble gjort for. Hvordan vi låser selve agentene, står på
[en egen side](/nb/ai-security/).

## Hvert svar kan spores til kilden

Et svar hentet fra bedriftsdata er verdt det kilden er verdt, så kilden følger
med. Hver rad tar vare på hvor og når den kom inn: systemet, innlastingen, filen
og siden. En agent kan vise til posten bak et tall, og et menneske kan åpne den.
En innlasting som hoppet over rader, sier hvor mange og hvorfor i stedet for å
melde at alt gikk bra, og et tall som viser seg å være feil, kan spores rett til
innlastingen som hentet det inn, uten en uke med gjetting. Det er den samme
regelen vår egen rapportering bygger på: et tall skrives aldri ut med mindre
kjøringen faktisk målte det.

## Arbeidet bak det

Hver påstand på denne siden er en metode vi har brukt, og hver av dem er
dokumentert. Vi
[gjorde en geografisk datapipeline 50 ganger raskere](/nb/portfolio/made-a-geographical-data-pipeline-50x-faster/)
ved å rette opp SQL-en og datamodellen, og
[designet og drev seks ETL- og ELT-pipelines](/nb/portfolio/designed-and-ran-6-etl-elt-pipelines/)
på tvers av BigQuery, MS SQL og [PostgreSQL](/nb/glossary/#postgresql). Vi
[modellerte en hel bransje i 348 tabeller fordelt på 34 skjemaer](/nb/portfolio/modeled-348-tables-across-34-postgres-schemas/)
og holdt skjemaet på stell
[gjennom 1 022 migreringer bak en sjekk for skjemaavvik](/nb/portfolio/1022-migrations-behind-a-schema-drift-gate/).
Vi [genererte 495 sider fra en SQLite-eksport med kun lesetilgang](/nb/portfolio/generated-495-pages-from-a-sqlite-export/)
og [erstattet 963 strukturerte datablokker med én lenket graf](/nb/portfolio/replaced-963-metadata-blocks-with-one-graph/)
— grafen er det første en agent leser på dette nettstedet.

## Slik foregår et oppdrag

Det begynner med et kart, laget kun med lesetilgang: hvilke systemer som har
hva, hvem som eier hvert av dem, og hvilke spørsmål en agent bør kunne svare på.
Så tar vi det ene spørsmålet som betyr mest, og bygger veien for det fra ende
til ende — kildene, rensingen, tilgangene og inngangen — med sjekker som stopper
en innlasting når noe i dataene ikke stemmer. Så neste spørsmål. Alt ligger i
din infrastruktur og ditt repo og går gjennom din egen kodegjennomgang, og
agentene som leser det, kan være [bygd for din bransje](/nb/ai-agents/) eller
de du allerede bruker. Det kjøpes som resten av arbeidet vårt, på vilkårene i
[hva det koster](/nb/what-it-costs/).

Ligger svarene folkene dine trenger, på flere steder enn noen kan ramse opp, så
[si hvor dataene dine ligger](/nb/contact/) *(vi svarer samme dag)*.

<https://engineer.company/nb/ai-data/>
