Harness engineering: hvad det er, og hvordan det fungerer

En letforståelig guide til, hvad AI-harnesses er, og hvordan harness engineering former, hvad AI-agenter kan gøre.

Diagram of an AI harness: an AI model that reads and writes text sits at the center, connected to six parts: agent loop, context management, tools, memory, permissions, and verification.

Hvad harness engineering betyder

Harness engineering er arbejdet med at bygge et AI-værktøjs harness, dvs. alle dele af værktøjet undtagen selve AI-modellen.

Modellen er AI-systemet, som er trænet på store mængder tekst, så det kan læse og skrive sprog. Eksempler på AI-modeller er GPT fra OpenAI, Claude fra Anthropic og Gemini fra Google.

En model kan i sig selv kun modtage tekst (og nogle gange billeder eller lyd) og skrive tekst tilbage. Den kan ikke huske tidligere samtaler, slå aktuelle oplysninger op eller køre kode. Derfor har den brug for en harness, der styrer, hvilke oplysninger modellen får, hvilke apps den kan bruge, hvad den har lov til at gøre, og hvordan dens arbejde bliver kontrolleret.

Selv en simpel chatassistent har brug for en harness. Modellen glemmer hver udveksling, så snart den har svaret, så harnessen fører log over samtalen. Hvis nogen spørger om Paris og derefter følger op med »hvad er dens indbyggertal?«, sender harnessen begge spørgsmål samlet til modellen. Sådan ved modellen, at »dens« henviser til Paris.

Harness engineering er en af grundene til, at to værktøjer bygget på den samme model kan klare sig så forskelligt. I en uafhængig test holdt forskere for eksempel modellen (GPT5) uændret og ændrede kun harnessen, og modellens score i en kodningstest ændrede sig med op til 11 %.

Udviklere af AI-modeller som Anthropic og OpenAI bygger harnesses til deres egne AI-produkter, f.eks. Claude Code og Codex. Og virksomheder, der bygger AI-produkter, designer harnesses til de underliggende modeller, de vælger. Folk, der bruger AI-værktøjer, former også selv en del af harnessen. Mange værktøjer lader dem tilføje faste instruktioner, forbinde apps og vælge, hvilke handlinger der kræver deres godkendelse, før værktøjet fortsætter.

Harness engineering til AI-agenter

Alle AI-værktøjer har en harness, men harness engineering bliver særligt vigtigt, når man arbejder med AI-agenter. Agenter håndterer opgaver i flere trin på egen hånd, f.eks. at undersøge konkurrenter og samle resultaterne i et regneark, og harnessen kører hvert eneste trin. Så hvis harnessen begår en fejl, f.eks. henter sidste års priser, påvirker det også resten af trinnene.

De fleste agent-harnesses består af seks hoveddele:

1. Agentløkken

Agentløkken er kode i harnessen, der holder en opgave i gang, ét trin ad gangen.

AI-modellen beslutter det næste trin, der skal til for at løse opgaven, og skriver et værktøjskald: en kort anmodning, der angiver et værktøj i harnessen, f.eks. websøgning, og hvad værktøjet skal gøre.

Harnessen opfanger anmodningen, kører søgningen og føjer resultaterne til det, modellen kan se. Modellen læser dem og beslutter, hvad den skal gøre derefter.

2. Konteksthåndtering

En model tilegner sig generel viden under træningen, men den viden stopper ved den dato, hvor træningen sluttede. Den omfatter ikke noget, der er specifikt for den aktuelle opgave, f.eks. en virksomheds filer, dagens nyheder eller det, der blev sagt tidligere i samtalen.

Til alt dette er modellen afhængig af sit kontekstvindue: den tekst, harnessen giver den før hvert svar, f.eks. dens instruktioner, forespørgslen, samtalen indtil nu og søgeresultater.

Vinduet kan kun rumme en fast mængde tekst. Og allerede inden vinduet er fyldt op, overser modeller nogle gange oplysninger, der er begravet midt i lange input.

Derfor står harnessen for konteksthåndteringen og udvælger kun de oplysninger, som hvert trin har brug for. Hvis opgaven for eksempel er at sammenligne fem konkurrenters priser, kan harnessen medtage hver virksomheds prisside i stedet for hele deres website. Ved lange opgaver kan harnessen også erstatte den detaljerede log over tidligere trin med et kort resumé, så modellen kan holde styr på, hvad den har gjort, uden at historikken fylder vinduet op.

3. Værktøjer

Værktøjer er kode, der udfører de handlinger, modellen beder om. Hvert værktøj håndterer én type handling, f.eks. at søge på nettet, åbne og læse en webside, køre kode eller redigere en fil. Når modellen skriver et værktøjskald, sender harnessen det videre til det rette værktøj og returnerer resultatet.

Mange harnesses indeholder også connectors, som er værktøjer, der forbinder agenten med en bestemt app, f.eks. e-mail, en kalender eller et delt drev, via adgang, som en person har givet. Med en kalender-connector kan en agent for eksempel tjekke en persons tilgængelighed, før den foreslår et mødetidspunkt.

4. Hukommelse

Hukommelse er gemte oplysninger, der overføres fra én session til den næste. Harnessen gemmer korte noter under en session, f.eks. en persons præferencer eller status på et projekt. Ved starten af næste session føjer harnessen disse noter til kontekstvinduet, så modellen læser dem, før den læser den nye forespørgsel. Det er for eksempel sådan, en agent kan fortsætte en ugentlig rapport, hvor den slap, i stedet for at starte forfra.

5. Tilladelser

Tilladelser er regler for, hvad en agent kan få adgang til og gøre. Adgangsregler fastlægger, hvilke filer, apps eller websites den kan åbne. Godkendelsesregler fastlægger, hvilke handlinger der skal vente på en persons godkendelse, f.eks. at sende en besked eller foretage et køb.

Virksomheden, der laver agenten, opsætter nogle af disse regler i harnessens kode. Derefter kan en organisations administratorer tilføje deres egne, og de enkelte brugere kan for eksempel vælge, hvilke konti der skal forbindes.

6. Verificering

Verificering er kode, der kontrollerer agentens arbejde, før det når frem til en person. Den bruger to slags kontroller:

  • Faste regler, som er specifikke tests, der består eller fejler på samme måde hver gang, f.eks. en kontrol af, at alle tal i en rapport fremgår af et dokument, som agenten faktisk har læst.
  • En gennemgang foretaget af en anden AI-model, som læser arbejdet og vurderer det. Den kan fange problemer, der er svære at omsætte til en regel, f.eks. et resumé, der udelader en vigtig pointe.

Ingen enkelt kontrol fanger alt, så harnesses kombinerer normalt begge typer. Når en kontrol finder et problem, føjer harnessen en beskrivelse af det til modellens kontekstvindue og sender opgaven tilbage gennem agentløkken. Modellen retter problemet og prøver igen, så mange fejl bliver rettet, før brugeren ser resultatet.

Eksempler på harness engineering

Forberedelse til et kundemøde

Opgave: En kundeansvarlig beder en agent om at forberede en briefing til morgendagens møde med en kunde, der dækker åbne sager og et udkast til dagsorden.

Det gør harnessen:

  • Via en e-mail-connector søger agenten i den kundeansvarliges indbakke efter korrespondance med kunden.
  • Tilladelserne giver den lov til at læse e-mails, men ikke til at sende dem.
  • Konteksthåndteringen giver kun modellen de seneste tre måneders beskeder med den pågældende kunde, ikke hele indbakken.
  • Agentløkken kører flere runder med søgning og læsning, og modellen grupperer det, den finder, i åbne sager.
  • Verificeringen kontrollerer derefter, at hver sag i briefingen kan føres tilbage til en rigtig e-mail.

Muligt resultat: Den kundeansvarlige får en briefing på én side, hvor hvert punkt kan spores tilbage til den e-mail, det stammer fra.

Opdatering af en månedlig salgsrapport

Opgave: En driftsansvarlig beder en agent om at opdatere den månedlige salgsrapport med denne måneds tal.

Det gør harnessen:

  • Hukommelsen indlæser noter fra sidste måneds session, herunder rapportens format og den driftsansvarliges ønske om at afrunde tal til nærmeste tusind.
  • Et filværktøj åbner salgsregnearket på teamets delte drev.
  • Tilladelserne giver agenten lov til at redigere rapportudkastet, men ikke kilderegnearket, så de oprindelige tal ikke kan ændres ved en fejl.
  • Verificeringen kontrollerer, at summerne i rapporten stemmer overens med regnearket.

Muligt resultat: Rapporten kommer i samme format som sidste måned, uden at brugeren skal forklare det igen.

Sortering af en delt indbakke

Opgave: Et supportteam beder en agent om at sortere morgenens indgående henvendelser efter emne og skrive udkast til svar på de almindelige.

Det gør harnessen:

  • Agentløkken gennemgår indbakken én besked ad gangen.
  • For hver besked vælger modellen en emnemærkat, og harnessen tilføjer den via e-mail-connectoren.
  • Ved opgavens start føjer harnessen teamets godkendte svarskabeloner til kontekstvinduet som vejledning, så modellen baserer hvert udkast på en skabelon.
  • En godkendelsesregel holder hvert svar som kladde, indtil nogen på teamet har gennemgået og sendt det.

Muligt resultat: Teamet starter dagen med sorterede henvendelser og svar, der venter på gennemgang.

Rettelse af en fejl på et website

Opgave: En udvikler beder en kodningsagent om at rette en fejl, der forhindrer en betalingsknap i at virke.

Det gør harnessen:

  • Agenten arbejder i en sandbox, en isoleret kopi af koden, hvor dens ændringer ikke kan påvirke liveversionen af websitet.
  • Et kodeværktøj gør det muligt for modellen at læse og redigere filer.
  • Efter hver ændring kører verificeringen projektets automatiserede tests.
  • Eventuelle fejl sendes tilbage til modellen som ny information.

Muligt resultat: Agenten bliver ved med at justere sin rettelse, indtil testene består. Udvikleren gennemgår derefter ændringen, før den går live.

Harness engineering vs. prompt engineering vs. context engineering

Prompt engineering er arbejdet med at udforme og optimere en enkelt forespørgsel. Context engineering er arbejdet med at styre alt, hvad modellen ser. Harness engineering er processen med at designe og forbedre hele det system, modellen arbejder i.

Begreb

Hvem gør det typisk

Eksempel fra en opgave med konkurrentanalyse

Prompt engineering

Alle, der skriver en forespørgsel

At bede om »én række pr. konkurrent, én kolonne pr. prisniveau«

Context engineering

De personer, der bygger harnessen, plus brugere, der vedhæfter filer eller skabeloner

At give modellen hver konkurrents prisside og teamets regnearksskabelon

Harness engineering

Virksomheder, der laver AI-produkter, plus teams og brugere, der vælger indstillinger og præferencer og uploader oplysninger

At beslutte, hvilke værktøjer agenten kan bruge, hvilke handlinger der kræver godkendelse, og hvordan dens arbejde bliver kontrolleret

Sådan kan brugere påvirke en AI-harness

Det meste af en agent-harness kommer fra virksomheden, der laver agenten, men mange AI-produkter lader brugerne tilpasse en del af den via indstillinger som brugerdefinerede instruktioner, forbundne apps og godkendelser.

Brugere kan forme en agent-harness og forbedre agentens resultater på fire måder:

1. Faste instruktioner

Faste instruktioner er noter, som en person skriver én gang, så harnessen kan føje dem til kontekstvinduet ved starten af hver opgave. De er værd at oprette for alt det, man ellers ville gentage i forespørgsel efter forespørgsel: hvem man er, og hvad man laver, hvordan man foretrækker, at tekster skrives, eller reglerne for en tilbagevendende opgave som en kundes månedlige rapport.

Mange AI-produkter tilbyder faste instruktioner på to niveauer. Instruktioner for hele kontoen egner sig til ting, der gælder for alt arbejde, f.eks. stavepræferencer. Projektinstruktioner egner sig til en enkelt kunde eller arbejdsproces, så vejledning til den ene ikke smitter af på den anden.

Faste instruktioner fungerer på samme måde i chatassistenter og agenter, men agenter er mere afhængige af dem. I en chat kan en person korrigere AI'en efter hvert svar. En agent kan tage mange trin, før nogen ser dens arbejde, så instruktioner givet på forhånd er en af de få måder at styre den på undervejs.

Sådan skriver du effektive faste instruktioner

  • Start med en kort instruktion, f.eks.: »Jeg er marketingchef i en softwarevirksomhed. Skriv på letforståeligt engelsk, hold resuméer under 200 ord, og brug amerikansk stavning.«
  • Udbyg dem, når AI'en laver en fejl. Hvis AI'en bliver ved med at afrunde tal, som teamet skal have helt præcise, så tilføj en linje om det.
  • Gør instruktionerne specifikke: »Angiv præcise tal, aldrig afrundede« er bedre end »Vær nøjagtig«.
  • Hold listen kort, og fjern linjer, når de ikke længere er nyttige, da hver linje optager plads i kontekstvinduet.

2. Forbundne apps

Forbundne apps knytter et AI-produkt til de værktøjer, en person allerede bruger, f.eks. e-mail, en kalender eller et delt drev. Når en app er forbundet, kan AI'en arbejde med personens egne oplysninger i stedet for kun det, der er indsat i chatten.

Forbindelser er værd at oprette, når en opgave afhænger af oplysninger, der ligger i disse apps, f.eks. når man skal forberede en mødebriefing ud fra e-mailtråde eller opsummere dokumenter på et delt drev.

Sådan forbinder du apps sikkert

  • Forbind kun de apps, en opgave har brug for, da hver forbindelse giver endnu en mulighed for fejl.
  • Vælg skrivebeskyttet adgang, hvor det tilbydes. En agent, der forbereder mødebriefinger, skal for eksempel kunne læse e-mails, ikke sende dem.
  • Opsæt forbindelser pr. projekt, hvor produktet tillader det. I Perplexity kan man for eksempel vælge, hvilke connectors hvert projekt bruger.
  • Husk at afbryde forbindelsen til apps, der ikke længere bruges.

3. Godkendelsesindstillinger

Godkendelsesindstillinger afgør, hvilke handlinger der skal vente på en persons godkendelse, før AI'en går videre. Nogle godkendelser er indbygget i produktet, og nogle produkter lader folk vælge, hvilke andre handlinger der kræver en.

Sådan opsætter du godkendelsesregler

  • Kræv godkendelse af handlinger, der ikke kan fortrydes, f.eks. at sende en besked, foretage et køb eller slette en fil.
  • Hold listen over godkendelser kort. Hvis en agent beder om godkendelse af hvert eneste lille trin, begynder folk at godkende uden at læse.

4. Standarder og kontroller

De fleste AI-produkter har nogle standarder indbygget. Perplexity angiver for eksempel kilder i sine svar, så hver påstand kan kontrolleres. Standarder, som brugeren selv fastsætter, tilføjer det, et produkt ikke kan vide af sig selv, f.eks. et teams foretrukne rapportformat.

Sådan fastsætter du standarder for AI-arbejde

  • Giv AI'en en skabelon til tilbagevendende arbejde, så den har en fast struktur at udfylde.
  • Del et eksempel på tidligere arbejde, som teamet var glad for, så AI'en kan ramme samme tone og detaljeringsgrad.
  • Bed om et kildelink ved hvert tal.
  • Gennemgå de første resultater grundigt, og gør mangler, der går igen, til en ny fast instruktion.

Perplexitys tilgang til agent-harnesses

Perplexity Computer kører på en modeluafhængig harness, som samler over 20 avancerede modeller i ét system. Den opdeler hver opgave i delopgaver, overdrager dem til subagenter (separate agenter, der hver tager sig af én del), og sender hver del af arbejdet videre til en model, der egner sig til netop den del.

Se, hvordan du opsætter instruktioner, filer og connectors, i guiden til projekter i Perplexity.

Ofte stillede spørgsmål

Hvad er en harness-ingeniør?

En harness-ingeniør designer og vedligeholder det system, der gør det muligt for en AI-model at udføre pålideligt arbejde. Det kan betyde at tilføje et nyt værktøj, som agenten kan bruge, at finde ud af, hvorfor en agent bliver ved med at begå den samme fejl, eller at stramme de kontroller, den udfører, før den afslutter en opgave. Det er ikke en etableret jobtitel, selvom det kan ændre sig. Arbejdet udføres som regel af softwareingeniører hos AI-virksomheder eller i teams, der bygger agenter. I fremstillingsindustrien bruges den samme titel om en person, der designer ledningsnet (på engelsk wire harnesses), altså de kabelbundter, der sidder i biler og maskiner.

Hvad er en agent-harness?

En agent-harness betegner som regel alt i en AI-agent bortset fra selve modellen. Det omfatter den kode, der kører agentløkken, styrer kontekst, udfører værktøjskald, gemmer hukommelse, håndhæver tilladelser og kontrollerer agentens arbejde, før det når frem til et menneske.

Har alle AI-værktøjer en harness?

Ja. Selv en simpel chatassistent er afhængig af en harness til at holde styr på samtalen, da modellen ikke selv husker tidligere beskeder.

Udviklere kan også bruge en model ved at sende forespørgsler til den fra deres egen software via et API (en forbindelse, der lader ét program sende forespørgsler til et andet). I så fald er det udviklerens egen kode, der varetager harnessens opgave.

Vil bedre modeller gøre harnesses overflødige?

Bedre modeller har måske brug for mindre trin-for-trin-vejledning, så en del af det, harnesses gør i dag, kan blive mindre. Men en model alene omdanner kun tekst til tekst. Den har ingen internetforbindelse og ingen adgang til andre apps. Adgang til filer, udførelse af handlinger og håndhævelse af godkendelsesregler foregår alt sammen i softwaren omkring modellen, så det arbejde vil sandsynligvis blive ved med at ligge hos harnessen, uanset hvor dygtige modellerne bliver.