Orkestrering av AI-agenter är produktionsredo när åtta kriterier är uppfyllda: agenter körs i isolerade arbetsytor, varje ändring passerar automatiserad verifiering, en människa godkänner vid definierade kontrollpunkter, kostnader attribueras per mergad arbetsenhet, agentinstruktioner är versionshanterade filer, orkestreraren är inte låst till en specifik modell-leverantör, datalagring och residens är kända, och ett misslyckat körningsförsök har en väldefinierad återställningsväg. Ett pilotprojekt behöver inget av detta och kan ändå se imponerande ut. I produktion krävs alla åtta, eftersom varje punkt representerar ett felmönster som bara uppstår vid hög volym. Den här artikeln går igenom checklistan, hur otillräckliga svar ser ut och hur du testar varje punkt mot ett befintligt system.
Checklistan
| # | Krav | Frågan att ställa | Ett bristfälligt svar |
|---|---|---|---|
| 1 | Arbetsyteisolering | Var skriver varje agent? | "Direkt i repots arbetskatalog" |
| 2 | Automatiserad verifiering | Vad måste passera innan en människa granskar? | "Granskaren kör testerna" |
| 3 | Mänskliga kontrollpunkter | Var exakt fattar en person beslut? | "Granskare kollar på pull requests" |
| 4 | Kostnadsallokering | Vad kostade den senaste mergade ändringen? | "Vi ser den månatliga API-fakturan" |
| 5 | Versionshanterade instruktioner | Var finns agentens instruktioner? | "I en prompt som någon klistrade in" |
| 6 | Leverantörsportabilitet | Vad händer om modellen läggs ner? | "Vi får skriva om promptarna" |
| 7 | Datahemvist och residens | Vilka parter har en kopia av koden? | "Leverantören hanterar det där" |
| 8 | Återställning | Vad händer om en körning avbryts halvvägs? | "Någon märker det och städar upp" |
Ordningen spelar roll. Punkt 1 till 3 handlar om korrekthet: utan dem skapar volym defekter snabbare än kodgranskningar hinner fånga dem. Punkt 4 till 6 handlar om långsiktig hållbarhet: utan dem fungerar systemet visserligen, men det går varken att analysera eller migrera. Punkt 7 och 8 är frågorna som säkerhetsgranskningen respektive beredskapsingenjören (on-call) kommer att ställa, oftast efter lanseringen.
1. Arbetsyteisolering (Workspace isolation)
Två agenter som redigerar samma arbetskatalog kommer att skriva om varandra, och den resulterande diffen tillhör ingen av planerna. Isoleringsenheten bör vara ett git worktree: en separat arbetskatalog med en egen gren och index, som delar objektarkiv med huvudkatalogen. Att skapa ett worktree är en utcheckning, inte en kloning, så det tar bråkdelen av en sekund i stället för tiden det tar att ladda ner hela historiken på nytt.
# En katalog och en gren per plan.
git worktree add ../work/plan-4812 -b plan/4812
git -C ../work/plan-4812 status --short
git worktree remove ../work/plan-4812
Containrar är en starkare barriär när agenten kör opålitlig kod, och Dockers säkerhetsmodell beskriver vad den gränsen faktiskt garanterar. För en betrodd agent som arbetar i ert eget arkiv är ett worktree oftast den rätta avvägningen: isolering per plan utan en containerstart i den kritiska linjen. Git worktrees för parallella AI-agenter går igenom felmönstren, inklusive delade hooks och submoduler som ofta ställer till problem för utvecklingsteam.
Testa det: Starta två planer som berör samma fil och verifiera att båda genererar rena, separata diffar.
2. Automatiserad verifiering innan en människa granskar
En granskare som läser en diff som inte kompilerar är en granskare vars tid ni har slösat bort. Tester, linting, typtestning, bygge och en omfattningskontroll (scope check) mot planen bör alla köras i agentens worktree och bifoga sina resultat till ändringen. Detta är kontinuerlig integration tillämpad per plan i stället för per gren.
Två grindar (gates) är unika för agentkod. En omfattningskontroll jämför de filer som ändrats med de filer som specificerades i planen, eftersom en agent som ombeds fixa en null-kontroll ibland även formaterar om hela filen och döper om variabler. En säkerhetsskanning letar efter sårbarheter enligt OWASP Top 10 for LLM Applications: osäker hantering av utdata, skadliga paket i leveranskedjan, läckta inloggningsuppgifter. Verifieringsgrindar för AI-genererad kod beskriver vilka grindar som bör blockera och vilka som bara bör informera.
Testa det: Fråga hur stor andel av agentändringarna som når en mänsklig granskare med fallerande tester. Om ingen vet är grinden ingen riktig grind.
3. Mänskliga kontrollpunkter vid exakt två tillfällen
Noll kontrollpunkter innebär att agenten mergar direkt till main och att fel upptäcks av andra utvecklare. Tio kontrollpunkter innebär att godkänna varje enskilt verktygsanrop, vilket gör människan till den långsammaste länken och tränar granskare att godkänna på ren reflex.
Två kontrollpunkter placerar mänskligt omdöme där det verkligen förändrar utfallet. Plangrinden är platsen där ett missförstånd är billigast att åtgärda, eftersom ingen kod har skrivits ännu och en plan bara är en textfil. Diffgrinden är platsen där korrektheten bekräftas mot verifieringsresultaten. Vad är en mjukvarufabrik beskriver hela sekvensen.
Testa det: Nämn de två tillfällen då en människa fattar beslut. Om svaret är en diffus serie aktiviteter snarare än två specifika punkter finns det ingen kontrollpunkt, bara övervakning.
4. Kostnadsallokering per mergad ändring
Den månatliga API-fakturan ger ingen handlingsbar insikt. Det mätetal som måste följas är kostnad per mergad pull request: den totala förbrukningen under perioden, inklusive planer som avvisades eller avbröts, delat med antalet mergade pull requests. Avvisat arbete är en del av kostnaden för accepterat arbete.
Läs av detta tillsammans med avvisningsfrekvensen (denial rate) – andelen pull requests som stängs utan att mergas. Båda mätetalen kan manipuleras genom att göra det andra sämre, vilket är anledningen till att DORA-mätetalen alltid rapporteras som par. Mätning av genomströmning för AI-kodningsagenter definierar varje mätetal och förklarar vad dåliga siffror beror på.
Testa det: Be om kostnaden per mergad PR för föregående månad. Om den bara kan beräknas manuellt från en faktura hanteras den inte aktivt.
5. Instruktioner som versionshanterade filer
Agentbeteende som lever i en prompt som någon klistrat in i ett chattfönster kan inte granskas, diffas eller rullas tillbaka. Instruktioner hör hemma i kodarkivet, av samma anledning som konfiguration gör det i The Twelve-Factor App: en förändring blir till en diff i en pull request som en erfaren ingenjör kan granska och avvisa.
// Instruktioner och minne är filer som orkestreraren läser, inte
// strängar som kompilerats in i programmet. En konvention som lärts
// på måndagen tillämpas av varje agent och varje utvecklare på tisdagen.
interface Promptware {
program: string; // Program.md - fasens instruktioner
memory: string[]; // Memory/ - lärdomar om denna kodbas
tools: string[]; // Tools/ - avgränsade behörigheter
logs: string[]; // Logs/ - append-only körningshistorik
}
Risken kallas drift: en agent som tillåts ändra sina egna instruktioner kan också göra dem sämre, till exempel genom att lägga till "kör om misslyckade tester upp till tre gånger" efter ett instabilt test. Versionshantering är spärren, eftersom ändringen blir en diff som granskaren ser. Promptware: agenter som förbättrar sina egna instruktioner täcker både denna risk och problemet med minnesuppsvällning.
Testa det: Kör git log i katalogen som innehåller dina agentinstruktioner. Ett tomt resultat innebär att instruktionerna inte förvaltas under versionskontroll.
6. Portabilitet mellan modeller och agenter
Modeller avvecklas enligt leverantörens tidplan, inte din. En orkestrerare som hårdkodar en specifik leverantör förvandlar ett utfasningsmeddelande till ett akut migreringsprojekt. Det lager som är värt att äga är själva arbetsflödet: faser, grindar, kontrollpunkter och minne. Den underliggande exekveringsmotorn bör kunna bytas ut per plan, och verktygsåtkomst bör ske via ett standardiserat gränssnitt som Model Context Protocol i stället för specialbyggda integrationer för varje enskild agent.
Portabilitet gör det även möjligt att styra val av modell efter kostnad. Ett sorteringssteg (triage) behöver inte en toppmodell; en arkitekturplan kan behöva det. Du kan bara göra den avvägningen om modellbytet sker via en enkel konfiguration i stället för omskrivning av kod.
Testa det: Byt modell för en enskild plan och kör den. Om det kräver en kodändring har du ett beroende, inte en konfiguration.
7. Känd datahemvist och datasuveränitet
Varje kopia av ditt kodarkiv utanför din direkta kontroll måste inventeras, avtalas om och till slut raderas. En molnbaserad agenttjänst klonar arkivet till leverantörens miljö, vilket innebär minst två externa databehandlare av din källkod: agentleverantören och modelloperatören. En lokal (local-first) orkestrerare har bara en, och då endast för de kodstycken som skickas med i promptarna.
Detta är inte bara ett säkerhetsargument utan framför allt en fråga om avtalsomfattning: det avgör hur många personuppgiftsbiträdesavtal en GDPR-granskning måste omfatta, och om EU-datalagring är en enkel inställning hos leverantören eller en utdragen förhandling. Local-first AI development går igenom frågorna som säkerhetsteamet kommer att ställa.
Testa det: Lista varje part som hanterar en kopia av er kod under en enda agentkörning. Om listan är längre än väntat kommer säkerhetsgranskningen att komma fram till samma sak.
8. En definierad återställningsväg
Vid hög volym uppstår fel: nätverks-timeouts mitt under körningen, en agent som fastnar i en loop, ett verifieringssteg som aldrig avslutas. Orkestreraren måste ha ett svar för varje situation, och svaret får inte vara "någon märker det förr eller senare".
- Misslyckad verifiering: Uppgiften skickas tillbaka till agenten med den faktiska felutskriften bifogad – inte en förkortad sammanfattning – och körs om i samma worktree upp till en satt gräns för återförsök.
- Övergiven körning: Worktreen och dess gren raderas, så att en avbruten plan inte lämnar efter sig skräpkataloger som framtida körningar snavar över.
- Skenande kostnad eller loopar: En token- och tidsbudget per plan som aktivt avbryter körningen snarare än att bara rapportera i efterhand.
- Partiellt tillstånd: Eftersom varje plan äger sitt eget worktree och sin egen gren kastas en misslyckad körning bort genom att radera en enda katalog. Inget har skrivits i några delade miljöer.
Testa det: Döda en agentprocess mitt i en plan. Vad finns kvar på disken, och påverkar det nästa plan?
Hur Ivy Tendril uppfyller de åtta kraven
Ivy Tendril är en lokal skrivbordsapplikation (local-first) för macOS, Windows och Linux som kör kodningsagenter hela vägen från plan till granskad pull request. Worktree-per-plan (1), tester, linting och diff-inspektion kopplade till varje ändring med CI-import på Pro (2), de två kontrollpunkterna (3), kostnad per plan och per jobb (4), promptware-enheter som versionshanterade filer (5), valfri CLI-agent och valfri modell per plan (6), kod och loggar som aldrig lämnar din dator (7), samt automatisk återgång vid felutdata och fullständig worktree-städning (8).
curl -sSf https://cdn.ivy.app/install-tendril.sh | sh
På Windows använder du irm https://cdn.ivy.app/install-tendril.ps1 | iex. Tendril är gratis och källkodstillgängligt under Functional Source License; teamfunktioner, drift på egen infrastruktur (on-prem), SSO och CI-verifieringsimport finns i Pro- och Enterprise-planerna.
Vanliga frågor
Vilket av de åtta kraven bör ett team åtgärda först?
Isolering, därefter verifiering, sedan kontrollpunkter. Kostnads- och minnesproblem är frustrerande; men två agenter som skriver i samma arbetskatalog skapar defekter som ingen kan spåra ursprunget till, vilket är långt värre och betydligt svårare att felsöka.
Är den här checklistan specifik för kodningsagenter?
Felmönstren är det. Isolering, omfattningskontroller och diff-granskning finns eftersom resultatet är en faktisk förändring i en gemensam kodbas. En agent som bara läser information eller skriver till en isolerad databas har en helt annan uppsättning krav.
Hur många agenter kan köras parallellt innan detta blir nödvändigt?
Två stycken. En ensam agent i en arbetskatalog behöver inget av detta. Så fort en andra agent körs samtidigt slutar isolering och kostnadsallokering att vara valbara – och granskningskapaciteten blir den trånga sektorn för genomströmningen snarare än exekveringshastigheten.
Ökar genomströmningen i all oändlighet med mer parallellitet?
Nej. Kodgranskning är en seriell process. Enligt Amdahls lag sätter den seriella delen taket: att lägga till agenter bortom den punkt där granskarna är fullt sysselsatta ökar bara kostnaden och avvisningsfrekvensen utan att ge fler mergade ändringar.
Kom igång med Ivy Tendril
Är du redo för parallell agentorkestrering på utvecklarnivå?
- Utforska källkoden: Upptäck Ivy Tendril på GitHub (Open Source).
- Läs dokumentationen: Hitta integrationsguider på tendril.ivy.app.
- Boka arkitekturgenomgång: Kontakta renco@ivy.app för en 30-minuters teknisk konsultation.