Blogg

Codex Skills: Slik lager du en skill for gjentakende oppgaver

Markdown

SKILL.md-struktur, innlastingsbaner, eksplisitt og automatisk aktivering, resultatkriterier og overføring av en skill til Claude Code.

Les hele artikkelen

Hvis du forklarer det samme for Codex fem ganger i uka — hvordan du formaterer en rapport, sorterer e-post eller utarbeider tekst i din egen stil — kan du skrive ned instruksjonene én gang i en skill. Etterpå kan agenten finne den ut fra beskrivelsen når den passer til oppgaven, eller du kan aktivere den eksplisitt. En skill er en vanlig mappe med en tekstfil som heter SKILL.md; du trenger ikke å programmere for et enkelt bruksområde.

Nedenfor går vi gjennom hvordan en skill er bygd opp, hvor Codex leter etter den, hvordan du lager en steg for steg, og hvordan du velger modell ut fra kostnad. Kommandoene og prisene er basert på OpenAIs offisielle dokumentasjon per 20. september 2026. Vi gjentar ikke installasjonsinstruksjonene for Codex her; de står i veiledningen Codex fra OpenAI: Hva det er, hvordan du installerer og kjører det.

Praktisk informasjon om bruk av Ailoot finnes i dokumentasjonen.

Hva er en skill i Codex?

Viktig poeng

En Codex-skill er en mappe med en SKILL.md-fil som beskriver en prosess: hva som skal gjøres, hva arbeidet skal bygge på, og hvordan et godt resultat ser ut. Til å begynne med holder Codex bare navnene og beskrivelsene av skills i konteksten, og laster inn de fullstendige instruksjonene når den bestemmer seg for å bruke en.

Formatet kalles Agent Skills. Det er en åpen standard som opprinnelig ble utviklet av Anthropic og publisert på agentskills.io. Den støttes av ulike agenter, blant annet Codex, Claude Code og andre kompatible klienter. En enkel skill som bare består av tekstinstruksjoner, kan flyttes mellom dem ved å kopiere mappen. Hvis den inneholder skript, avhengigheter eller en agents/openai.yaml-fil, bør du kontrollere skillen etter overføringen: enkelte innstillinger gjelder bare for en bestemt klient.

Denne innlastingsmetoden kalles progressiv avdekking. Agenten bruker navnet og beskrivelsen til en skill for å avgjøre når den er relevant. Når en oppgave passer til beskrivelsen, leser agenten hele SKILL.md-filen og følger instruksjonene. Dermed kan du ha dusinvis av skills i Codex uten å laste alle instruksjonene inn i konteksten: den første listen opptar ikke mer enn 2 % av kontekstvinduet (eller 8 000 tegn hvis størrelsen på vinduet er ukjent). Hvis det finnes mange skills, forkorter Codex først beskrivelsene. Med et svært stort utvalg kan den utelate noen fra listen og varsle deg.

Det er lett å forveksle en skill med AGENTS.md. Codex leser denne filen i hver prosjektøkt. Den inneholder faste regler: teknologistakken, konvensjoner og kodestil. En skill lastes inn ved behov når en oppgave passer til den. Legg derfor faste regler i AGENTS.md og en gjentakende prosess med trinn i en skill.

Hermes Agent-skills fungerer på lignende måte, men lagres i andre mapper og installeres på en annen måte. De omtales i en egen veiledning: Hermes Agent Skills: installasjon og opprettelse. Denne artikkelen handler bare om Codex.

Hva består en skill av?

Viktig poeng

En skill har minst én SKILL.md-fil med to obligatoriske felt: name og description. Du kan også legge til mappene scripts/, references/ og assets/, samt en agents/openai.yaml-fil med innstillinger.

En skillmappe har denne strukturen:

my-skill/
  SKILL.md        - obligatorisk: metadata og instruksjoner
  scripts/        - valgfritt: kjørbar kode
  references/     - valgfritt: dokumenter som lastes inn ved behov
  assets/         - valgfritt: maler og ressurser
  agents/
    openai.yaml   - valgfritt: utseende og avhengigheter

Selve SKILL.md-filen begynner med en metadatablokk mellom tre bindestreker, etterfulgt av instruksjonstekst i Markdown:

---
name: weekly-sales-report
description: Sett sammen en ukentlig salgsrapport fra en CSV-eksport. Bruk når noen ber om en ukentlig salgsrapport eller en oppsummering per leder.
---

1. Les eksportfilen på banen som brukeren har oppgitt.
2. Grupper radene etter leder, og beregn totalsummen og antallet avtaler.
3. Sammenlign med forrige uke hvis filen for forrige uke ligger i nærheten. Hvis den ikke finnes der, si det tydelig i rapporten.
4. Lagre resultatet i report.md: en tabell per leder, totalsummen og opptil tre viktige endringer med tall, så langt dataene gir grunnlag for det.

Tre regler fra OpenAIs offisielle anbefalinger:

  • Én skill, én oppgave. I stedet for «Håndter all markedsføringen min» bør du velge en konkret oppgave: «sett sammen en salgsrapport fra denne eksporten». Del større prosesser opp i separate skills som kan aktiveres etter hverandre.
  • Skriv trinnene direkte, med tydelige inndata og utdata: hva som skal brukes, hva som skal gjøres, og hvor resultatet skal legges.
  • Begynn med tekstinstruksjoner. Bruk skript i scripts/ når et trinn må utføres på nøyaktig samme måte hver gang, for eksempel for å konvertere en fil eller kontakte et eksternt system.

Codex velger en skill for en oppgave ut fra feltet description, så begynn beskrivelsen med oppgaven og ordene du vanligvis bruker for å beskrive den.

Hvor leter Codex etter skills?

Viktig poeng

Codex leter etter skills på fire nivåer: i prosjektets .agents/skills-mappe (den sjekker gjeldende mappe og hver overordnede mappe opp til repository-roten), i den personlige $HOME/.agents/skills-mappen, i systemmappen /etc/codex/skills og blant OpenAIs innebygde skills.

NivåBaneFormål
Prosjekt.agents/skills i gjeldende mappe og overordnede mapper opp til repository-rotenSkills for et bestemt prosjekt, som kan lagres i git sammen med koden
Bruker$HOME/.agents/skillsDine personlige skills, tilgjengelige i alle prosjekter på maskinen
System/etc/codex/skillsSkills som deles av alle brukere av maskinen eller beholderen
InnebygdFølger med CodexGrunnleggende skills fra OpenAI, som skill-creator

Det er praktisk å lagre prosjektskills i git sammen med koden, slik at hele teamet får det samme utvalget. Personlige skills passer godt for egne prosesser, for eksempel skrivestilen din for e-post. Hvis to skills på forskjellige nivåer har samme navn, slår ikke Codex dem sammen: begge vises i listen, og da blir det vanskeligere å velge. Bruk unike navn.

Til sammenligning lagres Claude Code-skills i .claude/skills, hver med sin egen SKILL.md, og bruker den samme åpne standarden. Du kan overføre en enkel skill dit ved å kopiere mappen. Kjør den etterpå og kontroller at den aktiveres. Se Skills, Subagents, MCP eller Plugins for en sammenligning av Claude Code-utvidelser.

Hvordan avgjør Codex hvilken skill som skal aktiveres?

Viktig poeng

Du kan aktivere en skill eksplisitt: Skriv $skill-name i forespørselen i Codex CLI eller IDE-utvidelsen, eller velg skillen via /skills. Ved implisitt aktivering velger Codex en skill automatisk hvis oppgaven passer til beskrivelsen. Skillen må være tilgjengelig, og automatisk aktivering må være tillatt.

Eksplisitt aktivering er mer pålitelig i starten: Skriv $weekly-sales-report i Codex CLI for å velge akkurat denne prosessen. Implisitt aktivering er mer praktisk til daglig. Når du har skrevet en skill, tester du den med vanlig språk: Be Codex utføre oppgaven med dine egne ord, uten $, og se om den velger skillen. Hvis ikke, bør du først kontrollere om Codex kan se skillen i /skills, om den ligger i en av innlastingsmappene, og om skillen eller automatisk aktivering er deaktivert. Hvis den er tilgjengelig og innstillingene er riktige, kan du forbedre description: Beskriv oppgaven og vanlige måter å formulere forespørselen på.

Du kan også konfigurere en skill slik at den bare er tilgjengelig via en eksplisitt kommando: parameteren allow_implicit_invocation: false i agents/openai.yaml deaktiverer automatisk aktivering, mens $name fortsatt fungerer. Du kan deaktivere en skill helt uten å slette den via ~/.codex/config.toml:

[[skills.config]]
path = "/full/path/to/the/skill/SKILL.md"
enabled = false

Start Codex på nytt etter at du har redigert config.toml. Codex fanger automatisk opp endringer i skillmapper, men start Codex på nytt hvis en ny skill ikke vises.

Slik lager du din egen skill, trinn for trinn

Viktig poeng

Velg én gjentakende oppgave, lag en skill med den innebygde $skill-creator-assistenten eller manuelt, skriv instruksjoner med et tydelig definert resultat, test aktiveringen med vanlig språk, og forbedre skillen etter hver kjøring.

  1. Velg én oppgave

    Velg en prosess du gjentar regelmessig, og som har et tydelig resultat: en rapport, tabell, et brev eller en analyse. Hvis du aldri har fått den typen resultat før, bør du først utføre oppgaven manuelt med en agent. Bruk resultatet som målestokk for instruksjonene.

  2. Lag en skill

    Skriv $skill-creator i en Codex-økt for å lage en skill med den innebygde assistenten. Den spør hva skillen gjør, når den skal aktiveres, og om det trengs skript. Deretter setter den sammen grunnstrukturen for deg. Hvis du vil lage en skill manuelt, oppretter du en .agents/skills-mappe i prosjektet med en undermappe for skillen, for eksempel .agents/skills/weekly-sales-report, og legger en SKILL.md-fil i den med utgangspunkt i eksempelet ovenfor.

  3. Skriv instruksjonene

    Skriv trinnene som en nummerert liste med tydelige inndata og utdata. Hvis prosessen krever presisjon (overføring av data, navneendring, beregning), beskriver du hvert trinn i detalj. For kreative oppgaver (tekstforfatting, valg av argumenter) setter du grenser og kriterier for et godt resultat, samtidig som modellen får rom til å arbeide.

  4. Test aktiveringen

    Be Codex utføre oppgaven med dine egne ord, uten å nevne skillen. Hvis den velger riktig skill, fungerte beskrivelsen for den formuleringen. Test deretter eksplisitt aktivering med $name. Hvis skillen ikke aktiveres, kontrollerer du mappen, om den vises i /skills, og deaktiveringsinnstillingene som er beskrevet ovenfor. Start Codex på nytt hvis en ny skill ikke vises i listen. Hvis eksplisitt aktivering fungerer og automatisk aktivering er tillatt, men Codex ikke reagerer på en forespørsel med dine egne ord, forbedrer du starten av description: Sett oppgaven først, etterfulgt av vanlige måter å formulere den på. Test på nytt.

  5. Forbedre etter kjøring

    Gå gjennom resultatet etter hver kjøring, og fortell agenten hva som skal endres i skillen: «Neste gang legger du til en kolonne som viser andelen i oppsummeringstabellen.» For kreativt arbeid kan du forbedre skillen ut fra tilbakemeldinger hvis den første versjonen ikke gir resultatet du trenger.

Ferdige skills fra OpenAI og fellesskapet installeres med $skill-installer og navnet på skillen. Hvis du vil dele dine egne skills med andre, kan du distribuere dem som plugins — dette er en egen pakkemetode som ikke er nødvendig for personlig bruk.

Slik kontrollerer du resultatet til en agent

Viktig poeng

Legg akseptansekriteriene direkte i skillen: hva resultatet må inneholde, og hvordan agenten skal kontrollere arbeidet før den leverer det. Dette garanterer ikke at resultatet er korrekt; du må fortsatt kontrollere det selv.

Kontrollene kan være objektive eller subjektive. Objektive kontroller kan måles: «rapporten inneholder alle de 12 lederne fra eksporten» eller «summen i tabellen stemmer med totalsummen i CSV-filen». Registrer disse som absolutte krav. Subjektive kontroller handler om kvalitet: «teksten høres ut som min» eller «konklusjonene er korte». Du kan også formalisere disse: Legg inn et eksempel på et godt avsnitt i skillen, og be agenten sammenligne resultatet sitt med eksempelet.

En nyttig teknikk er en gjennomgangssyklus: Etter at resultatet er utarbeidet, går agenten gjennom en liste med kriterier, retter det den finner, og viser deg først deretter resultatet. Anthropic har et lignende mønster kalt evaluator-optimizer: Én agent utfører arbeidet, en separat evaluator vurderer det og gir tilbakemelding, og prosessen gjentas fram til resultatet godkjennes. I én skill er dette vanligvis en forenklet versjon — en siste egenkontroll mot en liste. Husk begrensningen: Den er svakere enn en uavhengig evaluator fordi agenten som utførte arbeidet, kanskje ikke oppdager sin egen feil.

Eksempel på en kontrollblokk for rapporten vår:

## Kontroller før innsending
- Alle lederne fra eksporten er med i tabellen; ingen er utelatt.
- Totalsummen stemmer med summen i CSV-filen ned til siste cent.
- Hver viktig endring støttes av et tall; hvis det ikke finnes sammenligningsdata, sier rapporten det tydelig.
- Filen er lagret som report.md, og banen er delt med brukeren.

Hvilken modell bør du velge for en skill?

Viktig poeng

Begynn med modellen som skillen fungerte på, og prøv deretter rimeligere modeller: Hvis kvaliteten holder seg, bruker du den billigere modellen. API-priser og forslag til innledende kjøringer står nedenfor, per 20. september 2026.

ModellInndata, $/million tokensUtdata, $/million tokensHva du kan teste den på først
GPT-6 Astra1050Skills som innebærer utvidet resonnering, bilder og bruk av nettleser
GPT-5.6 Sol420Tekstbaserte skills med middels kompleksitet
GPT-5.6 Terra2.5015Enkle prosesser med et tydelig resultat
GPT-5.6 Luna0.201.20Mekaniske oppgaver: omformatering, beregning, sammenstilling av en liste

Kolonnen helt til høyre foreslår oppgaver for de første testene. Den er ingen rangering og viser heller ikke resultatene av en sammenligning: Du finner først riktig modell for skillen din etter at du har kjørt den og sammenlignet den med referanseresultatet.

Prisene i tabellen er API-priser fra modellsidene per 20. september 2026, ikke priser på ChatGPT-abonnementer. Når du bruker et abonnement, teller bruken mot grensene i abonnementet. Per denne datoen hadde Sol en kampanjepris på $4/$20 som skulle gjelde minst til 21. november 2026; standardprisen er $5/$30. Kontroller prissiden før en stor, tilbakevendende kjøring: OpenAIs kampanjer endres.

Kjør den samme skillen på den neste rimeligere modellen, og sammenlign resultatet med referansen. Hvis kvaliteten holder seg, prøver du den neste, enda rimeligere modellen. Hvis kvaliteten faller, går du tilbake til den forrige. Modellene har også innsatsnivåer: Astra går fra low til max, og 5.6-familien går fra none til max. Test også disse mot den samme referansen: Velg først modellen, deretter innsatsnivået.

Regelmessig bruk av en skill gir gjentakende kostnader. Astra har en inndata­pris som er 50 ganger høyere enn Lunas, så ulike modeller for samme gjentakende skill kan gi merkbart forskjellige kostnader. For en skill som analyserer skjermbilder og dokumenter, kan en svakere modell koste mer fordi resultatet må bearbeides på nytt.

Vanlige feil når du lager og bruker en skill

  • En skill «for alt». Én prosess, én skill — det anbefaler også OpenAI. Det er vanskelig å beskrive en universell skill på ti sider presist, og Codex velger en skill for en oppgave ut fra beskrivelsen.
  • En vag beskrivelse. «Hjelper med rapporter» gjør det ikke tydelig hva slags rapporter skillen er ment for. Sett oppgaven og vanlige måter å formulere den på først i description.
  • Instruksjoner uten et definert resultat. Hvis du ikke beskriver hva som skal produseres og hvor det skal plasseres, kan resultatene variere fra kjøring til kjøring.
  • Ingen kontroller. Uten et siste trinn med kriterier kan resultatet bli et uferdig utkast som du selv må gjennomgå i sin helhet.
  • Den mest kapable modellen som standard. Sjekk først om en rimeligere modell kan håndtere oppgaven: Kjør den samme skillen og sammenlign resultatet med referansen. Bytt bare hvis kvaliteten holder seg.
  • Samme navn i ulike mapper. Codex slår ikke sammen skills med samme navn, noe som gjør det vanskeligere å velge den riktige.

Slik kommer du i gang og overfører en skill til Claude Code

Viktig poeng

Velg én gjentakende prosess, lag en skill med $skill-creator, test aktiveringen med dine egne ord, og legg til et siste trinn med akseptansekriterier. Etter noen kjøringer forbedrer du beskrivelsen og instruksjonene ut fra feilene du finner.

Hvis du arbeider med flere agenter, kan du overføre en mappe som bare inneholder tekstinstruksjoner og en SKILL.md-fil til Claude Code. Der lagres skills i .claude/skills og aktiveres med /name. Kontroller en skill etter overføringen hvis den inneholder skript, avhengigheter eller agents/openai.yaml. Les Claude Code Skills: Slik bygger du ditt eget sett for en veiledning til Claude Code-skillbiblioteket, og Codex mot Claude Code for en sammenligning av Codex og Claude Code.

Åpne Ailoot.

Flere detaljer

Spørsmål om denne veiledningen: Codex Skills: Slik lager du en skill for gjentakende oppgaver

Hvorfor fungerer eksplisitt aktivering, men ikke automatisk skillvalg?

Kontroller at skillen er synlig i /skills og at implisitt aktivering er tillatt. Er begge riktig, forbedrer du beskrivelsen slik at den starter med oppgaven og inneholder ordene du vanligvis bruker. Test deretter samme vanlige forespørsel igjen.

Hva bør jeg verifisere i resultatet fra en salgsrapport-skill?

Kontroller at hver leder i inndataeksporten er representert, at totalen stemmer med kilden, at alle påståtte endringer har støttetall og at ønsket rapportfil er lagret. Mangler forrige periode, skal rapporten si det.

Alle artikler