Agentversionering
Experimentera säkert med agentkonfigurationer med hjälp av grenar, versioner och trafikdistribution
Agentversionering låter dig experimentera med olika konfigurationer för din agent utan att riskera produktionsmiljön. 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 live-trafik.
Översikt
Versionshanteringssystemet erbjuder:
- Oföränderliga ögonblicksbilder av din agents konfiguration vid varje given tidpunkt
- Isolerade grenar för att testa ändringar innan de tas i bruk
- Trafikdelning för att gradvis rulla ut ändringar till en andel av användarna
- Sammanfogning för att föra in ändringar från valfri gren i en annan gren
- Ombasering 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 koncept
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 deluppsättning som omfattar inställningar för utvärdering, widget, datainsamling och säkerhetworkflow- Fullständig arbetsflödesdefinition 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 utvecklingsspår, ungefär som git-grenar. De låter dig arbeta med ändringar isolerat innan du sammanfogar dem tillbaka till huvudgrenen.
- Varje versionshanterad agent har en Main-gren som inte kan tas bort eller arkiveras
- Ytterligare grenar kan skapas från vilken version som helst i valfri befintlig gren, inte bara main
- Grenar kan sammanfogas med vilken annan gren som helst, och grenar som inte är main kan ombaseras på main för att hämta dess senaste ändringar
- Varje gren har: id (
agtbrch_xxxx), namn, beskrivning och en lista med versioner - Grennamn kan innehålla: bokstäver, siffror och
() [] {} - / .(max 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 sammanlagt bli exakt 100 %
- Trafikroutning är deterministisk baserat på konversations-ID:t (samma användare routas konsekvent till samma gren)
- Endast oarkiverade 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 genomförs
- Utkast kasseras även när du sammanfogar 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 den har aktiverats kan versionshantering inte inaktiveras. Detta är en permanent ändring av din agent.
Aktivera när du skapar en agent
Aktivera via dashboarden
Aktivera via API:t
Öppna din agent i dashboarden, gå till Settings och aktivera versionshantering. När den har aktiverats blir fliken Versioning tillgänglig för hantering av grenar, utkast, versioner och trafikdistribution.
Aktivera för en befintlig agent
Aktivera via dashboarden
Aktivera via API:t
Öppna din agent i dashboarden, gå till Settings och slå på 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 vilken version som helst i valfri gren, inte bara main. Du kan även inkludera konfigurationsändringar som tillämpas på den nya grenens första version.
Lista grenar
Hämta greninformation
Genomföra ändringar
När du uppdaterar en agent med aktiverad versionshantering anger du branch_id för att skapa en ny version i den grenen.
Uppdatera via dashboarden
Uppdatera via CLI
Uppdatera via API:t
Öppna agentens flik Versioning, växla till målgrenen, redigera konfigurationen och spara för att skapa en ny version.
En ny version skapas automatiskt i den angivna grenen, och alla befintliga utkast för den användaren i den grenen kasseras.
Distribuera trafik
Använd deployment-slutpunkten för att fördela trafik mellan grenar. Det möjliggör gradvisa utrullningar och A/B-testning.
Trafikroutning är deterministisk baserat på konversations-ID:t, vilket säkerställer att samma användare konsekvent når samma gren i olika sessioner.
Sammanfoga grenar
När du är nöjd med ändringarna i en gren sammanfogar du dem med en annan gren. Alla oarkiverade grenar kan sammanfogas med andra oarkiverade grenar, inte bara med main.
Om du vill att ändringar i en gren granskas innan de sammanfogas, eller vill nå en gren som du inte har skrivbehörighet till, öppnar du i stället ett sammanfogningsförslag för att sammanfoga direkt.
Sammanfogning:
- Skapar en ny version i 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 i både käll- och målgrenen sedan de delades, behålls värdet från den gren som uppdaterades senast som standard. 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 fält som skulle skrivas över, innan du genomför den:
Ombasera grenar på main
Ombasering hämtar de senaste ändringarna från huvudgrenen till en annan gren, ungefär som en git rebase. Det håller en långlivad gren uppdaterad med main utan att grenens egna ändringar ännu sammanfogas tillbaka.
Ombasering:
- Skapar en ny version i grenen som innehåller de senaste ändringarna från main
- Bevarar grenens egna ändringar: om en inställning redigerades både i grenen och main behålls alltid grenens värde
- Misslyckas med
branch_already_up_to_dateom grenen redan innehåller alla ändringar från main
Endast grenar som inte är main kan ombaseras, och endast på main. Att ombasera själva huvudgrenen
returnerar felet cannot_rebase_main.
Förhandsgranska resultatet av en ombasering innan du genomför 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 innan du arkiverar den.
Arkiverade grenar kan återställas genom att ange archived=False.
Duplicera en versionshanterad agent
När du duplicerar en agent skapas en ny agent som innehåller en kopia av varje oarkiverad gren i källagenten, inte bara huvudgrenen.
I den duplicerade agenten:
- Huvudgrenen skapas från den senaste versionen i källagentens huvudgren
- Varje annan oarkiverad gren återskapas med samma namn och beskrivning, med utgångspunkt i den senaste versionen i den grenen
- Varje gren börjar med en enda version eftersom versionshistoriken inte kopieras
- Arkiverade grenar och utkast kopieras inte
- Trafikdistributioner kopieras inte, så all trafik går till huvudgrenen tills du distribuerar trafik till andra grenar
Gren- och versions-ID:n i dubbletten är nya, så uppdatera alla referenser till källagentens ID:n.
Hämta specifika versioner
Du kan hämta en agent vid en specifik version eller grenspets.
Hämta agent vid specifik version
Hämta agent vid grenspets
Inkludera utkaständringar
Inställningsreferens
Versionshanterade inställningar
Dessa inställningar kan skilja sig mellan versioner och grenar:
Inställningar per agent
De här inställningarna hör till agenten snarare än en version, så alla grenar delar dem:
Inställningar per agent kan endast ändras i huvudgrenen. I andra grenar visar dashboarden dem som skrivskyddade, och publicering av en version i en gren som inte är main kasserar alla ändringar av dem. Att sedan sammanfoga grenen med main tillämpar dem inte heller. Växla till huvudgrenen för att ändra dem; när de har publicerats där gäller ändringen för varje gren.
Bästa praxis
Skapa tester innan du förgrenar
Konfigurera automatiserade tester som fångar förväntat beteende innan du skapar en ny gren. Det skapar en baslinje och hjälper dig att upptäcka regressioner tidigt när du itererar på experimentet.
Använd beskrivande grennamn
Välj grennamn som tydligt förmedlar experimentets syfte. Ta med funktionsnamnet,
hypotesen eller ärendenumret så att det blir lätt att hitta (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ätvärden 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 när du itererar på ändringar. Det bevarar ditt arbete utan att skapa onödiga versioner. Genomför endast ändringar när du är redo att testa eller distribuera.
Börja med små trafikandelar
När du distribuerar en ny gren, börja med 5–10 % av trafiken. Det begränsar exponeringen om problem uppstår och ger samtidigt meningsfull data.
Övervaka viktiga mätvärden innan du ökar trafiken
Använd analysdashboarden för att jämföra grenarnas prestanda. Titta på andelen slutförda samtal, genomsnittlig konversationslängd, poäng för lyckade utvärderingar och frekvensen för verktygskörningar. Öka endast trafiken när mätvärdena når eller överstiger baslinjen för huvudgrenen.