Blog

Codex Skills: Sådan opretter du en skill til tilbagevendende opgaver

Markdown

SKILL.md-struktur, indlæsningsstier, eksplicit og automatisk aktivering, resultatkriterier og overførsel af en skill til Claude Code.

Læs hele artiklen

Hvis du forklarer det samme for Codex fem gange om ugen—hvordan man formaterer en rapport, gennemgår e-mails eller udarbejder tekst i din stil—kan du skrive instruktionerne ned én gang i en skill. Derefter kan agenten finde den ud fra beskrivelsen, når beskrivelsen passer til opgaven, eller du kan aktivere den eksplicit. En skill er en almindelig mappe med en tekstfil, der hedder SKILL.md; der kræves ingen programmering til et grundlæggende brugstilfælde.

Nedenfor gennemgår vi, hvordan en skill er opbygget, hvor Codex leder efter den, hvordan du opretter en trin for trin, og hvordan du vælger en model ud fra omkostningerne. Kommandoer og priser bygger på officiel OpenAI-dokumentation pr. 20. september 2026. Vi gentager ikke installationsvejledningen til Codex her; den findes i guiden Codex fra OpenAI: Hvad det er, hvordan du installerer og kører det.

Praktiske oplysninger om brug af Ailoot findes i dokumentationen.

Hvad er en skill i Codex?

Vigtig pointe

En Codex-skill er en mappe med en SKILL.md-fil, der beskriver en proces: hvad der skal gøres, hvad det skal bygge på, og hvordan et godt resultat ser ud. Codex holder i første omgang kun navnene og beskrivelserne af skills i konteksten og indlæser de fulde instruktioner, når den beslutter sig for at bruge en.

Formatet hedder Agent Skills. Det er en åben standard, der oprindeligt blev udviklet af Anthropic og offentliggjort på agentskills.io. Den understøttes af forskellige agenter, herunder Codex, Claude Code og andre kompatible klienter. En enkel skill, der kun består af tekstinstruktioner, kan overføres mellem dem ved at kopiere mappen. Hvis den indeholder scripts, afhængigheder eller en agents/openai.yaml-fil, skal du kontrollere skillen efter overførslen: nogle indstillinger er specifikke for den enkelte klient.

Denne indlæsningsmetode kaldes progressiv videregivelse. Agenten bruger skillens navn og beskrivelse til at afgøre, hvornår den er relevant. Når en opgave matcher beskrivelsen, læser agenten hele SKILL.md og følger den. Det betyder, at du kan have dusinvis af skills i Codex uden at indlæse alle instruktionerne i konteksten: Den indledende liste fylder højst 2 % af kontekstvinduet (eller 8.000 tegn, hvis vinduets størrelse er ukendt). Hvis der er mange skills, forkorter Codex først deres beskrivelser; med et meget stort antal kan den udelade nogle fra listen og give dig besked.

Det er let at forveksle en skill med AGENTS.md. Codex læser denne fil i hver projektsession. Den indeholder faste regler: teknologistakken, konventioner og kodningsstil. En skill indlæses efter behov, når en opgave matcher den. Læg derfor faste regler i AGENTS.md og en tilbagevendende proces med trin i en skill.

Hermes Agent-skills fungerer på samme måde, men gemmes i andre mapper og installeres anderledes. De beskrives i en separat guide: Hermes Agent Skills: Installation og oprettelse. Denne artikel handler kun om Codex.

Hvad består en skill af?

Vigtig pointe

Som minimum har en skill én SKILL.md-fil med to obligatoriske felter: name og description. Du kan også tilføje mapperne scripts/, references/ og assets/ samt en agents/openai.yaml-fil med indstillinger.

En skill-mappe har denne struktur:

my-skill/
  SKILL.md        - required: metadata and instructions
  scripts/        - optional: executable code
  references/     - optional: documents to load as needed
  assets/         - optional: templates and resources
  agents/
    openai.yaml   - optional: appearance and dependencies

Selve SKILL.md-filen begynder med en metadatablok mellem tre bindestreger, efterfulgt af instruktionsteksten i Markdown:

---
name: weekly-sales-report
description: Udarbejd en ugentlig salgsrapport fra en CSV-eksport. Bruges, når der bliver bedt om en ugentlig salgsrapport eller en oversigt efter leder.
---

1. Læs eksportfilen på den sti, brugeren har angivet.
2. Gruppér rækkerne efter leder, og beregn det samlede beløb og antallet af handler.
3. Sammenlign med den foregående uge, hvis filen for den foregående uge ligger i nærheden. Hvis den ikke findes, skal du sige det tydeligt i rapporten.
4. Gem resultatet i report.md: en tabel efter leder, totalen og op til tre vigtige ændringer med tal, så mange som dataene understøtter.

Tre regler fra OpenAI's officielle anbefalinger:

  • Én skill, én opgave. Vælg en specifik opgave i stedet for ”Håndter al min markedsføring”, for eksempel ”udarbejd en salgsrapport fra denne eksport”. Del en større proces op i separate skills, der kan aktiveres i rækkefølge.
  • Skriv trinene direkte med eksplicit input og output: hvad der skal bruges, hvad der skal gøres, og hvor resultatet skal placeres.
  • Begynd med tekstinstruktioner. Brug scripts i scripts/, når et trin skal udføres på præcis samme måde hver gang—for eksempel til at konvertere en fil eller kalde et eksternt system.

Codex vælger en skill til en opgave ud fra feltet description, så begynd beskrivelsen med opgaven og de ord, du typisk bruger til at beskrive den.

Hvor leder Codex efter skills?

Vigtig pointe

Codex leder efter skills på fire niveauer: i projektets .agents/skills-mappe (den kontrollerer den aktuelle mappe og hver overordnet mappe op til repositoryets rod), i den personlige mappe $HOME/.agents/skills, i systemmappen /etc/codex/skills og blandt OpenAI's indbyggede skills.

NiveauStiFormål
Projekt.agents/skills i den aktuelle mappe og dens overordnede mapper op til repositoryets rodSkills til et bestemt projekt, som kan gemmes i git sammen med koden
Bruger$HOME/.agents/skillsDine personlige skills, som er tilgængelige i alle projekter på maskinen
System/etc/codex/skillsSkills, der deles af alle brugere på maskinen eller i containeren
IndbyggetInkluderet i CodexGrundlæggende skills fra OpenAI, såsom skill-opretteren

Det er praktisk at gemme projektskills i git sammen med koden, så hele teamet får det samme sæt. Personlige skills egner sig godt til dine egne processer, såsom din e-mailstil. Hvis to skills på forskellige niveauer har samme navn, slår Codex dem ikke sammen: Begge vises på listen, hvilket gør det sværere at vælge. Sørg for, at navnene er unikke.

Til sammenligning gemmes Claude Code-skills i .claude/skills, hver med sin egen SKILL.md, og de bruger den samme åbne standard. En enkel skill kan overføres dertil ved at kopiere mappen, hvorefter du bør køre den og kontrollere, at den aktiveres. Se Skills, Subagents, MCP eller Plugins for en sammenligning af Claude Code-udvidelser.

Hvordan beslutter Codex, hvilken skill der skal aktiveres?

Vigtig pointe

Du kan aktivere en skill eksplicit: I Codex CLI eller IDE-udvidelsen skal du skrive $skill-name i din anmodning eller vælge den via /skills. Ved implicit aktivering vælger Codex automatisk en skill, hvis din opgave matcher beskrivelsen. Skillen skal være tilgængelig, og automatisk aktivering skal være tilladt.

Eksplicit aktivering er mere pålidelig i begyndelsen: I Codex CLI skriver du $weekly-sales-report for at vælge den specifikke proces. Implicit aktivering er mere praktisk i det daglige arbejde. Når du har skrevet en skill, skal du teste den med almindelige formuleringer: Bed Codex om at udføre opgaven med dine egne ord, uden $, og se, om den vælger skillen. Hvis den ikke gør det, skal du først kontrollere, om Codex kan se skillen i /skills, om skillen ligger i en af indlæsningsmapperne, og om skillen eller dens automatiske aktivering er deaktiveret. Hvis den er tilgængelig, og indstillingerne er korrekte, kan du finpudse description: Angiv opgaven og typiske måder at formulere anmodningen på.

Hvis du kun vil have en skill tilgængelig via en eksplicit kommando, kan du også konfigurere det: I agents/openai.yaml deaktiverer parameteren allow_implicit_invocation: false automatisk aktivering, mens $name fortsat virker. Du kan deaktivere en skill helt uden at slette den via ~/.codex/config.toml:

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

Genstart Codex, når du har redigeret config.toml. Codex registrerer automatisk ændringer i skill-mapper, men hvis en ny skill ikke vises, skal du genstarte Codex.

Sådan opretter du din egen skill: Trin for trin

Vigtig pointe

Vælg én tilbagevendende opgave, opret en skill med den indbyggede $skill-creator-assistent eller manuelt, skriv instruktioner med et klart defineret resultat, test aktivering med almindelige formuleringer, og finpuds skillen efter hver kørsel.

  1. Vælg én opgave

    Vælg en proces, du gentager regelmæssigt, og som har et klart resultat: en rapport, en tabel, et brev eller en analyse. Hvis du aldrig har fået denne type resultat før, skal du først udføre opgaven manuelt med en agent. Brug det resultat, du får, som målestok for instruktionerne.

  2. Opret en skill

    Hvis du vil oprette en skill med den indbyggede assistent, skal du skrive $skill-creator i en Codex-session. Den spørger, hvad skillen gør, hvornår den skal aktiveres, og om der er brug for scripts, og opbygger derefter strukturen for dig. Hvis du vil oprette en skill manuelt, skal du lave en .agents/skills-mappe i projektet med en undermappe til skillen, for eksempel .agents/skills/weekly-sales-report, og lægge en SKILL.md-fil i den med eksemplet ovenfor som udgangspunkt.

  3. Skriv instruktionerne

    Skriv trinene som en nummereret liste med eksplicit input og output. Hvis processen kræver præcision (dataoverførsel, omdøbning, beregning), skal du beskrive hvert trin i detaljer. Til kreative opgaver (tekstforfatning, valg af argumenter) skal du sætte rammer og kriterier for et godt resultat, samtidig med at modellen får plads til at arbejde.

  4. Test aktivering

    Bed Codex om at udføre opgaven med dine egne ord uden at nævne skillen. Hvis den vælger den rigtige skill, virkede beskrivelsen til den formulering. Test derefter eksplicit aktivering med $name. Hvis skillen ikke aktiveres, skal du kontrollere mappen, om den vises i /skills, og deaktiveringsindstillingerne beskrevet ovenfor. Hvis en ny skill ikke vises på listen, skal du genstarte Codex. Hvis eksplicit aktivering virker, og automatisk aktivering er tilladt, men Codex ikke reagerer på en anmodning med dine egne ord, skal du finpudse begyndelsen af description: Sæt opgaven først og derefter typiske måder at formulere den på. Test igen.

  5. Finpuds efter kørsler

    Efter hver kørsel skal du gennemgå resultatet og fortælle agenten, hvad den skal ændre i skillen: ”Næste gang skal du føje en kolonne til oversigtstabellen, der viser andelen.” Finpuds en skill til kreativt arbejde ud fra feedback, hvis den første version ikke giver det resultat, du har brug for.

Færdige skills fra OpenAI og fællesskabet installeres med $skill-installer og skillens navn. Hvis du vil dele dine egne skills med andre, skal du distribuere dem som plugins—en separat pakkeringsmetode, som ikke er nødvendig til personlig brug.

Sådan kontrollerer du en agents resultat

Vigtig pointe

Skriv acceptkriterier direkte ind i skillen: hvad resultatet skal indeholde, og hvordan agenten skal kontrollere sit arbejde, før den afleverer det. Det garanterer ikke korrekthed; du skal stadig selv kontrollere resultatet.

Kontroller kan være objektive eller subjektive. Objektive kontroller kan måles: ”Rapporten indeholder alle 12 ledere fra eksporten” eller ”Tabellens sum svarer til CSV-totalen.” Angiv dem som faste krav. Subjektive kontroller handler om kvalitet: ”Teksten lyder som min” eller ”Konklusionerne er korte.” Du kan også gøre dem mere konkrete: Medtag et eksempel på et godt afsnit i skillen, og bed agenten sammenligne sit resultat med eksemplet.

En nyttig teknik er en gennemgangsrunde: Når resultatet er udarbejdet, gennemgår agenten en liste med kriterier, retter det, den finder, og viser det først derefter til dig. Anthropic har et lignende mønster, der kaldes evaluator-optimizer: Én agent udfører arbejdet, en separat evaluator gennemgår det og giver feedback, og processen gentages, indtil resultatet godkendes. I en enkelt skill er dette normalt en forenklet version—en afsluttende selvkontrol ud fra en liste. Husk begrænsningen: Den er svagere end en uafhængig evaluator, fordi agenten, der udfører arbejdet, måske ikke opdager sine egne fejl.

Eksempel på en kontrolblok til vores rapport:

## Kontrollér, inden du indsender
- Alle ledere fra eksporten er med i tabellen; ingen er udeladt.
- Totalen svarer til CSV-summen helt ned til sidste øre.
- Hver vigtig ændring er underbygget af et tal; hvis der ikke findes sammenligningsdata, står det tydeligt i rapporten.
- Filen er gemt som report.md, og stien er delt med brugeren.

Hvilken model skal du vælge til en skill?

Vigtig pointe

Begynd med den model, som skillen virkede på, og prøv derefter billigere modeller: Behold den billigere, hvis kvaliteten holder. API-priser og udgangspunkter for de første kørsler står nedenfor—pr. 20. september 2026.

ModelInput, $/million tokensOutput, $/million tokensHvad du først kan prøve den på
GPT-6 Astra1050Skills med længere ræsonnement, billeder og browserbrug
GPT-5.6 Sol420Tekstskills med middel kompleksitet
GPT-5.6 Terra2.5015Enkle processer med et klart resultat
GPT-5.6 Luna0.201.20Mekaniske opgaver: omformatering, beregning, samling af en liste

Kolonnen yderst til højre foreslår opgaver til indledende kontroller. Den er ikke en rangliste eller resultatet af en sammenligning: Du kan først finde den rette model til din skill, når du har kørt den og sammenlignet med målestoksresultatet.

Priserne i tabellen er API-priser fra modelsiderne pr. 20. september 2026, ikke priser på ChatGPT-abonnementer. Ved brug af et abonnement trækkes forbruget fra dets grænser. Pr. denne dato har Sol en kampagnepris på $4/$20 mindst til og med 21. november 2026; standardprisen er $5/$30. Kontrollér prissiden inden en stor tilbagevendende kørsel: OpenAI-kampagner ændrer sig.

Kør den samme skill på den næstbilligste model, og sammenlign resultatet med målestokken. Hvis kvaliteten holder, kan du prøve den næste, endnu billigere model. Hvis kvaliteten falder, går du tilbage til den foregående. Modeller har også forskellige niveauer for indsats: Astra går fra low til max, og 5.6-familien går fra none til max. Test også disse mod den samme målestok: Vælg først modellen og derefter indsatsniveauet.

Regelmæssig brug af en skill medfører tilbagevendende omkostninger. Astras inputpris er 50 gange Lunas, så brug af forskellige modeller til den samme tilbagevendende skill kan føre til mærkbart forskellige omkostninger. For en skill, der analyserer skærmbilleder og dokumenter, kan en svagere model koste mere på grund af ekstraarbejde.

Almindelige fejl, når du opretter og bruger en skill

  • En skill ”til alt”. Én proces, én skill—det er også OpenAI's anbefaling. Det er svært at beskrive en universel skill på ti sider præcist, og Codex vælger en skill til en opgave ud fra beskrivelsen.
  • En vag beskrivelse. ”Hjælper med rapporter” gør det ikke klart, hvilke typer rapporter skillen er beregnet til. Sæt opgaven og typiske formuleringer først i description.
  • Instruktioner uden et defineret resultat. Hvis du ikke angiver, hvad der skal udarbejdes, og hvor det skal placeres, kan resultaterne variere fra kørsel til kørsel.
  • Ingen kontroller. Uden et afsluttende trin med kriterier kan resultatet være et ufærdigt udkast, som du selv må gennemgå i sin helhed.
  • Den mest kompetente model som standard. Kontrollér først, om en billigere model kan klare opgaven: Kør den samme skill, og sammenlign resultatet med målestokken. Skift kun, hvis kvaliteten holder.
  • De samme navne i forskellige mapper. Codex slår ikke skills med samme navn sammen, hvilket gør det sværere at vælge den rigtige.

Sådan kommer du i gang og overfører en skill til Claude Code

Vigtig pointe

Vælg én tilbagevendende proces, opret en skill med $skill-creator, test aktivering med dine egne formuleringer, og tilføj et afsluttende trin med acceptkriterier. Efter nogle kørsler kan du finpudse beskrivelsen og instruktionerne ud fra de fejl, du finder.

Hvis du arbejder med flere agenter, kan du overføre en mappe, der kun indeholder tekstinstruktioner og en SKILL.md-fil, til Claude Code. Her gemmes skills i .claude/skills og aktiveres med /name. Kontrollér en skill efter overførslen, hvis den indeholder scripts, afhængigheder eller agents/openai.yaml. Se Claude Code Skills: Sådan opbygger du dit eget sæt for en vejledning i Claude Codes skillbibliotek og Codex sammenlignet med Claude Code for en sammenligning af Codex og Claude Code.

Åbn Ailoot.

Flere oplysninger

Spørgsmål og svar

Hvorfor virker et udtrykkeligt kald, mens automatisk skillvalg fejler?

Kontrollér, at skillen er synlig i /skills, og at implicit aktivering er slået til. Forfin beskrivelsen, hvis begge dele er korrekte, så den starter med opgaven og indeholder de ord, du normalt bruger. Test derefter samme almindelige forespørgsel igen.

Hvad skal jeg verificere i en salgsrapport-skills output?

Kontrollér, at alle ledere i inputudtrækket er repræsenteret, at totalen matcher kildedata, at hver påstået ændring har understøttende tal, og at den ønskede rapportfil er gemt. Hvis forrige periode mangler, skal rapporten sige det.

Alle artikler