Hur Man Skriver en Bra program.md: En Praktisk Guide för AI-agentinstruktioner
Andrej Karpathys autoresearch bevisade att en välskriven Markdown-fil kan dirigera AI-agenter att göra riktiga vetenskapliga upptäckter över natten. Men inte alla program.md-filer är skapade lika.
Kvaliteten på dina Markdown-instruktioner avgör direkt kvaliteten på AI-agentens utdata. En vag program.md producerar slumpmässiga, oriktade experiment. En precis producerar fokuserade förbättringar som sammansätts.
Här är hur man skriver en program.md som faktiskt fungerar.
Strukturen för en Bra program.md
Varje effektiv program.md behöver fem sektioner, oavsett om du forskar inom ML eller gör annat agent-styrt arbete.
1. Kontext: Vad Behöver Agenten Veta?
Agenten börjar med noll förståelse för ditt projekt. Ditt första jobb är att ge den tillräckligt med kontext för att fatta intelligenta beslut.
Vad som ska inkluderas:
- Vad projektet gör
- Hur kodbasen ser ut
- Nyckelfiler och deras syften
- Domänspecifik terminologi
- Nuvarande tillstånd och kända problem
Vad som ska hoppas över:
- Uppenbar information som LLM:en redan vet
- Implementeringsdetaljer det kan läsa från koden
- Historia som inte påverkar aktuella beslut
2. Mål: Vad Ska Agenten Optimera?
Det här är den mest kritiska sektionen. Agenten behöver ett tydligt, mätbart mål.
I autoresearch är målet enkelt: minska val_bpb (valideringsbit per byte). Agenten kan mäta detta efter varje 5-minuters träningskörning.
Definiera framgång i termer som agenten kan utvärdera för dina egna projekt:
- “Minska sidladdningstiden under 2 sekunder”
- “Öka testtäckningen över 80%”
- “Minska bundle-storleken med minst 15%”
Vaga mål som “förbättra koden” ger vaga resultat. Mätbara mål ger fokuserade förbättringar.
3. Begränsningar: Vad Ska Agenten Aldrig Göra?
Begränsningar är lika viktiga som mål. Utan dem kan agenten hitta kreativa lösningar du inte vill ha --- som att ta bort alla tester för att “förbättra” bygghastigheten.
Vanliga begränsningar:
- Modifiera inte testfiler eller utvärderingskod
- Ändra inte det publika API:et
- Introducera inte nya beroenden
- Överskrid inte en minnesbudget
- Håll koden läsbar och underhållsbar
I autoresearch är nyckelbegränsningen att bara train.py kan modifieras. Datapipelinen, utvärderingskoden och testuppsättningen är låsta. Det förhindrar agenten från att spela med mätvärdena.
4. Strategi: Hur Ska Agenten Angripa Problemet?
Det här är där din domänexpertis lyser. Du vet saker som agenten inte vet --- vilka riktningar som är lovande och vilka som är återvändsgränder.
Bra strategiinstruktioner:
- “Börja med hyperparameterjustering före arkitekturella förändringar”
- “Fokusera på uppmärksamhetsmekanismen --- den nuvarande implementeringen kan vara suboptimal”
- “Prova regulariseringsteknikerna först: dropout, viktförfall, lagernorm”
- “Undvik förändringar som ökar träningstiden med mer än 10%”
Dåliga strategiinstruktioner:
- “Prova allt” (för vagt)
- “Ändra inlärningshastigheten till 0.001” (för specifikt --- du mikrohanterar)
Rätt balans är vägledande riktning som låter agenten utforska inom produktiva gränser.
5. Utvärdering: Hur Ska Agenten Bedöma Framgång?
Agenten behöver veta hur man mäter om dess förändringar hjälpte. I autoresearch är detta inbyggt i loopen: om val_bpb förbättras, behåll förändringen. Om inte, återgå.
Definiera dina utvärderingskriterier för andra sammanhang:
- Vilka mätvärden är viktiga?
- Vilket tröskelvärde räknas som en förbättring?
- Hur ska agenten hantera tvetydiga resultat?
- När ska agenten sluta och rapportera tillbaka?
Vanliga Misstag
Att Vara För Vag
“Förbättra modellen” ger agenten ingen riktning. Var specifik om vad “bättre” innebär, hur man mäter det, och vilka tillvägagångssätt att prova först.
Att Vara För Specifik
“Ändra rad 47 till att använda en inlärningshastighet på 3e-4” motverkar syftet med agentisk ingenjörskonst. Du ska sätta riktning, inte diktera implementering. Låt agenten utforska.
Glömma Begränsningar
Utan begränsningar hittar agenter minsta motståndsvägen --- vilket ofta inte är vad du vill. En agent som fick uppgiften att “minska träningstiden” kan hoppa över hälften av träningsdatan om du inte säger annat.
Att Inte Iterera
Din första program.md kommer inte att vara perfekt. Titta på vad agenten gör, se var det går fel, och uppdatera dina instruktioner. De bästa program.md-filerna utvecklas över dussintals iterationer.
Iterationsloopen
Att skriva program.md är inte en engångsprocess. Det är en loop:
- Skriv din inledande
program.md - Kör agenten
- Granska vad agenten gjorde
- Uppdatera dina instruktioner baserat på vad som fungerade och vad som inte gjorde det
- Upprepa
Varje iteration gör dina instruktioner mer precisa. Efter några omgångar har du en program.md som konsekvent producerar bra resultat.
Det här är kärnkompetensen för agentisk ingenjörskonst: inte att skriva kod, utan att skriva alltmer effektiva agentinstruktioner genom iteration.
Bygga Ditt Referensbibliotek
De bästa program.md-filerna kommer inte från ingenstans. De är byggda på djup kunskap om domänen --- dokumentation, artiklar, bästa praxis och exempel.
När du stöter på användbart referensmaterial på webben, spara det som Markdown. Sedan kan du när du skriver din program.md hämta in relevant kontext, citera specifika tekniker och ge agenten den bakgrundskunskap det behöver.
Forskarna som får de bästa resultaten från autoresearch är inte bara bra skribenter. De är domänexperter med välorganiserat referensmaterial som de kan syntetisera till tydliga agentinstruktioner.
Save konverterar vilken webbsida som helst till ren Markdown --- perfekt för att bygga referensbiblioteket som driver effektiva program.md-filer. Prova Save gratis.