Aidoni
← Tillbaka till insights
AI-produktutveckling•4 min läsning•

Agent harness: så bygger vi körningen runt en språkmodell

Underline

En agent harness är körningen runt en språkmodell: verktyg, minne, en loop, behörigheter, utvärderingar och en budget. Så bygger vi våra egna.

I korthet

  • En agent harness är körningen runt en språkmodell: vilka verktyg som finns, vad som får plats i fönstret, när ett varv tar slut och vad som skrivs ned.
  • Modellen föreslår nästa steg. Harnesset avgör om steget körs.
  • Vi bygger den körningen själva, och vi kör den i vårt eget utvecklingsarbete.

Verktyg ligger bakom en tillåtelselista

Ett verktyg är ett namn och ett schema. Katalogen visas inte för modellen. Vi slår upp en tillåtelselista mot verktygen som faktiskt finns, och håller listan modellen ser kort, så att fönstret handlar om uppgiften. Längre instruktioner för ett verktyg ligger utanför tills något ber om dem.

Verktyg som styr själva körningen är dolda även för ett jokertecken: den som kör varvet, köerna, sessionen och det råa anropet till modellen. Ett anrop som inte matchar väntar på en människa.

Kontext är en budget. Minnet är ett lager.

Kontexten sätts ihop för ett varv. Får den inte plats når varvet aldrig leverantören. Minnet är ett eget lager: arbetsläge, iakttagelser och sök.

Det vi hämtar läggs in i anropet. Det skrivs inte in i transkriptet som om modellen hade sagt det. Om minnessteget felar körs varvet ändå.

En loop tar slut på en budget

Ett varv har en form: förstå uppdraget, välja arbetssätt, planera, agera, kontrollera, sedan svara och stanna. Saknas valet, eller felar det, faller vi tillbaka till en reaktiv loop. En väg som måste besluta innan den agerar stannar om beslutet inte kommer.

En plan är en checklista som en människa kan låta vara, tvinga fram eller hålla som grind. Ett steg körs per varv. En missad kontroll planeras om en gång, och sedan släpps den ofärdiga svansen. Gränsen sitter i harnesset, där modellen inte kan ändra den.

function nextTurn(index, budget) {
  const next = index + 1;
  if (next >= budget) {
    return "stop";
  }
  return {
    index: next,
    budget,
  };
}

En underkörning kan inte få fler varv än den överordnade har kvar, och den ärver inte en tvingad plan.

Tillstånd först, sedan en grind

Varje körning, och varje underkörning, får en egen sandlåda. Tillgång till filer beviljas och kontrolleras igen innan den används. En körning som bara får läsa kan inte ta upp verktyg som ändrar något. Kontroller före och efter ett verktyg stoppar körningen om de felar.

Handlingar som inte går att ta tillbaka frågar alltid en människa, även när loopen annars skulle tillåta dem: merge, rebase, land och apply, patch eller delete i ett kluster.

En utvärdering kan stoppa körningen

En utvärdering följer sessionen och får fortsätta eller avbryta, inom sin egen budget av varv. Standardtestet söker en delsträng.

Ett bevis på att en ändring håller är bundet till en revision. Det är inte utvärderingen, och det är inte målet. Målet säger vad som är klart. Utvärderingen säger om den här körningen får fortsätta.

Skriv ned varvet

Varje varv läggs till: anropet, resultatet och tokenanvändning per lager. Utesluter leverantören en kostnad, sätter vi dit en från modellkatalogen, så att varvet kan kostnadsberäknas ur sin egen post.

Spår kan skickas vidare. De krävs inte för att varvet ska köra.

Försök igen bara innan utdata har börjat

Ett anrop till leverantören görs om bara innan någon riktig utdata har skickats vidare. En tidsgräns för tystnad görs inte om. En ström som pågår för länge stoppas, och det stoppet görs inte om.

Dålig utdata, eller ett svar harnesset nekar, görs om ett fast antal gånger. Sedan tar varvet slut.

Där det möter ett uppdrag

En agent som ska gå i drift är en AI-produktionssprint: ett system, ett golden set, övervakning, en körjournal och ett beslut om den ska skalas. Ett team som ställer kodagenter framför sina utvecklare är ett AI-kodinförande: kontext i repot, skills, en säkerhetsgräns och en grind i CI innan en ändring landar.

Vanliga frågor

Vad är en agent harness? Det är körningen runt en språkmodell. Modellen föreslår nästa steg. Harnesset avgör vilka verktyg som finns, vad som får ligga i fönstret och om steget körs.

Hur tar en loop slut? Ett varv har en budget som modellen inte kan höja. En missad kontroll planeras om en gång, sedan släpps den ofärdiga svansen. En utvärdering stoppar sessionen när dess egen budget av varv är slut.

När räcker en kodassistent? Den räcker för en ändring som en människa fortfarande granskar. Den räcker inte för en produktagent som agerar utan en människa på varje varv. Den agenten behöver resten av harnesset: en tillåtelselista, en grind, ett kvitto och en utvärdering som kan avbryta den.

← Tillbaka till insights