
AGENTS.md vs CLAUDE.md vs skills: hvad hører hvor
AGENTS.md er en ren markdown-fil i roden af dit repository, der fortæller kodningsagenter, hvordan de skal arbejde i dit projekt: hvordan man bygger det, hvordan man kører tests, hvilke konventioner der skal følges, hvad der skal lades i fred. Ingen skema, ingen påkrævede sektioner, ingen registrering. Hele standarden passer i én sætning: læg en fil kaldet AGENTS.md i dit repo, og agenter, der understøtter konventionen, vil læse den, før de rører din kode.
Folk kalder den "README'en for agenter," og analogien holder. En README forklarer dit projekt til mennesker, der lige er ankommet. AGENTS.md forklarer det til software, der lige er ankommet. Forskellen er, at agenten faktisk vil følge instruktionerne, så vage instruktioner koster reelle penge i spildte tokens og forkerte redigeringer.
Vi tester agent-værktøj til daglig hos SkillProof, og vi har set denne fil gå fra et OpenAI-sideprojekt til det tætteste, agentisk kodning kommer på en delt standard. Dette indlæg dækker, hvordan den forholder sig til CLAUDE.md og de andre værktøjsdialekter, og hvor skills passer ind, fordi de løser et andet problem, end de fleste antager.
Hvad AGENTS.md er, og hvem der faktisk læser den
Konventionen kom fra OpenAIs Codex-team i midten af 2025 og blev hurtigt medunderskrevet af Googles Jules, Cursor, Factory, Amp og andre. Pitchen var enkel: hver agent-leverandør havde opfundet sin egen instruktionsfil, og repo-rødder blev fyldt med næsten identisk markdown adresseret til forskellige robotter. AGENTS.md foreslog ét filnavn, alle læser.
Vedtagelsen siden da har været reel, men ujævn. Her er det ærlige kort, som vi ser det midt i 2026:
| Værktøj | Læser AGENTS.md | Native dialekt |
|---|---|---|
| OpenAI Codex | Ja, nativt | Ingen, AGENTS.md er formatet |
| GitHub Copilot (coding agent, VS Code) | Ja | .github/copilot-instructions.md |
| Cursor | Ja | .cursor/rules/*.mdc |
| Google Jules | Ja, nativt | Ingen |
| Gemini CLI | Ja, via config | GEMINI.md |
| Claude Code | Ikke nativt | CLAUDE.md |
| Zed | Ja | Ingen |
| Amp | Ja | Ingen |
| Aider | Nej | CONVENTIONS.md |
| Windsurf | Nej | .windsurf/rules/ |
To ting springer i øjnene i den tabel. For det første er kolonnen med "ja"-svar lang og bliver ved med at vokse; når en ny agent lanceres i 2026, er AGENTS.md-support som regel med i launch-noterne. For det andet er dialekterne ikke forsvundet. Copilot læser stadig sin egen instruktionsfil, Cursor har stadig rules med globs og trigger-tilstande, AGENTS.md ikke kan udtrykke, og Claude Code, værktøjet vi bruger mest tid med, vil stadig have en CLAUDE.md.
Så den praktiske situation er denne: AGENTS.md er lingua franca'en, dialekterne er, hvor værktøjsspecifik styrke bor, og ethvert team, der kører mere end én agent, har brug for en politik for at holde dem synkroniserede. Den politik er det meste af denne artikel.
Hvad der går i filen, er mindre omstridt end filnavnet var. AGENTS.md-filerne, der virker, dækker opsætnings- og build-kommandoer, hvordan man kører tests, kodestil-noter linteren ikke kan fange, og arkitektoniske grænser ("betalingslogik lever i packages/billing, læg den ikke andre steder"). Filerne, der ikke virker, læses som missionserklæringer. En agent behøver ikke vide, at du værdsætter ren kode. Den har brug for kommandoen, der tjekker, om koden er ren.
AGENTS.md vs CLAUDE.md
Disse to filer gør næsten det samme job for forskellige læsere. Begge er projekt-niveau-instruktionsfiler. Begge loader ind i konteksten ved starten af en session. Begge bør være korte, fordi hver linje koster tokens på hver forespørgsel. Har du allerede skrevet en god CLAUDE.md, ved du allerede, hvordan man skriver en god AGENTS.md, og vores råd i CLAUDE.md best practices overføres næsten linje for linje.
Forskellene er værd at kende, før du forener dem:
Publikum. CLAUDE.md læses af præcis ét værktøj. Det betyder, den trygt kan referere Claude-specifikt maskineri: skills, hooks, subagenter, MCP-servere, tilladelsesindstillinger. En AGENTS.md, der siger "brug systematic-debugging-skillen, før du foreslår en fix," er støj for Codex og Copilot, som ikke aner, hvad en skill er.
Hierarki og imports. Claude Code fletter CLAUDE.md-filer fra flere niveauer (brugerglobal, projektrod, undermapper) og understøtter @sti/til/fil-imports inde i dem. AGENTS.md understøtter også nesting, hvor den nærmeste fil vinder, men import-syntaksen er Claudes egen.
Håndhævelse. Ingen af filerne håndhæves. Begge er forslag til en sprogmodel. Alt, der skal ske hver gang, hører hjemme i en hook eller CI, ikke i nogen af filerne. Dette skuffer folk lige meget på tværs af alle værktøjer.
Bruger dit team Claude Code sammen med noget andet, har du brug for begge filer, og fejltilstanden er indlysende: to filer, der siger næsten det samme, driver fra hinanden, indtil en agent følger den forældede. To mønstre forhindrer det, og vi har testet begge.
Symlinket. Gør AGENTS.md til den rigtige fil, og lad CLAUDE.md pege på den:
# AGENTS.md is the source of truth
ln -s AGENTS.md CLAUDE.md
git add AGENTS.md CLAUDE.md
Claude Code følger symlinket og læser indholdet, som var det sin egen fil. Det er nul-vedligeholdelses-muligheden, og det er den rigtige, når du ikke har noget Claude-specifikt at sige. Dens grænse er eksakt identitet: begge læsere får hvert ord, inklusive dem, der kun er relevante for den anden.
Den tynde wrapper. Behold AGENTS.md som den delte kilde, og gør CLAUDE.md til en lille fil, der importerer den og tilføjer Claude-only linjer:
# CLAUDE.md
@AGENTS.md
## Claude-specific
- Use the git-workflow skill for commits and PRs.
- Never edit files under infra/ without asking.
Det er, hvad vi kører i vores egne repos. De delte fakta lever ét sted, Claude-ekstraerne lever, hvor kun Claude ser dem, og en diff til AGENTS.md opdaterer hvert værktøj i samme øjeblik. Samme form virker omvendt for andre dialekter: hold .github/copilot-instructions.md og Cursor rule-filer nede på et par linjer, der overlader til AGENTS.md alt, begge værktøjer har brug for. Vi sammenlignede de dialekter i detaljer i Claude skills vs Cursor rules og Claude skills vs Copilot instructions.
En advarsel fra vores testning: uanset hvilket mønster du vælger, vælg ét. Repos, der bærer en fuld CLAUDE.md og en fuld AGENTS.md med uafhængigt redigeret indhold, er drift-scenariet med ekstra trin.
GRATIS STARTPAKKE
Sætter du et repo op, som Claude, Codex og Cursor alle kan arbejde i? Vores gratis startpakke inkluderer testede skills, der matcher en ren AGENTS.md, installeret og verificeret på en frisk maskine.
Få den gratis startpakkeAGENTS.md vs skills: helt andre lag
Det er sammenligningen, folk faktisk søger efter, og det er den, bygget på en kategorifejl. AGENTS.md og skills konkurrerer ikke som formater. De sidder på forskellige lag i stakken og besvarer forskellige spørgsmål.
AGENTS.md besvarer: hvad bør enhver agent vide om dette projekt? Det er fakta om et sted. Det rejser med repositoryet, gælder for hvilken agent der end dukker op, og siger intet om, hvordan agenten gør sit job udover lokale regler.
En skill besvarer: hvordan bør denne agent udføre denne slags opgave? Det er en adfærd, pakket i en mappe med en SKILL.md, loadet efter behov, når opgaven matcher dens beskrivelse. Den rejser med dig, ikke med repoet. Installér en debugging-skill én gang, og den virker i hvert projekt, du åbner, uanset om det projekt nogensinde har hørt om dig. Vi dækkede mekanikken i Hvad er Claude-skills?, men load-modellen er nøgleforskellen: AGENTS.md-indhold ligger i konteksten for hele sessionen, mens en skill koster omkring hundrede tokens metadata, indtil øjeblikket en opgave trigger den.
Her er hele stakken, som vi tegner den på tavler:
| Lag | Lever i | Scopet til | Loadet | Spørgsmål det besvarer |
|---|---|---|---|---|
| AGENTS.md | Reporod | Projektet, enhver agent | Hver session | Hvad er dette sted? |
| Værktøjsdialekt (CLAUDE.md, rules) | Repo eller brugerkonfig | Projektet, ét værktøj | Hver session | Hvad bør dette værktøj gøre her? |
| Skills | ~/.claude/skills/ eller .claude/skills/ |
Én agent, ethvert projekt | Efter behov | Hvordan udføres denne slags opgave? |
| MCP-servere | Værktøjskonfig | Én maskine eller team | Værktøjsdefinitioner altid i konteksten | Hvad kan agenten nå? |
Læs det top til bund som udvidende evne og indsnævrende portabilitet. Standardfilen er universel og dum. Dialekten er værktøjsbundet og lidt klogere. Skills er adfærdsrige, men i øjeblikket agent-bundne. MCP er levende infrastruktur med legitimationsoplysninger og processer.
Et konkret eksempel gør grænsen indlysende. "Kør pnpm test --filter=changed før commit" er en AGENTS.md-linje: det er et faktum om dit repo, sandt for enhver agent. "Ved debugging, genskab fejlen før du foreslår en fix, og påstå aldrig en fix virker uden at genkøre den fejlende test" er en skill, og det er faktisk en, vi har testet og listet: systematic-debugging. Den har intet med noget bestemt repo at gøre. At lægge den i AGENTS.md betyder at kopiere den ind i hvert projekt og betale dens tokenomkostning i hver session, inklusive sessioner, hvor ingen debugger noget.
Tommelfingerreglen, vi giver teams: ville du kopiere en linje ind i et andet repo uændret, er det ikke projektkontekst, det er adfærd, og den hører hjemme i en skill. Giver en linje kun mening i dette repo, er det kontekst, og den hører hjemme i AGENTS.md.
Strategien for teams, der kører flere AI-værktøjer
De fleste teams, vi taler med i 2026, er ikke enkelt-agent-butikker. En typisk mix er Claude Code til tungere arbejde, Copilot i editoren, og Cursor på nogle enkeltes maskiner. Her er konfigurationen, der overlever kontakt med det:
1. Skriv AGENTS.md som kilden til sandhed. Én fil, i reporoden, ejet som kode. Læg hvert faktum, enhver agent har brug for, ind i den: kommandoer, konventioner, grænser, advarsler. Reviewér ændringer til den i PR'er, fordi en forkert instruktion her vildleder hver agent, dit team kører.
2. Hold dialekterne tynde. CLAUDE.md importerer AGENTS.md og tilføjer kun Claude-specifikke linjer. Copilot instructions og Cursor rules får samme behandling: en pointer plus, hvad der genuint ikke kan udtrykkes i den delte fil. Vores test for "tynd nok" er blunt: overstiger en dialektfil én skærm, hører noget i den nok hjemme i AGENTS.md eller i en skill.
3. Læg genbrugelig adfærd i skills. Debug-disciplin, commit- og PR-vaner, test-skrive-standarder, dokumentformatering. Disse hører ikke hjemme i nogen per-repo-fil, fordi de ikke er per-repo. Installér dem én gang per agent, og de følger dig overalt. Vores testede valg til kodningsarbejde er samlet i de bedste kodningsskills, og git-workflow er den, vi ville installere først på ethvert team, der bekymrer sig om commit-hygiejne.
4. Håndhæv med hooks og CI, ikke prosa. Alt, der skal ske 100% af tiden, kan ikke leve i en markdown-fil, læst af et probabilistisk system. Formatering ved gem er en hook. Tests før merge er CI. Markdown-lagene er til dømmekraft, ikke håndhævelse.
Denne opsætning har en egenskab, værd at nævne: hvert lag ændrer sig i sit eget tempo. AGENTS.md ændrer sig, når projektet ændrer sig, skills ændrer sig, når dit teams håndværk ændrer sig, og ingen agent læser noget adresseret til en anden agent.
Vinder én standard?
Vores vurdering, med standardvagt-hatten på: filaget konvergerer, og adfærdslaget gør ikke.
Fillaget konvergerer, fordi alle incitamenter peger én vej. En kontekstfil har lavt overfladeareal, leverandører opnår kompatibilitet for prisen af ét filnavns-tjek, og repo-ejere er synligt trætte af instruktionsfil-sprawl. Vi forventer native AGENTS.md-support i Claude Code på et tidspunkt, fordi presset er offentligt, og omkostningen ved at understøtte det er et fil-opslag. Når det sker, bliver symlink-mønsteret ovenfor en no-op, du kan slette.
Adfærdslaget er en anden historie. Skill-lignende mekanismer dukker op overalt: Claudes skills, Cursors rule-tilstande, Copilots prompt-filer, forskellige "playbook"-funktioner på tværs af mindre agenter. De rimer, men hver koder sin leverandørs egne idéer om triggering og scoping. En skills trigger-beskrivelse og progressive loading kortlægges til en Cursor rule-glob omtrent lige så godt, som en symfoni kortlægges til en ringetone. Adfærdsformater er, hvor leverandører differentierer sig, så de har al mulig grund til at blive ved med at divergere.
Og her er delen, leverandører ikke skriver i launch-indlæg: portabilitet af format er ikke portabilitet af kvalitet. En utestet adfærdsfil fejler samme måde på hvert værktøj, der loader den. Den trigger, når den ikke skal, eller den trigger aldrig. Omkring halvdelen af de community-skills, vi trækker fra GitHub, fejler vores første testpassage, og fejlårsagerne er formatuafhængige: vage trigger-beskrivelser, og instruktioner forfatteren aldrig verificerede mod et rigtigt værktøj. Vi skrev mønsteret op i hvorfor halvdelen af Claude-skills ikke virker, og alt i den gælder for, hvad end din anden agent kalder sin version af skills. En konvergeret standard ville give os ét filnavn og samme gamle defektrate.
Så: standardisér dine fakta, fordi økosystemet standardiserer sammen med dig. Vær derefter kræsen med din adfærd, fordi ingen standardiserer kvalitet.
SKILLPROOF-PAKKE
Optimizer Pack bundler vores testede skills til at holde agent-kontekst slank: token-budgettering, kontekstkomprimering, prompt-cache-tuning og instruktionsfil-hygiejne, verificeret på rene installationer, før vi sælger dem.
Få Optimizer Pack — $10Ofte stillede spørgsmål
Læser Claude Code AGENTS.md?
Ikke nativt, medio 2026. Claude Code leder efter CLAUDE.md. Standard-workarounds er et symlink (ln -s AGENTS.md CLAUDE.md) eller en tynd CLAUDE.md, der importerer den delte fil med @AGENTS.md. Begge virker; import-versionen giver dig også et sted til Claude-only-instruktioner.
Bør AGENTS.md erstatte min CLAUDE.md?
Erstat dens indhold, behold filen. Flyt alt værktøjsagnostisk ind i AGENTS.md, og skrump så CLAUDE.md til en import plus Claude-specifikke linjer om skills, hooks og tilladelser. At slette CLAUDE.md helt giver kun mening med symlink-tilgangen, hvor de to bogstaveligt er de samme bytes.
Kan jeg lægge skill-lignende instruktioner i AGENTS.md i stedet for at installere skills?
Det kan du, og for et enkelt lille repo er det fint. Omkostningerne viser sig i skala: instruktionerne loader i hver session, uanset om relevante, og de følger ikke dig til andre projekter. Andre agenter, der læser filen, får også adfærdsvejledning skrevet til Claude. Adfærd, du ville genbruge på tværs af repos, hører hjemme i en skill.
Hvor lang bør en AGENTS.md være?
Kort nok til, at hver linje fortjener sin kontekstomkostning. De fleste gode, vi har reviewet, er 30 til 80 linjer. Er din på flere hundrede, bærer den nok adfærdsindhold, der hører hjemme i skills, eller referencemateriale, der burde være et linket dokument, agenten læser efter behov.
Virker undermappe-AGENTS.md-filer?
Ja, konventionen understøtter nesting: filen tættest på koden, der redigeres, vinder for det område. Monorepos bruger dette til at give pakker deres egne build- og test-kommandoer. Behold rodfilen til repo-brede fakta, og skub pakke-specifikke ting nedad. Claude Code anvender samme nærmeste-fil-logik på CLAUDE.md, så wrapper-mønsteret nester rent.
★ 9.6/10 × 3
Den gratis startpakke
De 3 skills med vores højeste testscorer plus installations-tjeklisten — det setup, vi selv ville lægge på en frisk maskine. Gratis, på mail.