Dataflow i AgentBase
| Felt | Værdi |
|---|---|
| Dokumenttitel | Dataflow i AgentBase |
| Version | 1.6 |
| Senest opdateret | 2026-09-09 |
| Dokumentejer | syv.ai (kontakt: mads@syv.ai) |
| Tilhørende dokumenter | Systembeskrivelse, Databehandleraftale, DPIA-skabelon |
Denne side beskriver, hvor data lander, hvad hver underdatabehandler ser, hvilke EU-grænser der eventuelt krydses, og hvordan kryptering, logning og opbevaring fungerer i AgentBase. Siden er udarbejdet til DPO'er, sikkerhedsfunktioner og indkøbere, der skal udfylde standardspørgeskemaer om databehandling før onboarding.
Hvor noget afhænger af konfiguration eller af den enkelte agents udformning, er det noteret eksplicit. Vi forsøger ikke at få platformen til at fremstå mere lukket end den er de relevante grænseflader er beskrevet, så de kan vurderes.
1. Den korte version
- Standardkæden foregår i EU/EØS. Hosting i Tyskland (Hetzner), LLM-inference i EU/EØS (OpenAI Ireland under Zero Data Retention, samt Mistral AI i Frankrig), OCR i Frankrig (Mistral, EU-hostet, ingen træning), e-mail i Nederlandene/Frankrig (Lettermint).
- Én tredjelandsoverførsel, og den er et tilvalg. Billedgenerering (Billedgenerering-noden og chat-værktøjet "Generér billede") leveres af Eleven Labs Inc., USA, certificeret under EU-U.S. Data Privacy Framework og under Zero Data Retention uden træning på input, jf. syv.ai's aftale. Kun den beskrivelse og de referencebilleder, brugeren selv angiver, sendes; agents uden noden og chat-samtaler, der ikke kalder værktøjet, sender intet til ElevenLabs. Se Underdatabehandlere. Ingen anden del af AgentBase' egen behandlingskæde rutes til USA eller andre tredjelande. Vælger jeres organisation selv at bruge egne modeladgange under Administration → Organisation → Integrationer, er det jeres eget valg af modtager, der afgør, hvor data lander (afsnit 9).
- Kryptering: TLS 1.2+ under transport. Ved opbevaring krypteres disken hos hosting-leverandøren med AES-256, og hemmeligheder (API-nøgler, integrationsadgange, organisationsvariabler) krypteres derudover felt for felt i databasen med en applikationsadministreret nøgle (AES-128 i CBC-tilstand med HMAC-SHA256-integritetsbeskyttelse, jf. afsnit 6). Krypteringsnøgler administreres af syv.ai/hosting-leverandøren.
- Eksterne underdatabehandlere ser kun de data, en agent eksplicit sender til dem med to undtagelser: Anonymiser tekst-noden sender selv teksten til sprogmodellen (se afsnit 8), og de to indbyggede AI-assistenter (Chat og flow-assistenten i editoren) sender samtale, flow-opbygning og kørselsdata til sprogmodel-udbyderen, når de bruges (se afsnit 3).
- Opbevaringsperioden konfigureres direkte i AgentBase. Organisationens administrator fastsætter opbevaringsperioden for kørselsdata under Administration → Organisation → Generelt → Dataopbevaring, mellem 7 og 3653 dage; standard er 6 måneder (184 dage). Indholdet af ældre kørsler (input, output og fejldetaljer) slettes, mens registreringen af kørslen (status, varighed, tidspunkter) bevares af hensyn til fakturering og statistik.
- Anonymiser tekst-noden kan placeres før eksterne kald for at fjerne CPR-numre, navne og lignende men den er en konfigurationsvalgt foranstaltning, ikke en standard, og den udpeger selv personoplysningerne ved hjælp af en sprogmodel. Den beskytter altså det næste eksterne kald, ikke det første (afsnit 8).
Selve oprydningen har en kontakt på platformen, som er slået fra som standard. Er den ikke slået til i jeres miljø, gemmes den valgte opbevaringsperiode, men indholdet af gamle kørsler bliver ikke fjernet automatisk. Du kan se status direkte i skærmbilledet: er funktionen ikke aktiv, står der "Automatisk sletning er endnu ikke aktiveret — indstillingen gemmes, men den automatiske sletning tages først i brug, når funktionen aktiveres på platformen." Spørg syv.ai om status for netop jeres produktionsmiljø, før I skriver den automatiske sletning ind i en DPIA.
2. End-to-end dataflow
Diagrammet viser standardkonfigurationen, hvor en bruger kører en agent, som indeholder en LLM-node og en OCR-node. Pile angiver dataflow; markeringer angiver hvad der sendes.
Bemærk to ting om diagrammet:
- Anonymiser tekst-noden er ikke automatisk indsat. Den er en valgbar node i agent-grafen og skal placeres af udvikleren før eksterne kald, hvor det er relevant. Er den ikke placeret, sendes input som det er, til den valgte underdatabehandler. Og noden er ikke et lokalt filter: den sender selv teksten til sprogmodellen for at få udpeget personoplysningerne (afsnit 8).
- Chat og flow-assistenten i editoren er indbyggede AI-assistenter, der kører inde i AgentBase, men som sender til sprogmodel-udbyderen på platformens adgang. De aktiveres kun, når en bruger faktisk skriver til dem.
Hvordan data kommer ind
Diagrammet ovenfor viser den indloggede bruger i browseren. Der findes fem andre døre ind i platformen, og de er relevante for en DPIA, fordi flere af dem kører uden en indlogget bruger:
| Dør | Hvem bruger den | Bemærkning |
|---|---|---|
| Indlejret app (embed-widget) | Anonyme besøgende på jeres egen hjemmeside | Widgetten er offentlig og tredjeparts-tilgængelig efter design. Der er ingen indlogget bruger bag kørslen. |
| Webhook | Et eksternt system, der kalder appen | AgentBase gemmer kaldets indhold, svaret og afsenderens IP-adresse sammen med leveringen. Der er ingen indlogget bruger. |
| Personlig API-nøgle | En bruger med rollen Udvikler eller højere | Nøglen oprettes under Administration → Udviklerværktøjer → API-nøgler og kører appen på den pågældende brugers vegne. |
| Planlagt kørsel | Ingen kørslen starter af sig selv efter en tidsplan pr. app | Kørslen har ingen bruger bag sig. |
| Forbundet AI-assistent (connector) | ChatGPT eller Claude, forbundet af en bruger | Assistenten logger ind via et samtykkeskærmbillede og handler derefter som den bruger, der gav samtykket. |
Kørsler uden en indlogget bruger (embed, webhook, planlagt kørsel) kan ikke afgrænses ud fra brugerens egne rettigheder. Det bør fremgå af DPIA'en for den enkelte anvendelse, hvilke af dørene der er slået til.
3. Hvad ser hver part?
Tabellen opsummerer hvilke data hver aktør har adgang til, og under hvilke betingelser.
| Aktør | Ser | Ser ikke | Bemærkning |
|---|---|---|---|
| AgentBase backend (syv.ai) | Alle inputs, outputs, dokumenter, metadata, brugeridentitet, kørselshistorik i klartekst i hukommelsen under eksekvering | Drift varetages af syv.ai. Adgang er begrænset til navngivne medarbejdere efter "least privilege". | |
| Hetzner Online GmbH | Krypteret diskindhold (databasefiler, backups), netværkstrafik på TLS-niveau, virtuelle maskiner | Klartekst af data i databasen disken er krypteret at-rest med AES-256 | Hetzner er hosting-leverandør. Krypteringsnøgler administreres af syv.ai/applikationen, ikke af Hetzner som infrastrukturleverandør. Hetzner kan i teorien tilgå hukommelsen på den fysiske vært, men det forudsætter en kompromittering af deres egne adgangskontroller. |
| OpenAI Ireland Ltd. | Den prompt, en Sprogmodel-node sender typisk inputfelter fra agentens formular og evt. dokumentindhold, der er ført ind i prompten. Desuden den originale tekst, Anonymiser tekst-noden analyserer, hvis byggeren vælger en gpt-*-model på noden (afsnit 8), og alt hvad de indbyggede AI-assistenter sender (se rækken nedenfor) | Andre data fra AgentBase' database. Inputs der er maskeret af Anonymiser tekst-noden, i det efterfølgende kald | Kører under Zero Data Retention: OpenAI lagrer ikke input/output ud over selve transaktionen og bruger ikke input til træning. Behandling sker i EU/EØS. Bemærk, at "en agent uden sprogmodel-noder sender ingenting" ikke holder for en organisation, der bruger Chat, flow-assistenten eller Anonymiser tekst. |
| Indbyggede AI-assistenter (Chat og flow-assistenten) modtageren er sprogmodel-udbyderen ovenfor | Samtalens indhold, resultater fra de apps og værktøjer, assistenten kalder, flowets opbygning (noder, forbindelser, feltnavne og instruktioner) og for flow-assistenten faktiske kørslers input og output i afkortet form | Indholdet af vedhæftede filer. En vedhæftet fil sendes ikke med kun en henvisning til filnavnet, så modellen kan bede en node om at bruge filen | Assistenterne kører inde i AgentBase, men modellen er ekstern. De aktiveres kun, når en bruger skriver til dem. |
| Mistral AI SAS | Det dokument eller den tekst, Indlæs dokument-noden sender, teksten fra Anonymiser tekst-noden, som standard kører på en EU-model hos Mistral, og hvis en bygger vælger en Mistral-model i Sprogmodel-noden, også prompten fra den node | Andre data fra AgentBase' database. Data fra agents, der hverken læser dokumenter, anonymiserer tekst eller er sat op til en Mistral-model | Kører på EU-hostet infrastruktur i Frankrig under Zero Data Retention og uden træning på input. ZDR er aktiveret på syv.ai's konto og dækker de anvendte stateless endpoints til LLM-inference (/v1/chat/completions) og OCR (/v1/ocr), jf. Mistrals dokumentation. |
| Eleven Labs Inc. | Den tekstbeskrivelse, det billedformat og de referencebilleder, en Billedgenerering-node eller chat-værktøjet "Generér billede" sender | Andre data fra AgentBase' database. Data fra agents uden billedgenereringsnoder og chat-samtaler, der ikke kalder værktøjet | Amerikansk selskab — tredjelandsoverførsel under EU-U.S. Data Privacy Framework. Billedmodellen leveres via ElevenLabs' underdatabehandler OpenAI; kører under Zero Data Retention og uden træning på input, jf. syv.ai's aftale med ElevenLabs. Se Underdatabehandlere. |
| Lettermint B.V. | Modtagerens e-mailadresse, emne, brødtekst og eventuelle vedhæftede filer i e-mails, som platformen eller en Send Email-node afsender | Øvrige data fra AgentBase' database | E-mailleverandør. EU/EØS-hostet infrastruktur (Nederlandene/Frankrig). Se Underdatabehandlere. |
| Idriftsætterens brugere, anmeldere og udviklere | Kørselshistorik, agent-konfiguration, kørte input/output for de teams og agents, de har adgang til | Data uden for de teams, de er medlem af (team-isolation) | Adgang er rollebaseret (Bruger / Anmelder / Udvikler). |
| Idriftsætterens administratorer | Alle flows, dokumenter og kørsler i hele organisationen | Data i andre organisationer | Rollen Administrator er ikke team-isoleret: den giver adgang på tværs af organisationens teams. Det er værd at holde for øje, når man tildeler rollen. |
| Superadministrator (syv.ai's driftsrolle) | Data på tværs af organisationer | Rollen kan kun tildeles af en anden superadministrator og tilbydes ikke i rolle-menuen i brugeradministrationen. Den er syv.ai's driftsrolle, ikke en af idriftsætterens roller. | |
| Slutbrugere af apps | De input de selv giver, og det resultat appen producerer | Andre brugeres input/output, agent-konfiguration, råt modeloutput hvis appen ikke viser det | Ser kun via app-formularen, ikke selve den underliggende agent. |
AgentBase kan sende driftstelemetri til en ekstern overvågningstjeneste (Logfire, leveret af Pydantic Services). Den sender kun noget, hvis den er slået til med en adgangsnøgle. Er den slået til, eksporteres alle applikationslogs, sporing af HTTP-kald og sporing af modelkald. Selve prompt- og svarindholdet fra modelkald er slået fra, men sporingen af HTTP-kald indeholder de indkomne kaldeparametre altså også indholdet af et kørselskald og kun to typer kald er undtaget (opslag mod organisationsvariabler og webhook-opsætning). Er telemetrien aktiv i jeres produktionsmiljø, er tjenesten en aktør i dataflowet, og dens region skal oplyses. Spørg syv.ai om status og region for netop jeres miljø, før I udfylder et sikkerhedsspørgeskema.
4. Hvor opbevares hvilke data?
Alle persistente data opbevares i AgentBase' egen PostgreSQL-database på Hetzner i Tyskland. Dette er EU-territorium. Der bruges ikke separat fillagring (objekt-storage) alt ligger i databasen. Eksterne underdatabehandlere opbevarer ikke data ud over selve transaktionens varighed (jf. afsnit 3).
| Datakategori | Opbevaringssted | Krypteret? | Krypteringsnøgler administreres af |
|---|---|---|---|
| Brugerkonti (e-mail, hashed password, rolle, team) | PostgreSQL hos Hetzner DE | At-rest AES-256; passwords yderligere hashet med adaptiv hash | syv.ai (applikationen) |
| Agents og versioner (DAG, konfiguration) | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Apps (publicerede agents med formularer) | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Appens hukommelse (data en app gemmer for sine slutbrugere: kladder, sager) | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Kørselsdata (input, output, fejl, tidsstempler, status pr. node) inklusive filer, der indgik i kørslen | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Byggeklodsers hukommelse mellem kørsler (markører, id-lister; ingen brugerkolonne) | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Uploadede dokumenter i dokumentarkivet gemt som udtrukket tekst, ikke som den oprindelige fil | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| API-nøgler og hemmeligheder (modeladgange, integrationer, organisationsvariabler) | PostgreSQL hos Hetzner DE | Krypteret felt-niveau, oven i at-rest disk-kryptering | syv.ai (applikationen) |
| Strukturerede applikationslogs | Hosting-miljøet hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Auditlogs (login, administrative handlinger) | PostgreSQL hos Hetzner DE | At-rest AES-256 | syv.ai (applikationen) |
| Backups | Hetzner-region i Tyskland (geografisk adskilt fra primære systemer, inden for EU/EØS) | Krypteret backup | syv.ai (applikationen) |
Uploader du et dokument til dokumentarkivet, bliver filen læst (OCR), og det er den udtrukne tekst, der gemmes den oprindelige PDF gemmes ikke i arkivet. Uploader du derimod en fil som input til en kørsel, gemmes selve filens indhold i kørslens rækker typisk flere gange for samme fil, fordi både kørslen og hver enkelt node gemmer det, den fik udleveret. Begge dele er relevante, når I skal efterkomme en sletteanmodning: kørselsdata fjernes af opbevaringsperioden, mens et dokument i arkivet skal slettes særskilt.
Vigtigt: Krypteringsnøgler holdes på applikations- og hosting-niveau. Hetzner som infrastrukturleverandør håndterer disk-kryptering, men ikke felt-niveau-kryptering af hemmeligheder. Kunde-administreret kryptering ("BYOK") er under udvikling og forventes at supplere ikke erstatte den nuværende syv.ai-administrerede nøglemodel. Kunder med behov inden tilgængelighed kan kontakte syv.ai for at aftale alternativer.
5. Hvad krydser EU-grænsen?
Én ting, og kun hvis flowet bruger den: billedgenerering. Alt andet dataflow i AgentBase foregår inden for EU/EØS.
Standardkædens underdatabehandlere er EU-baserede:
- Hosting: Hetzner Online GmbH, datacentre i Tyskland.
- LLM-inference: OpenAI Ireland Ltd., EU/EØS-region under Zero Data Retention.
- OCR og LLM-inference: Mistral AI SAS, Frankrig, EU-hostet, Zero Data Retention og ingen træning på input. ZDR er aktiveret på syv.ai's konto og dækker de anvendte stateless endpoints
/v1/ocrog/v1/chat/completions, jf. Mistrals dokumentation. - E-mail: Lettermint B.V., Nederlandene, med behandling på EU/EØS-infrastruktur (Nederlandene og Frankrig).
Billedgenerering er den ene undtagelse. Eleven Labs Inc. er et amerikansk selskab, og et kald fra Billedgenerering-noden eller chat-værktøjet "Generér billede" er en tredjelandsoverførsel af det, brugeren selv skriver og vedhæfter. Overførselsgrundlaget er EU-U.S. Data Privacy Framework (ElevenLabs certificeret 9. februar 2026) med standardkontraktbestemmelser i ElevenLabs' DPA som fallback; behandlingen sker under Zero Data Retention og uden træning på input, jf. syv.ai's aftale.
Den fulde liste med juridiske enheder, formål og aftalestatus findes på Underdatabehandlere.
Ud over billedgenerering findes der ikke en konfiguration inden for AgentBase' egen behandlingskæde, der ruter persondata til USA eller andre tredjelande men vælger jeres organisation selv en modeladgang under Administration → Organisation → Integrationer, træder jeres eget valg af modtager i stedet (afsnit 9).
Indbyggede opslag i offentlige registre
Ud over underdatabehandlerne kalder nogle af de indbyggede noder danske registre og offentlige API'er på platformens egen adgang, altså uden at I selv skal opsætte noget. Der sendes kun det, opslaget kræver typisk et CVR-nummer, en adresse, en ejendom eller et dokumentnummer, ikke jeres kørselsdata i øvrigt:
| Opslag | Modtager |
|---|---|
| Ejendoms- og adressedata (Datafordeleren) | graphql.datafordeler.dk |
| Adresseopslag (DAWA) | api.dataforsyningen.dk |
| CVR-opslag og årsrapporter | distribution.virk.dk |
| Lovgivning fra Retsinformation | retsinformation-api.dk |
| Plandata (lokalplaner, zoner) | geoserver.plandata.dk |
| Overenskomsttekster | overenskomstdatabasen.dk |
| Transskription af lyd | platform.syv.ai |
Virk.dk's distributions-API understøtter kun ukrypteret HTTP for de anvendte endepunkter, så CVR Opslag-noden kalder over http://, ikke https://. Det er en undtagelse fra reglen i afsnit 6 om, at kald ud af platformen sker over TLS. Der sendes kun søgeparametre (fx et CVR-nummer) og der modtages offentligt tilgængelige virksomhedsdata, men opslaget er læsbart undervejs. Er det uacceptabelt i jeres anvendelse, bør noden ikke bruges.
Idriftsætterens egne udgående integrationer
Agent-grafen tilbyder blandt andet noderne Hent fra API, Send Email, CVR Opslag og Databaseforespørgsel, som lader idriftsætter kalde eksterne systemer, idriftsætter selv vælger og kontraktligt har styr på (se Byggeklodser oversigt). Sådanne kald er ikke en del af AgentBase' egen behandlingskæde de udgør idriftsætterens egen integration som dataansvarlig, og det er idriftsætteren, der vurderer modtagerens placering og lovlighed af videregivelse. AgentBase logger kaldet (endpoint, status, varighed) for sporbarhed.
Skal hele anvendelsen inklusive idriftsætterens egne integrationer holdes i EU/EØS, skal idriftsætter alene kalde EU-baserede modtagere fra disse noder og bekræfte det ved versionsgodkendelse.
6. Kryptering transit, opbevaring og nøgler
| Lag | Mekanisme | Detaljer |
|---|---|---|
| Transit (klient ↔ AgentBase) | TLS 1.2 eller nyere | Al ekstern trafik via HTTPS. |
| Transit (AgentBase ↔ underdatabehandler) | TLS 1.2 eller nyere | Kald til OpenAI, Mistral, Lettermint, ElevenLabs m.fl. sker over HTTPS. Én undtagelse: CVR Opslag-noden kalder Virk.dk's distributions-API ukrypteret, fordi API'et ikke tilbyder andet (afsnit 5). |
| Transit (intern mellem tjenester) | TLS eller isoleret privat netværk | Ingen klartekst-trafik mellem komponenter. |
| Opbevaring (database og lagring) | AES-256 at-rest | Disk-niveau-kryptering hos Hetzner. |
| Opbevaring (hemmeligheder, API-nøgler) | Felt-niveau-kryptering oven i at-rest | AES-128 i CBC-tilstand med HMAC-SHA256-integritetsbeskyttelse (Fernet). Nøglen administreres af applikationen og udledes af en dedikeret hemmelighed; nøglen er versioneret, så den kan udskiftes uden at ældre rækker bliver ulæselige. Bemærk, at AES-256 i denne tabel dækker disk-krypteringen ikke felt-niveauet. |
| Adgangskoder | Adaptiv hash (bcrypt eller tilsvarende) med salt | Lagres aldrig i klartekst. |
| Backups | Krypteret backup | Geografisk adskilt fra primære systemer, inden for EU/EØS. |
Krypteringsnøgler administreres af syv.ai/applikationen. Der er ingen kunde-administreret nøgleløsning (BYOK) som standard. Hetzner ser ikke klartekst af hemmeligheder eller felt-niveau-krypterede data.
7. Logning hvad logges, af hvem, hvor længe?
| Hændelse | Indhold | Lagring | Opbevaring |
|---|---|---|---|
| Brugerlogin og -logud | Registreres ikke som selvstændige hændelser. Selve login-kaldet indgår i applikationsloggen som et API-kald (endepunkt, status, varighed), men uden en logget hændelse med bruger-id. Logud sker udelukkende i browseren, så der findes ingen logud-hændelse på serveren | Strukturerede applikationslogs (kun som API-kald) | 6 måneder |
| Oprettelse/ændring af agent | Bruger, version, ændringssæt | PostgreSQL (versionshistorik) | Automatisk oprydning planlagt; frosne øjebliksbilleder, der indgår som evidens i kvalitetskontrollen, bevares |
| Kørsler af agents og apps | Input, output, status pr. node, varighed, fejl | PostgreSQL (kørselshistorik) | Organisationens valgte periode (standard 184 dage); registreringen bevares |
| API-kald (REST-endpoints) | Endpoint, bruger, status, varighed | Strukturerede applikationslogs | 6 måneder |
| Administrative handlinger | Auditsporet dækker i dag to handlinger: ændring af opbevaringsperioden og rydning af en agents kørselshistorik. Brugeraktivering og rolleændring skrives ikke til auditsporet (de er planlagt tilføjet senere) | PostgreSQL (admin_audit_log) | Bevares (slettes ikke automatisk) |
Opbevaringsperioden for kørselsdata konfigureres af organisationens administrator direkte i AgentBase under Administration → Organisation → Generelt → Dataopbevaring, mellem 7 og 3653 dage; standard er 6 måneder (184 dage). Når den automatiske sletning er aktiveret på platformen, fjernes indholdet af ældre kørsler løbende (mindst én gang i timen), mens registreringen af kørslen bevares af hensyn til fakturering og statistik; sletningen har da virkning i den aktive database inden for en time og slår igennem i backups i takt med backup-rotationen (p.t. 2 måneder).
Den automatiske sletning styres af en kontakt på platformen, der er slået fra som standard. Er den ikke slået til i jeres miljø, gemmes den valgte opbevaringsperiode, men indholdet fjernes ikke af sig selv. Skærmbilledet Dataopbevaring viser status: er funktionen ikke aktiv, står der "Automatisk sletning er endnu ikke aktiveret — indstillingen gemmes, men den automatiske sletning tages først i brug, når funktionen aktiveres på platformen." Bekræft status hos syv.ai, før den automatiske sletning beskrives som virkende i en DPIA eller et spørgeskema.
Byggeklodsers hukommelse mellem kørsler indgår ikke i den tidsbaserede oprydning. En markør har ingen alder, hvor den bliver forældet, og rækkerne har ingen brugerkolonne, så de kan ikke fremsøges pr. person. De slettes automatisk sammen med flowet (kaskadesletning) — og ellers manuelt, ved at en bruger med mindst Udvikler-rollen nulstiller hukommelsen for flowet eller for en enkelt byggeklods; det er den praktiske slettevej, og handlingen logges i auditsporet. Et arkiveret flow, der ikke kan slettes, fordi det indgår som evidens i kvalitetskontrollen, beholder sin hukommelse, indtil den nulstilles. Se Systembeskrivelsen, afsnit 7.1 for den fulde aftale.
Politikken er den samme som i Systembeskrivelsen, afsnit 7.1, hvor de detaljerede sletteregler pr. datatype fremgår.
For uafhængig retention og langtidsopbevaring kan logs eksporteres som JSON (LOG_JSON=true) til kundens egen SIEM-/observabilitetsplatform, hvor en længere eller kortere automatisk sletning kan håndhæves uafhængigt af AgentBase.
8. Anonymiseringsnodens rolle
Anonymiser tekst er en valgbar node, der kan placeres i en agent-graf før noder, som sender data til eksterne underdatabehandlere. Den erstatter direkte personhenførbare oplysninger (CPR-numre, navne, adresser, telefonnumre, virksomheder) med pladsholdere.
For at finde personoplysningerne sender noden den originale, ikke-maskerede tekst til sprogmodel-udbyderen. Noden har sin egen modelvælger, og standarden er en EU-behandlet model hos Mistral AI SAS (FR); vælger byggeren en gpt-*-model, går teksten i stedet til OpenAI Ireland Ltd. Først når modellen har peget på oplysningerne, foretager AgentBase selve udskiftningen lokalt.
Noden forhindrer altså ikke, at rå tekst har været hos sprogmodel-udbyderen. Den forhindrer, at den rå tekst går videre til det næste eksterne kald for eksempel til OCR-leverandøren, til jeres eget system via Hent fra API, eller ind i en prompt, der gemmes i et resultat, mange mennesker kan se. Det er stadig en meningsfuld foranstaltning, men den skal beskrives korrekt i en DPIA: modtagerkredsen indskrænkes, den fjernes ikke.
Det er vigtigt at forstå, at anonymisering ikke er aktiveret som standard. Hvorvidt en agent anvender noden, og hvor den placeres, bestemmes af udvikleren, der bygger agenten. Dataansvarlige bør:
- Verificere i kvalitetskontrollen (mindst Anmelder-rollen), at flows der modtager personoplysninger, anonymiserer før eksterne kald hvor det er passende.
- Teste anonymiseringen på et kontrolleret datasæt og dokumentere det i agentens evalueringer.
- Være opmærksom på, at anonymisering ikke nødvendigvis er pseudonymisering i GDPR-forstand kontekstuelle oplysninger kan stadig genidentificere personer.
- Være opmærksom på, at noden i sig selv udgør en overførsel til sprogmodel-udbyderen (se advarslen ovenfor). Skal en tekst slet ikke ses af en sprogmodel, er noden ikke løsningen så skal oplysningerne holdes ude af flowet.
Hvor det ikke er muligt at anonymisere (fx hvis selve personoplysningen er det, modellen skal arbejde på), er det kombinationen af Zero Data Retention og "ingen træning" hos modeludbyderen, der skal bære risikoen sammen med idriftsætters behandlingsgrundlag.
9. Konfigurationsafhængigheder DPO bør være opmærksom på
Følgende valg har materielle konsekvenser for dataflowet og bør dokumenteres i den dataansvarliges DPIA og i agentens versionsnoter:
| Konfiguration | Standard | Konsekvens hvis ændret |
|---|---|---|
| Valgt model i Sprogmodel-noden | En OpenAI-model (EU/EØS · ZDR) | Modelvælgeren i noden tilbyder også en Mistral-model. Vælger byggeren den, går prompten til Mistral AI SAS (FR), også selvom flowet ikke læser dokumenter. |
| Egne modeladgange (Administration → Organisation → Integrationer) | Ingen platformens adgang bruges | En organisation kan bruge sine egne adgange, og de vælges i denne rækkefølge pr. team og derefter pr. organisation: eget selvhostet, OpenAI-kompatibelt endepunkt → egen Azure-ressource → egen OpenAI-nøgle → platformens adgang. De to første betyder, at data sendes til et endepunkt, I selv udpeger og så er det jeres valg af modtager, ikke syv.ai's underdatabehandlerliste, der afgør, hvor data behandles. |
| OCR-leverandør (Indlæs dokument) | Mistral AI SAS (FR · ZDR · ingen træning) | Fast. Der kan ikke vælges en anden OCR-leverandør. Ændringer i underdatabehandler-listen følger Databehandleraftalens Bestemmelse 7.3. |
| Billedgenerering-noden / chat-værktøjet "Generér billede" | Ikke i brug, medmindre noden placeres i en agent eller værktøjet kaldes i chatten | Tredjelandsoverførsel til Eleven Labs Inc. (USA, DPF-certificeret, ZDR) af beskrivelse og referencebilleder. Bør dokumenteres i DPIA'en, og referencebilleder med personoplysninger bør undgås eller anonymiseres. |
| Anonymiser tekst placeret før eksterne kald | Ikke automatisk | Data sendes som det er, hvis noden ikke er placeret og noden er i sig selv et kald til sprogmodel-udbyderen (afsnit 8). |
| Valgt model i Anonymiser tekst | glm-5-2, behandlet hos Mistral AI SAS (FR · ZDR) | Vælger byggeren en gpt-*-model, sendes den originale tekst i stedet til OpenAI Ireland Ltd. (EU/EØS · ZDR). |
Logeksport (LOG_JSON=true) til eget SIEM | Ikke aktiv | Uden eksport håndhæves retention manuelt af administrator. |
| Telemetri til ekstern overvågningstjeneste | Slås til med en adgangsnøgle | Er den slået til, eksporteres logs, HTTP-sporing (inklusive kaldets indhold) og sporing af modelkald (uden prompt-indhold) til tjenesten. Bekræft status og region hos syv.ai. |
| Hent fra API-, Send Email-, Databaseforespørgsel-noder mod eksterne systemer | Ingen som standard | Idriftsætterens egen integration som dataansvarlig modtagerens placering og lovlighed af videregivelse vurderes af idriftsætter, ikke af syv.ai. |
| CVR Opslag-noden | Tilgængelig | Kalder Virk.dk's distributions-API ukrypteret over http:// (afsnit 5). |
| Døre uden indlogget bruger (indlejret app, webhook, planlagt kørsel) | Ingen som standard | Kørslen har ingen bruger bag sig; en webhook gemmer desuden kaldets indhold, svaret og afsenderens IP-adresse (afsnit 2). |
| Python Kode-node | Tilgængelig, sandkasse-eksekveret | Begrænset netværks- og filsystemadgang, men idriftsætter bør gennemgå kode der får adgang til personoplysninger. |
Hvis en konkret anvendelse afviger fra standarden på et eller flere af punkterne ovenfor, ændres dataflowet og dermed risikobilledet. Det skal dokumenteres i DPIA'en for anvendelsen.
10. Referencer
- Systembeskrivelse for AgentBase særligt afsnit 1.5 (forsyningskæde), afsnit 2 (komponenter), afsnit 3 (datakategorier) og afsnit 7 (logning).
- Databehandleraftale særligt Bilag B (godkendte underdatabehandlere) og Bilag C.5 (lokationer for behandling).
- DPIA-skabelon for vurdering af konkrete anvendelser bygget på AgentBase.
- Underdatabehandlere den fulde liste med juridiske enheder, lokationer og aftalestatus.
- Byggeklodser oversigt hvilke noder der findes, og hvad hver af dem kalder.
11. Revisionshistorik
| Version | Dato | Ændring | Ansvarlig |
|---|---|---|---|
| 1.0 | 2026-05-01 | Første udgave af dataflow-siden. | syv.ai |
| 1.1 | 2026-05-01 | Afsnit 1 og 7 opdateret til at afspejle den fælles standard på 6 måneders opbevaring af kørselslogs, uploadede dokumenter og brugerdata, der kan konfigureres kortere eller længere efter aftale med syv.ai. | syv.ai |
| 1.2 | 2026-08-19 | Afsnit 1 og 7 opdateret: Opbevaringsperioden for kørselsdata konfigureres nu af organisationens administrator direkte i AgentBase (Administration → Opbevaring, 7–3653 dage, standard 184 dage) med automatisk, løbende sletning af indholdet; administrative handlinger logges i PostgreSQL (admin_audit_log, bevares), login-hændelser i applikationsloggen. | syv.ai |
| 1.3 | 2026-09-05 | Gennemgang mod koden. Anonymiser tekst beskrevet korrekt: noden sender den originale tekst til sprogmodellen og maskerer først bagefter (afsnit 1, 2, 8, 9). De to indbyggede AI-assistenter (Chat og flow-assistenten) tilføjet som dataflow, med præcisering af, at vedhæftede filers indhold ikke sendes med (afsnit 2, 3). Lettermint B.V. tilføjet som underdatabehandler, og de indbyggede offentlige registeropslag beskrevet, herunder at CVR-opslaget sker ukrypteret (afsnit 3, 5, 6). Telemetri til ekstern overvågningstjeneste beskrevet (afsnit 3, 9). Dørene ind i platformen uden indlogget bruger beskrevet (afsnit 2). Kryptering præciseret: AES-256 dækker disken, felt-niveauet bruger en applikationsadministreret Fernet-nøgle (afsnit 1, 6). Nodenavne rettet til de danske navne i produktet (afsnit 5, 9). Administrator-rollen rettet: den er ikke team-isoleret, og Superadministrator tilføjet (afsnit 3). Forbehold om, at den automatiske sletning kan være slået fra, tilføjet, og menustien rettet til Administration → Organisation → Generelt → Dataopbevaring (afsnit 1, 7). Opbevaring rettet: ingen objekt-storage, dokumentarkivet gemmer udtrukket tekst, kørsler gemmer filer (afsnit 4). Log-rækkerne rettet: der findes ingen selvstændig login-/logud-hændelse, og auditsporet dækker to handlinger (afsnit 7). Påstanden om, at leverandør og modeladgang er fast, rettet: en Mistral-model kan vælges i Sprogmodel-noden, og organisationer kan bruge egne modeladgange (afsnit 9). | syv.ai |
| 1.4 | 2026-09-07 | Tilføjet Eleven Labs Inc. (USA) som underdatabehandler for billedgenerering i afsnit 1, 2, 3, 5, 6 og 9. Afsnit 1 og 5 ændret fra "ingen tredjelandsoverførsler" til "én tredjelandsoverførsel, som er et tilvalg". | syv.ai |
| 1.5 | 2026-09-09 | Afsnit 4 udvidet med datakategorien appens hukommelse — den vedvarende tilstand, en publiceret app kan gemme for sine slutbrugere (kladder, sager). Opbevares i AgentBase' egen PostgreSQL hos Hetzner DE på lige fod med øvrige applikationsdata. | syv.ai |
| 1.6 | 2026-09-10 | Afsnit 4 og 7: byggeklodsers hukommelse mellem kørsler beskrevet med opbevaring og sletning (ingen brugerkolonne, ingen udløbsdato, kaskadesletning med flowet, nulstilling som den praktiske slettevej, forbehold om arkiverede flows). | syv.ai |