Versionshantering för agenter
Experimentera säkert med agentkonfigurationer med hjälp av grenar, versioner och trafikdistribution
Versionshantering för agenter gör att du kan experimentera med olika konfigurationer för din agent utan att riskera din produktionskonfiguration. Skapa isolerade grenar, testa ändringar och rulla gradvis ut uppdateringar med trafikdistribution baserad på procentandelar.
Vill du köra A/B-tester? Se Experiment för det rekommenderade arbetsflödet för att testa agentändringar mot aktiv trafik.
Översikt
Versionshanteringssystemet erbjuder:
- Oföränderliga ögonblicksbilder av din agentkonfiguration vid varje tidpunkt
- Isolerade grenar för att testa ändringar innan de går live
- Trafikdelning för att gradvis rulla ut ändringar till en andel av användarna
- Sammanslagning för att föra in ändringar från valfri gren i valfri annan gren
- Rebase för att hämta de senaste ändringarna från huvudgrenen till en gren
När versionshantering har aktiverats för en agent kan den inte inaktiveras. Tänk på detta innan du aktiverar versionshantering för befintliga agenter.
Grundläggande begrepp
Versioner
En version är en oföränderlig ögonblicksbild av en agents konfiguration vid en specifik tidpunkt. Varje version har ett unikt ID (format: agtvrsn_xxxx) och innehåller:
conversation_config- Systemprompt, LLM-inställningar, röstkonfiguration, verktyg, kunskapsbasplatform_settings- Versionshanterad delmängd som omfattar inställningar för utvärdering, widget, datainsamling och säkerhetworkflow- Fullständig workflow-definition med noder och kanter
Versioner skapas automatiskt när du sparar ändringar i en versionshanterad agent. När en version har skapats kan den inte ändras.
Grenar
Grenar är namngivna utvecklingslinjer, liknande git-grenar. De låter dig arbeta med ändringar isolerat innan du slår samman dem tillbaka till huvudgrenen.
- Varje versionshanterad agent har en Main-gren som inte kan tas bort eller arkiveras
- Ytterligare grenar kan skapas från valfri version på valfri befintlig gren, inte bara huvudgrenen
- Grenar kan slås samman med valfri annan gren, och andra grenar än huvudgrenen kan rebasas på huvudgrenen för att hämta dess senaste ändringar
- Varje gren har: id (
agtbrch_xxxx), namn, beskrivning och en lista över versioner - Grennamn kan innehålla: bokstäver, siffror och
() [] {} - / .(högst 140 tecken)
Trafikdistribution
Trafik kan delas mellan flera grenar efter procentandel, vilket möjliggör gradvisa utrullningar och A/B-testning.
- Procentandelarna måste alltid uppgå till exakt 100 %
- Trafikdirigeringen är deterministisk baserat på konversations-ID:t (samma användare dirigeras konsekvent till samma gren)
- Endast icke-arkiverade grenar med 0 % trafik kan arkiveras
Utkast
Osparade ändringar lagras som utkast, så att du kan arbeta med ändringar utan att omedelbart skapa en ny version.
- Utkast är per användare, per gren (varje teammedlem har sitt eget utkast)
- Utkast kasseras automatiskt när en ny version sparas
- Utkast kasseras också när de slås samman till en gren
Aktivera versionshantering
Versionshantering är valfri och måste aktiveras uttryckligen. Du kan aktivera den när du skapar en ny agent eller för en befintlig agent.
När versionshantering har aktiverats kan den inte inaktiveras. Detta är en permanent ändring av din agent.
Aktivera när du skapar en agent
Aktivera via instrumentpanelen
Aktivera via API:et
Öppna din agent på instrumentpanelen, gå till Settings och aktivera versionshantering. När den har aktiverats blir fliken Versioning tillgänglig för att hantera grenar, utkast, versioner och trafikdistribution.
Aktivera för en befintlig agent
Aktivera via instrumentpanelen
Aktivera via API:et
Öppna din agent på instrumentpanelen, gå till Settings och aktivera versionshantering.
När du aktiverar versionshantering skapas den första grenen “Main” med den första versionen som innehåller den aktuella agentkonfigurationen.
Arbeta med grenar
Skapa en gren
Grenar kan skapas från valfri version på valfri gren, inte bara huvudgrenen. Du kan valfritt inkludera konfigurationsändringar som tillämpas på den nya grenens första version.
Lista grenar
Hämta grendetaljer
Spara ändringar
När du uppdaterar en agent med versionshantering aktiverad anger du branch_id för att skapa en ny version på den grenen.
Uppdatera via instrumentpanelen
Uppdatera via CLI
Uppdatera via API:et
Öppna fliken Versioning för din agent, växla till målgrenen, redigera konfigurationen och spara för att skapa en ny version.
En ny version skapas automatiskt på den angivna grenen och eventuella befintliga utkast för den användaren på den grenen kasseras.
Distribuera trafik
Använd distributionsändpunkten för att fördela trafik mellan grenar. Det möjliggör gradvisa utrullningar och A/B-testning.
Trafikdirigeringen är deterministisk baserat på konversations-ID:t, vilket säkerställer att samma användare konsekvent når samma gren mellan sessioner.
Sammanfoga grenar
När du är nöjd med ändringarna i en gren kan du sammanfoga dem med en annan gren. Alla icke-arkiverade grenar kan sammanfogas med andra icke-arkiverade grenar, inte bara med main.
Om du vill att en grens ändringar ska granskas innan de sammanfogas, eller om du vill nå en gren som du inte har skrivåtkomst till, öppnar du i stället ett sammanfogningsförslag i stället för att sammanfoga direkt.
Sammanfogning:
- Skapar en ny version på målgrenen med källgrenens konfiguration
- Arkiverar valfritt källgrenen (standardbeteende)
- Överför automatiskt trafik från källgrenen till målgrenen
Sammanfogning misslyckas med no_new_changes_to_merge om källgrenen skapades från (och inte har
några nya commits utöver) målgrenen, och med branch_already_merged om den redan har sammanfogats
med det målet.
Lösa sammanfogningskonflikter
Om en inställning har ändrats på både käll- och målgrenen sedan de delades upp behålls som standard värdet från
den gren som uppdaterades senast. Ange force=True för att alltid använda
källgrenens värde i stället, oavsett tidsstämplar.
Förhandsgranska resultatet av en sammanfogning, inklusive eventuella fält som skulle åsidosättas, innan du bekräftar den:
Rebase av grenar på main
En rebase hämtar de senaste ändringarna från main-grenen till en annan gren, ungefär som git rebase. Det håller en långlivad gren uppdaterad med main utan att ännu sammanfoga grenens egna ändringar tillbaka.
Rebase:
- Skapar en ny version på grenen som innehåller mains senaste ändringar
- Bevarar grenens egna ändringar: om en inställning har redigerats både på grenen och i main behålls alltid grenens värde
- Misslyckas med
branch_already_up_to_dateom grenen redan innehåller alla ändringar från main
Endast andra grenar än main kan rebasa, och endast på main. En rebase av själva main-grenen
returnerar felet cannot_rebase_main.
Förhandsgranska resultatet av en rebase innan du bekräftar den:
Arkivera grenar
Arkivera grenar som du inte längre behöver. Det hjälper dig att hålla grenlistan organiserad.
Du kan inte arkivera en gren som har tilldelad trafik. Ta bort all trafik före arkivering.
Arkiverade grenar kan avarkiveras genom att ange archived=False.
Hämta specifika versioner
Du kan hämta en agent vid en specifik version eller vid en grentopp.
Hämta agent vid specifik version
Hämta agent vid grentopp
Inkludera utkaständringar
Inställningsreferens
Versionshanterade inställningar
Dessa inställningar kan skilja sig mellan versioner och grenar:
Inställningar per agent
Dessa inställningar delas mellan alla versioner:
Ändringar av namn och taggar på grenar som inte är main sparas inte för agenten förrän de har sammanfogats med main.
Bästa praxis
Skapa tester innan du skapar en gren
Konfigurera automatiserade tester som fångar det förväntade beteendet innan du skapar en ny gren. Det ger dig en baslinje och hjälper dig att hitta regressioner tidigt när du itererar på experimentet.
Använd beskrivande namn på grenar
Välj grensnamn som tydligt beskriver syftet med experimentet. Inkludera funktions-
namnet, hypotesen eller ärendenumret för enkel referens (t.ex. feature/new-greeting-flow eller
experiment/shorter-responses).
Dokumentera grenarnas syfte
Använd fältet för grenbeskrivning för att förklara vilken hypotes du testar, vilka mått som avgör framgång och eventuella beroenden eller överväganden. Det hjälper teammedlemmar att förstå aktiva experiment.
Använd utkast för pågående arbete
Spara utkast ofta medan du itererar på ändringar. Det bevarar ditt arbete utan att skapa onödiga versioner. Gör commit först när du är redo att testa eller driftsätta.
Börja med små trafikandelar
När du driftsätter en ny gren börjar du med 5–10 % av trafiken. Det begränsar exponeringen om problem uppstår och ger samtidigt användbar data.
Övervaka nyckeltal innan du ökar trafiken
Använd analysdashboarden för att jämföra grenarnas prestanda. Titta på samtalsfrekvens för slutförande, genomsnittlig konversationslängd, poäng för framgångsutvärdering och frekvens för verktygskörning. Öka bara trafiken när måtten når eller överträffar baslinjen för main-grenen.