Hop til hovedindhold

Systembeskrivelse for AgentBase

FeltVærdi
DokumenttitelSystembeskrivelse for AgentBase
Version1.9
Senest opdateret2026-09-09
Dokumentejersyv.ai (kontakt: mads@syv.ai)
ReviewfrekvensMindst én gang årligt og ved væsentlige ændringer i platformen, datahåndtering eller risikobillede

Dette dokument er udarbejdet med henblik på at opfylde dokumentationskravene i Europa-Parlamentets og Rådets forordning (EU) 2024/1689 om kunstig intelligens (AI-forordningen), særligt artikel 11 og bilag IV. Dokumentet beskriver AgentBase som AI-system, herunder formål, arkitektur, datahåndtering, risikostyring, menneskeligt tilsyn, gennemsigtighed og logning.

Beskrivelsen er den generelle systembeskrivelse for selve platformen. Den enkelte agent eller app, som bygges på AgentBase, kan i sig selv udgøre et AI-system, og det er den pågældende udvikler/idriftsætter, der er ansvarlig for at supplere denne systembeskrivelse med en specifik beskrivelse af det færdige anvendelsestilfælde.

1. Generel beskrivelse af AI-systemet

1.1 Identifikation

FeltVærdi
Systemets navnAgentBase
Udbydersyv.ai
Kontaktmads@syv.ai
Rolle i forsyningskæden (jf. art. 3)Udbyder af AI-system (provider)
AI-systemets typeKomponentbaseret platform til opbygning og kørsel af automatiserede arbejdsgange (DAGs), ofte med integration til generelle AI-modeller (GPAI)

1.2 Tilsigtet formål

AgentBase er en platform, der gør det muligt for organisationer at:

  • Bygge automatiserede arbejdsgange (agents) ved at sammenkoble byggeklodser (nodes) i en visuel editor.
  • Publicere arbejdsgange som apps med brugervenlige formularer.
  • Anvende sprogmodeller (LLM'er), OCR, dokumentopslag og lignende AI-funktionalitet som dele af en arbejdsgang.
  • Versionsstyre, godkende og dele arbejdsgange på tværs af teams.

Platformen er beregnet til professionelle brugere i virksomheder og offentlige myndigheder, der ønsker at automatisere arbejdsprocesser med eller uden brug af AI-komponenter.

1.3 Tilsigtede brugere

RolleAnvendelse
BrugerKører publicerede apps via formularer
AnmelderBedømmer agents i kvalitetskontrollen, godkender og forsegler eller afviser dem inden publicering — udgiver ikke selv
UdviklerBygger og redigerer agents, udgiver den godkendte version, administrerer API-nøgler
AdministratorBruger- og teamadministration samt adgang til alt indhold i sin egen organisation
Superadministratorsyv.ai's platformoperatør; systemdækkende adgang på tværs af organisationer, fx til drift og support

1.4 Klassifikation efter AI-forordningen

AgentBase er en almenanvendelig platform til opbygning og kørsel af automatiserede arbejdsgange. Platformen leverer funktionelle byggeklodser og en eksekveringsmotor, men træffer ikke selv beslutninger på vegne af slutbrugere. Klassifikationen af det færdige AI-system efter AI-forordningen afhænger derfor af det konkrete formål, som idriftsætter (deployer) bygger og udruller, og foretages af denne i forbindelse med ibrugtagningen.

Følgende forhold gælder for platformen som sådan:

  • Forbudte anvendelser (art. 5): Platformen må ikke anvendes til formål, der er forbudt efter art. 5 (fx social scoring, manipulerende systemer, real-time biometrisk fjernidentifikation i offentlige rum). Dette håndhæves kontraktligt via vilkår og adfærdspolitikker.
  • Gennemsigtighedsforpligtelser (art. 50): Når agents genererer eller manipulerer indhold, der præsenteres for fysiske personer (fx chatbots, syntetisk tekst eller billeder), skal idriftsætter sikre passende mærkning og oplysning.
  • GPAI-modeller (kapitel V): AgentBase integrerer med flere tredjepartsudbydere af GPAI-modeller. OpenAI Ireland Ltd. leverer sprogmodeller, og Mistral AI SAS leverer både en sprogmodel, du kan vælge i Sprogmodel-noden, og OCR/dokumentudtræk. Google leverer en OCR-motor, du kan vælge i stedet for Mistral, og syv.ai's egen transskriptionstjeneste anvendes af Transkriber-noden. Billedgenerering leveres af Eleven Labs Inc. via billedmodellen gpt-image-2 fra ElevenLabs' underdatabehandler OpenAI. Forpligtelser efter art. 53–55 påhviler den enkelte modeludbyder; AgentBase formidler udelukkende adgang via API. Genererede billeder er syntetisk indhold, og idriftsætter skal sikre mærkning efter art. 50, når de præsenteres for fysiske personer.

1.5 Forsyningskæde og afgrænsning

┌──────────────────────┐    API     ┌──────────────────────┐
│ Eksterne │ ◄────────► │ AgentBase backend │
│ underdatabehandlere │ │ (FastAPI, Python) │
│ (se listen nedenfor) │ │ │
│ │ │ • Node-registry │
└──────────────────────┘ │ • DAG-eksekvering │
│ • Bruger/teams │
│ • Versionering │
│ • Logning │
└──────────┬───────────┘
│ HTTP/REST

┌──────────────────────┐
│ React-frontend │
│ (TypeScript, Vite) │
└──────────────────────┘


┌──────────────────────┐
│ PostgreSQL │
│ (data, versioner, │
│ kørsler, logs) │
└──────────────────────┘

Eksterne underdatabehandlere, som platformen kan sende data til, afhængigt af hvilke byggeklodser din agent bruger:

  • OpenAI — sprogmodeller.
  • Mistral AI — sprogmodel samt OCR/dokumentudtræk.
  • Google — OCR/dokumentudtræk (valgbar motor).
  • syv.ai (platform.syv.ai) — transskription af lyd.
  • Lettermint — afsendelse af e-mail.
  • ElevenLabs — billedgenerering (Billedgenerering-noden og chat-værktøjet "Generér billede"); amerikansk leverandør under EU-U.S. Data Privacy Framework, se Underdatabehandlere.

Bruger din organisation sine egne API-nøgler (se §3.2), kan listen se anderledes ud.

2. Detaljeret beskrivelse af elementer og udviklingsproces

2.1 Tekniske komponenter

Backend (Python 3.12+):

  • FastAPI som REST API-lag.
  • SQLModel/Pydantic til datavalidering og ORM.
  • Alembic til databasemigreringer.
  • Loguru til struktureret logning.

Frontend (TypeScript):

  • React 19 med Vite som byggeværktøj.
  • Auto-genererede TypeScript-typer fra OpenAPI-specifikationen, så frontend og backend altid er kontrakt-konsistente.
  • @xyflow/react til den visuelle DAG-editor.

Datalag:

  • PostgreSQL 16+ til persistente data (brugere, teams, agents, versioner, kørsler, dokumenter).

Eksterne afhængigheder:

  • OpenAI API (sprogmodeller)
  • Mistral API (sprogmodel samt OCR-/dokumentudtræksnoder)
  • Google Gemini API (OCR/dokumentudtræk, valgbar motor)
  • syv.ai's transskriptionstjeneste (lyd til tekst)
  • Lettermint (afsendelse af e-mail)
  • ElevenLabs API (billedgenerering)

2.2 Eksekveringsmodel

En agent er en orienteret acyklisk graf (DAG) af noder. Ved kørsel:

  1. Validering: Det kontrolleres, at alle nodetyper er registreret, og at alle kanter peger på eksisterende noder.
  2. Topologisk sortering: Eksekveringsrækkefølge bestemmes; cykler afvises.
  3. Inputopløsning: For hver node opløses input i prioriteret rækkefølge fra (a) opstrømsoutput, (b) statisk konfiguration i UI, (c) defaultværdier i funktionssignaturen.
  4. Eksekvering: Noder eksekveres i orden, og resultater gemmes.
  5. Streaming: Status sendes løbende til frontend via Server-Sent Events.

2.3 Indbyggede nodetyper

Platformen leveres med blandt andet følgende noder:

Byggeklodserne er inddelt i fem aktive kategorier, som du også ser dem i nodepaletten (paletten viser derudover en Udfaset-kategori med ældre versioner, der stadig kører i eksisterende flows):

KategoriEksempler på byggeklodser
AISprogmodel, Indlæs dokument (OCR), Sortér dokumenter, Fil til struktureret data, Anonymiser tekst, Transkriber
DataKombiner, Opdeler, Sammenlign tekster, Konverter Datatype, Indlæs CSV-data, Udtræk data-felter, JSON til Excel, Excel til JSON, Dato og tid, Hent fra API, Databaseforespørgsel, CVR Opslag, Datafordeler, Plandata, Ejendomsoverblik, SMV-status, Søg lovgivning, Søg overenskomst, App-version
InputTekstinput, Skabelon, Hent Dokument, Søg Dokumenter, Slå Dokumenter Op, Hent Dokument Indhold, Dokumentliste, Hent Lovgivning, Hent overenskomst
LogikHvis / ellers, Forgrening, Løkke Start, Løkke Slut, Løkke Afbryd, Løkke Spring Over, Python Kode (sandkasse-eksekvering)
OutputTekst til dokument, Send Email
UdfasetÆldre versioner, der stadig kører i eksisterende flows (fx Udtræk struktureret data, Fildetaljer, Tekstliste, Filliste)

Derudover kan et flow, din organisation selv har udgivet som byggeklods, bruges som node i andre flows. Den fulde og altid opdaterede liste findes i Byggeklodser.

Nye noder registreres via en @node-dekoratør i Python og bliver automatisk eksponeret i frontend og OpenAPI-spec.

2.4 Versionering og godkendelse

  • Hver agent har semantisk versionering (major.minor).
  • Minor-versioner inkrementeres automatisk ved ændringer.
  • Major-versioner kræver et todelt forløb: en bruger med mindst Anmelder-rollen bedømmer testene og forsegler accepttest-rapporten, hvorefter en bruger med mindst Udvikler-rollen udgiver versionen (Administrator ligger over begge i hierarkiet og opfylder derfor også kravene). Én bruger med mindst Udvikler-rollen kan udføre begge trin — det oplyses i så fald i den forseglede rapport, jf. §5.
  • Godkendelsesprocessen er dokumenteret i Anmeldelser.
  • Kravet om en forseglet accepttest-rapport gælder apps i Galleriet: en app, der er udstillet i Galleriet, kan ikke begynde at servere en version, der ikke er forseglet. Den allerførste udgivelse af en publikation og udgivelsen af et flow som byggeklods kræver derimod ikke en kvalitetskontrolrunde — her er den menneskelige kontrol rollebaseret (mindst Udvikler-rollen).
  • Tidligere versioner bevares og kan tilgås, hvilket understøtter sporbarhed.

2.5 Udviklingsproces

  • Kildekode versionsstyres i Git med pull request-baseret review.
  • CI/CD via GitHub Actions kører enheds- og integrationstest, typecheck (ty, tsc), linting (ruff, eslint) og end-to-end-test (Playwright) ved hver ændring.
  • Docker-builds fejler, hvis test eller typecheck fejler.
  • OpenAPI-specifikationen valideres i CI mod backend-koden, så frontend og API ikke kan komme ud af synkronisering.

3. Data og datahåndtering

3.1 Datakategorier

AgentBase opbevarer og behandler følgende data:

DatakategoriFormålOpbevaringssted
Brugerkonti (e-mail, hashed password, rolle, team)AdgangsstyringPostgreSQL
Agents og versioner (graf, konfiguration)Modeller af arbejdsgangePostgreSQL
Apps (publicerede agents med formularer)SlutbrugeradgangPostgreSQL
Appens hukommelse (data en app gemmer for sine slutbrugere)Vedvarende tilstand i apps (kladder, sager)PostgreSQL
Kørselsdata (input, output, fejl, tidsstempler)Sporbarhed og fejlsøgningPostgreSQL
Dokumenter uploadet af brugereInputmateriale til agentsPostgreSQL — kun den tekst, dokumentet indeholder, gemmes; selve filen opbevares ikke
API-nøgler og hemmelighederIntegration med eksterne systemerPostgreSQL (krypteret)
Organisationsvariabler og integrationslegitimationerAdgang til organisationens egne systemer og modellerPostgreSQL (krypteret)
Chat (samtaler, beskeder og dokumentpanelet)Samtaler med assistenten og de dokumenter, den skriverPostgreSQL
Webhook-modtagelser (modtaget forespørgsel, svar og afsenderens IP-adresse)Fejlsøgning af integrationerPostgreSQL
Mellemresultater (cache)Genbrug af beregninger, så en kørsel bliver hurtigere og billigerePostgreSQL
Login-links, links til nulstilling af adgangskode og invitationerAdgang og onboardingPostgreSQL
Kvalitetskontrolmateriale (testsager, bedømmelser og forseglede accepttest-rapporter)Dokumentation af menneskelig godkendelsePostgreSQL

3.2 Træning af modeller

AgentBase træner ikke selv AI-modeller. Platformen kalder eksterne modeller via API. Datasæt-, validerings- og testkrav efter art. 10 i AI-forordningen påhviler dermed den underliggende GPAI-modeludbyder (OpenAI Ireland Ltd.). AgentBase understøtter ikke, at idriftsætter træner egne modeller.

Din organisation kan derimod lægge sine egne API-nøgler ind under AdministrationOrganisationIntegrationer, enten for hele organisationen eller for et enkelt team. Det gælder også en egen Azure OpenAI-opsætning eller en selvhostet, OpenAI-kompatibel server. Bruger organisationen sine egne nøgler, sker kaldene på organisationens eget aftalegrundlag med den pågældende leverandør.

3.3 Databehandling og GDPR

  • Behandling af personoplysninger sker efter forordning (EU) 2016/679 (GDPR).
  • Der indgås databehandleraftaler med eksterne underleverandører, der kan tilgå personoplysninger.
  • Brugeren kan eksplicit anonymisere data via anonymization-noden inden videresendelse til ekstern model.
  • Inputdata sendt til eksterne LLM-udbydere er underlagt udbyderens vilkår; idriftsætter er ansvarlig for, at der ikke sendes personoplysninger ud over det aftalte grundlag.

3.4 Datakvalitet og bias

For platformkomponenter, der ikke selv genererer ny indlæring, er datakvalitet et ansvar for idriftsætter. AgentBase tilbyder værktøjer, der understøtter datakvalitet:

  • Anonymiseringsnode for fjernelse af personoplysninger.
  • Strukturerede output-skemaer der validerer modeloutput før det viderebehandles.
  • Versionering og evalueringer så ændringer kan testes mod kendt baseline før publicering.

4. Risikostyring

Risikostyringen følger principperne i art. 9 i AI-forordningen og opdeles i platform-niveau og anvendelses-niveau.

4.1 Identificerede risici (platformniveau)

RisikoMitigation
Uautoriseret adgang til agents eller dataRollebaseret adgangskontrol (RBAC), JWT-tokens, team-isolation
Overforbrug eller misbrug af eksterne API'erKonfigurérbare grænser for antal noder og kanter i et flow, for hvor mange gentagelser af en løkke der kører samtidig, og for hvor længe og hvor mange modelkald en agent-samtale må bruge. Offentlige indgange (scanner, indlejret widget, webhooks og login-links) har desuden hastighedsbegrænsning. API-nøgler oprettes pr. bruger og arver brugerens rettigheder. Organisationen kan lægge sine egne API-nøgler ind, så forbruget afregnes og styres hos den selv
Eksekvering af ondsindet brugerkodepython_code-noden eksekverer i begrænset miljø; tilgang til netværk og filsystem er kontrolleret
Uendelige løkker eller cykliske graferTopologisk sortering afviser cykler ved validering
Datalækage til eksterne modellerAnonymiseringsnode, dokumenteret dataflow, kontraktlige vilkår over for idriftsætter
Tab af sporbarhedKomplet logning af kørsler, versionering af agents
Hallucinationer eller fejl fra LLMStrukturerede outputs, evalueringsfunktioner, menneskeligt tilsyn (se afsnit 5)

4.2 Idriftsætterens ansvar

Når en idriftsætter bygger en konkret anvendelse, skal denne foretage en supplerende risikovurdering, der er passende i forhold til formålet, samt tilpasse menneskeligt tilsyn, logning og brugerinformation til det specifikke anvendelsestilfælde.

5. Menneskeligt tilsyn

I overensstemmelse med art. 14 understøtter platformen menneskeligt tilsyn på flere niveauer:

  • Godkendelse af et menneske: Enhver udgivelse udføres af et menneske med mindst Udvikler-rollen — der findes ingen automatisk udgivelse. For apps i Galleriet gælder desuden kvalitetskontrollen: testsagerne bedømmes af et menneske med mindst Anmelder-rollen og forsegles i en uforanderlig rapport, og en app i Galleriet kan ikke begynde at servere en version uden en sådan forsegling.
  • Ærlig oplysning frem for teknisk adskillelse: Platformen håndhæver ikke teknisk, at indsender og godkender er forskellige personer. Er de samme person, oplyses det tydeligt i den forseglede rapport (solo-aktør-markering), så dokumentationen viser hvem der faktisk gjorde hvad. Ønsker organisationen et fire-øjne-princip, håndhæves det gennem rolletildelingen — en Anmelder kan bedømme og forsegle, men ikke udgive, så adskillelsen opnås ved at give de to roller til forskellige medarbejdere. Et teknisk per-organisation-krav er en planlagt, endnu ikke aktiveret funktion.
  • Versionering: Tidligere versioner kan til enhver tid genindføres, hvis en nyere version udviser uønsket adfærd.
  • Manuel kørsel: Apps kan startes manuelt af en bruger, der godkender input før kørsel.
  • Resultatvisning: Brugeren ser modeloutput og kan vurdere det inden eventuel videreanvendelse.
  • Stop-funktion: En administrator kan deaktivere en publiceret app, hvis problemer opstår.
  • Adgangskontrol: Administratorer kan tilbagekalde adgang og deaktivere brugere.
Vær opmærksom på

Forseglingen er ikke en teknisk spærring på alle veje. Den allerførste udgivelse af en publikation og udgivelsen af et flow som byggeklods kræver ikke en kvalitetskontrolrunde. Vil din organisation have kvalitetskontrol på alt, hvad der sættes i drift, skal det sikres gennem rolletildeling og interne arbejdsgange.

6. Nøjagtighed, robusthed og cybersikkerhed

6.1 Nøjagtighed

  • Platformen leverer determineret eksekvering af DAGs; outputvariation skyldes alene ikke-determinerede noder (typisk LLM-kald).
  • For LLM-noder kan idriftsætter fastsætte temperatur, model og strukturerede outputskemaer for at øge forudsigelighed.
  • Evalueringsmodulet gør det muligt at teste agents mod faste testsæt før publicering.

6.2 Robusthed

  • DAG-validering sikrer, at ugyldige grafer ikke kan eksekveres.
  • Fejler en node, stopper kørslen, men fejlen henføres præcist til den node, der fejlede: kørselshistorikken viser nodens navn, fejltypen og en brugervenlig forklaring.
  • Strømmet eksekvering konverterer fejl til SSE-events, så brugeren ser fejl i realtid.
  • Konfigurérbare grænser for antal noder/kanter forhindrer ressourceudtømmelse.
  • CI/CD kører enheds-, integrations- og end-to-end-test ved hver kodeændring.

6.3 Cybersikkerhed

  • Autentifikation sker via JWT-tokens med konfigurérbar levetid (ACCESS_TOKEN_EXPIRE_MINUTES).
  • Adgangskoder hashes med en moderne adaptiv hash-algoritme.
  • Kommunikation mellem klient og server sker over TLS i produktion.
  • API-nøgler og hemmeligheder opbevares krypteret i databasen.
  • Koden gennemgår statisk analyse (ruff), typecheck (ty, tsc) og automatiseret test ved hver ændring.
  • Afhængigheder opdateres automatisk via Dependabot.
  • Inputvalidering sker på alle systemgrænser via Pydantic.

7. Logning og sporbarhed

I overensstemmelse med art. 12 logger AgentBase automatisk centrale hændelser:

HændelseIndholdOpbevaringssted
HTTP-forespørgsler til API'etTidsstempel, sti, statuskode, varighedWebserverens adgangslog (og, hvis observabilitetsværktøjet er slået til, detaljerede forespørgselsspor)
Oprettelse/ændring af agentBruger, version, ændringssætDatabase (versionshistorik)
Kørsler af agents og appsInput, output, status pr. node, varighed, fejlDatabase (kørselshistorik)
Administrative handlingerÆndring af opbevaringsperioden og rydning af kørselshistorikDatabase (auditlog)
Bemærk

Auditloggen dækker i dag netop de to handlinger ovenfor. Bruger- og rolleadministration (fx aktivering af en bruger eller ændring af en rolle) har endnu ikke et dedikeret revisionsspor, og der registreres hverken særskilte login- og logud-hændelser eller bruger-id pr. API-kald. Har din organisation brug for det, kan sporet suppleres i jeres eget SIEM.

7.1 Opbevaringsperiode

Opbevaringsperioden for kørselsdata konfigureres af organisationens administrator direkte i AgentBase under AdministrationOrganisationGenereltDataopbevaring, mellem 7 og 3653 dage; standard er 6 måneder (184 dage). Når oprydningen kører, slettes en kørsels input, output og fejldetaljer sammen med resultatet fra hver byggeklods, og koblingen til den bruger, der startede kørslen, fjernes. Registreringen af kørslen (status, varighed, tidspunkter og antal) bevares altid af hensyn til fakturering og statistik.

Den automatiske sletning skal aktiveres på platformen

Den løbende, automatiske oprydning er en funktion, der slås til på platformen, og den er som udgangspunkt slået fra. Er den ikke aktiveret, gemmes din indstilling, men selve sletningen sættes først i værk, når funktionen aktiveres — det oplyser AgentBase dig også om på siden Dataopbevaring. Kontakt syv.ai (mads@syv.ai) for at få den aktuelle status for jeres installation.

DatatypeOpbevaringBemærkning
Kørselshistorik (input, output, fejl)Organisationens valgte periode (standard 184 dage)Indholdet slettes automatisk; registreringen bevares. Kørsler kan desuden slettes manuelt pr. kørsel eller pr. flow af brugere med mindst Udvikler-rollen. Kørsler, der indgår som test-evidens i kvalitetskontrollen, slettes ikke automatisk, så længe de indgår som evidens
Dokumenter uploadet som input til en kørselFølger kørselshistorikkenIndgår i kørslens data og slettes sammen med den
Dokumentbiblioteket (Dokumenter)KundeadministreretSlettes af organisationen selv, ikke af den automatiske oprydning
Appens hukommelse (data en app gemmer for sine slutbrugere)KundeadministreretOmfattes ikke af den automatiske oprydning. Data slettes, når appens ejer sletter en enkelt nøgle eller en hel gruppe (Udvikler-rollen eller højere), og de slettes sammen med appen. Men en publiceret app kan ikke slettes, og en arkiveret app, hvis version har en forseglet accepttest-rapport, afvises — så ejerens egen sletning er den praktiske vej. Der findes p.t. ingen selvbetjenings-brugerflade til det; sletningen sker via AgentBase' API
Webhook-modtagelserIndhold efter organisationens valgte periode; selve registreringen efter mindst 184 dageIndholdet (modtaget forespørgsel, svar og afsenderens IP-adresse) slettes efter opbevaringsperioden; registreringen af modtagelsen slettes helt efter den længste af organisationens periode og 184 dage
ChatbeskederOrganisationens valgte periode, pr. beskedEnkeltbeskeder ældre end perioden slettes fra chatsamtaler (også aktive); nyere beskeder i samme samtale bevares
Mellemresultater (cache)184 dageFast platformregel — påvirkes ikke af organisationens valgte periode
Byggeklodsers hukommelse mellem kørsler (fx "sidst sete" markører)Så længe flowet findesSmå driftsmarkører (maks. 16 KB pr. værdi, maks. 50 nøgler pr. byggeklods), der gør det muligt kun at behandle nye elementer. Slettes sammen med flowet og kan nulstilles pr. flow eller pr. byggeklods af brugere med mindst Udvikler-rollen; nulstilling logges i auditloggen. Indeholder ingen kobling til en bruger. Testkørsler i kvalitetskontrollen læser og skriver aldrig denne hukommelse. Se opbevarings- og sletteaftalen umiddelbart efter tabellen
Udløbne links og invitationer30 dage efter udløb eller brugLogin-links og links til nulstilling af adgangskode slettes 30 dage efter udløb/brug; invitationer slettes 30 dage efter udløb, og tilbagekaldte/opbrugte invitationer fjernes løbende
Versionshistorik for agentsPlanlagtAutomatisk oprydning af versionshistorik er planlagt, men endnu ikke aktiv. Frosne versions-øjebliksbilleder, der indgår som evidens i kvalitetskontrollen, bevares (jf. afsnit 5)
Strukturerede applikationslogs6 månederKan eksporteres til kundens eget SIEM for langtidsopbevaring og uafhængig retention
Auditlog (administrative handlinger)BevaresÆndring af opbevaringsperioden og rydning af kørselshistorik logges i databasen og berøres ikke af oprydningen

Når den automatiske oprydning er aktiveret, har sletningen virkning i den aktive database ved næste kørsel af oprydningsjobbet (jobbet kører mindst én gang i timen). Sletningen slår igennem i backups i takt med backup-rotationen (p.t. 2 måneder — der tages backup dagligt, og en backup slettes efter 2 måneder).

Idriftsætter er ansvarlig for at fastlægge en opbevaringsperiode, der opfylder fx GDPR's princip om opbevaringsbegrænsning og eventuelle sektorspecifikke krav. Vælges en periode længere end standarden, er det den dataansvarliges ansvar at kunne begrunde opbevaringen. Logs kan desuden eksporteres i JSON-format (via LOG_JSON=true) og integreres med eksterne SIEM-/observabilitetsværktøjer, hvor uafhængig langtidsretention kan håndhæves.

Byggeklodsers hukommelse mellem kørsler — opbevaring og sletning

En byggeklods, der er bygget til kun at behandle nye elementer (fx et RSS-feed eller en postkasse), gemmer en lille driftsmarkør mellem kørsler: hvor langt den nåede sidst. Aftalen for de data er kort:

  • Hvad det er. Nøgle/værdi-par, der hører til det sted i flowet, byggeklodsen står — maks. 16 KB pr. værdi og maks. 50 nøgler pr. byggeklods. Typisk et tidsstempel, en liste af allerede sete id'er eller et fortsæt-her-link fra en ekstern tjeneste.
  • Ingen kobling til en person. Rækkerne har ingen brugerkolonne. Hukommelsen hører til flowet, ikke til den, der tilfældigvis startede kørslen, så en sletteanmodning fra en registreret person har intet at finde her.
  • Ingen udløbsdato. Der findes ingen alder, hvor en markør bliver forældet — en markør fra sidste år er stadig det rigtige sted at fortsætte fra. Hukommelsen indgår derfor ikke i den automatiske, tidsbaserede oprydning og påvirkes ikke af organisationens valgte opbevaringsperiode.
  • Den dør med flowet. Slettes flowet, slettes hukommelsen i samme databasehandling (fremmednøgle med kaskadesletning). Det er den eneste automatiske sletning.
  • Den praktiske sletteknap. Brugere med mindst Udvikler-rollen kan nulstille hukommelsen for hele flowet eller for en enkelt byggeklods. Handlingen er øjeblikkelig og logges i auditloggen. Det er den vej, en sletning sker, uden at flowet nedlægges. Bemærk, at en nulstillet vagtpost behandler alt forfra én gang.
  • Rydning af kørselshistorik rører den ikke. Hukommelsen er ikke kørselsdata, og "Ryd kørselshistorik" lader den med vilje stå.
  • Ét forbehold, sagt lige ud. Et arkiveret flow kan ikke slettes, så længe det indgår som evidens i kvalitetskontrollen. Et sådant flow beholder sin hukommelse, indtil nogen nulstiller den manuelt.

8. Gennemsigtighed og brugerinformation

I overensstemmelse med art. 13 og art. 50:

  • Hver app viser tydeligt, hvilke inputs den forventer, og hvilket output den producerer.
  • Når en app indeholder LLM-noder, vises dette i nodepalet og dokumentation, så idriftsætter er bevidst om AI-elementet.
  • Idriftsætter har pligt til at informere slutbrugere om, at de interagerer med et AI-system, hvor det er relevant efter art. 50 (fx chatbots, AI-genereret indhold).
  • Denne dokumentation samt introduktionen og rolleoversigten er tilgængelig som brugervejledning.

9. Kvalitetsstyring

Udbyderen anvender følgende kvalitetsstyringspraksis (jf. art. 17):

  • Versionsstyret kildekode med pull request-review for alle ændringer.
  • Automatiserede test i CI (enheds-, integrations- og end-to-end-test).
  • Type- og linterkrav håndhævet i CI.
  • Releaseproces med semantisk versionering og changelog.
  • Hændelseshåndtering ved fejl, herunder dokumentation og reproducerbar fejlsøgning via kørselshistorik.
  • Dokumentation som kode: Brugerdokumentation, systembeskrivelse og arkitektur-dokumenter ligger i samme repository som koden og opdateres som del af samme ændringsproces.

10. Overensstemmelse og opdatering

  • Denne systembeskrivelse opdateres ved væsentlige ændringer i platformens funktionalitet, datahåndtering, sikkerhedsforhold eller risikobillede.
  • Større ændringer dokumenteres i changelog og frigives som ny version.

11. Kontakt

Spørgsmål til denne systembeskrivelse, ønsker om yderligere dokumentation eller henvendelser om sikkerhedshændelser kan rettes til:

syv.ai E-mail: mads@syv.ai

12. Revisionshistorik

VersionDatoÆndringAnsvarlig
1.02026-04-30Første udgave af systembeskrivelsen.syv.ai
1.12026-04-30Tilføjet dokumentkontrol (version, ejer, reviewfrekvens), neutral klassifikationsformulering og opbevaringsperioder for logs.syv.ai
1.22026-04-30Justeret afsnit 7.1 så det afspejler den faktiske implementering: ingen automatisk tidsbaseret sletning; data opbevares indtil eksplicit sletning.syv.ai
1.32026-05-01Afsnit 7.1 opdateret til at angive en standardopbevaringsperiode på 6 måneder for kørselslogs, uploadede dokumenter og brugerdata, der kan konfigureres kortere eller længere efter aftale med syv.ai (i overensstemmelse med Databehandleraftalens Bilag C.4).syv.ai
1.42026-08-19Afsnit 7.1 opdateret: Opbevaringsperioden konfigureres nu af organisationens administrator direkte i AgentBase (Administration → Opbevaring, 7–3653 dage, standard 184 dage), og indholdet af ældre kørsler slettes automatisk og løbende, mens registreringen bevares. Tilføjet detaljerede sletteregler (webhook-modtagelser, chatbeskeder, cache, udløbne links og invitationer), sletningens virkningstidspunkt i database og backups, samt præcisering af auditlog- og login-logning i afsnit 7.syv.ai
1.52026-09-05Rettet efter gennemgang mod koden: leverandørlisten udvidet (Mistral leverer også en sprogmodel; Google, syv.ai og Lettermint tilføjet), egne API-nøgler beskrevet i §3.2, Superadmin tilføjet i rolletabellen, nodetabellen i §2.3 skrevet om til de faktiske kategorier og danske navne, §3.1 udvidet med de øvrige datakategorier og præciseret for dokumenter, publiceringsgarantien i §2.4 og §5 nuanceret (forsegling gælder Galleriet), §6.2 præciseret om nodefejl, §4.1 præciseret om grænser og API-nøgler, §7 reduceret til det auditloggen faktisk indeholder, og §7.1 opdateret med den korrekte menusti samt forbehold om, at den automatiske sletning skal aktiveres på platformen.syv.ai
1.62026-09-07Afsnit 1.4, 1.5 og 2.1 opdateret: Eleven Labs Inc. tilføjet som ekstern afhængighed for billedgenerering (Billedgenerering-noden og chat-værktøjet "Generér billede"), med art. 50-note om mærkning af syntetiske billeder.syv.ai
1.72026-09-09Afsnit 3.1 og 7.1 udvidet med datakategorien appens hukommelse: den vedvarende tilstand, en publiceret app kan gemme for sine slutbrugere (kladder, sager). Kategorien er kundeadministreret og omfattes ikke af den automatiske oprydning; afsnit 7.1 beskriver, hvordan data faktisk slettes, og at der endnu ikke findes en selvbetjenings-brugerflade til det.syv.ai
1.82026-09-10Afsnit 7.1: tilføjet række for byggeklodsers hukommelse mellem kørsler (node_state).syv.ai
1.92026-09-10Afsnit 7.1: tilføjet opbevarings- og sletteaftale for byggeklodsers hukommelse mellem kørsler (ingen brugerkobling, ingen udløbsdato, kaskadesletning med flowet, nulstilling som den praktiske slettevej, og forbeholdet om arkiverede flows).syv.ai