Wersjonowanie agentów
Bezpiecznie testuj konfiguracje agentów za pomocą gałęzi, wersji i wdrażania ruchu
Wersjonowanie agentów pozwala testować różne konfiguracje agenta bez ryzyka dla środowiska produkcyjnego. Twórz odizolowane gałęzie, testuj zmiany i stopniowo wdrażaj aktualizacje, rozdzielając ruch procentowo.
Chcesz przeprowadzać testy A/B? Zobacz Eksperymenty, aby poznać zalecany sposób testowania zmian agenta na rzeczywistym ruchu.
Omówienie
System wersjonowania oferuje:
- Niezmienne migawki konfiguracji agenta w dowolnym momencie
- Odizolowane gałęzie do testowania zmian przed wdrożeniem
- Podział ruchu, który pozwala stopniowo wdrażać zmiany dla części użytkowników
- Scalanie, aby przenosić zmiany z dowolnej gałęzi do innej gałęzi
- Rebase, aby pobierać najnowsze zmiany z głównej gałęzi do gałęzi
Po włączeniu wersjonowania dla agenta nie można go wyłączyć. Weź to pod uwagę przed włączeniem wersjonowania dla istniejących agentów.
Kluczowe pojęcia
Wersje
Wersja to niezmienna migawka konfiguracji agenta w określonym momencie. Każda wersja ma unikalny identyfikator (format: agtvrsn_xxxx) i zawiera:
conversation_config- prompt systemowy, ustawienia LLM, konfigurację głosu, narzędzia, bazę wiedzyplatform_settings- wersjonowany podzbiór obejmujący ustawienia ewaluacji, widżetu, zbierania danych i zabezpieczeńworkflow- pełną definicję workflow z węzłami i krawędziami
Wersje są tworzone automatycznie, gdy zapisujesz zmiany w wersjonowanym agencie. Po utworzeniu wersji nie można jej zmodyfikować.
Gałęzie
Gałęzie to nazwane linie rozwoju, podobne do gałęzi git. Pozwalają pracować nad zmianami w izolacji przed scaleniem ich z powrotem z główną gałęzią.
- Każdy wersjonowany agent ma gałąź Main, której nie można usunąć ani zarchiwizować
- Dodatkowe gałęzie można tworzyć z dowolnej wersji na dowolnej istniejącej gałęzi, nie tylko z main
- Gałęzie można scalać z dowolną inną gałęzią, a gałęzie inne niż main można rebase’ować na main, aby pobrać najnowsze zmiany
- Każda gałąź ma: id (
agtbrch_xxxx), nazwę, opis i listę wersji - Nazwy gałęzi mogą zawierać: litery, cyfry oraz
() [] {} - / .(maks. 140 znaków)
Wdrażanie ruchu
Ruch można dzielić procentowo między wiele gałęzi, co umożliwia stopniowe wdrożenia i testy A/B.
- Suma procentów musi zawsze wynosić dokładnie 100%
- Kierowanie ruchu jest deterministyczne na podstawie identyfikatora rozmowy (ten sam użytkownik jest zawsze kierowany do tej samej gałęzi)
- Można archiwizować tylko niezarchiwizowane gałęzie z 0% ruchu
Wersje robocze
Niezapisane zmiany są przechowywane jako wersje robocze, dzięki czemu możesz nad nimi pracować bez natychmiastowego tworzenia nowej wersji.
- Wersje robocze są na użytkownika i gałąź (każdy członek zespołu ma własną wersję roboczą)
- Wersje robocze są automatycznie odrzucane po zatwierdzeniu nowej wersji
- Wersje robocze są też odrzucane podczas scalania z gałęzią
Włączanie wersjonowania
Wersjonowanie jest opcjonalne i trzeba je wyraźnie włączyć. Możesz je włączyć podczas tworzenia nowego agenta lub dla istniejącego agenta.
Po włączeniu wersjonowania nie można go wyłączyć. To trwała zmiana w agencie.
Włączanie podczas tworzenia agenta
Włącz w panelu
Włącz przez API
Otwórz agenta w panelu, przejdź do Ustawień i włącz wersjonowanie. Po włączeniu pojawi się karta Wersjonowanie, w której możesz zarządzać gałęziami, wersjami roboczymi, wersjami i wdrażaniem ruchu.
Włączanie dla istniejącego agenta
Włącz w panelu
Włącz przez API
Otwórz agenta w panelu, przejdź do Ustawień i włącz wersjonowanie.
Włączenie wersjonowania tworzy początkową gałąź „Main” z pierwszą wersją zawierającą bieżącą konfigurację agenta.
Praca z gałęziami
Tworzenie gałęzi
Gałęzie można tworzyć z dowolnej wersji na dowolnej gałęzi, nie tylko z main. Opcjonalnie możesz dodać zmiany konfiguracji, które zostaną zastosowane w początkowej wersji nowej gałęzi.
Lista gałęzi
Pobieranie szczegółów gałęzi
Zatwierdzanie zmian
Gdy aktualizujesz agenta z włączonym wersjonowaniem, podaj branch_id, aby utworzyć nową wersję w tej gałęzi.
Aktualizuj w panelu
Aktualizuj przez CLI
Aktualizuj przez API
Otwórz kartę Wersjonowanie agenta, przełącz się na docelową gałąź, edytuj konfigurację i zapisz ją, aby utworzyć nową wersję.
Nowa wersja jest automatycznie tworzona w podanej gałęzi, a istniejąca wersja robocza tego użytkownika w tej gałęzi zostaje odrzucona.
Wdrażanie ruchu
Użyj endpointu wdrożeń, aby rozdzielić ruch między gałęzie. Umożliwia to stopniowe wdrożenia i testy A/B.
Kierowanie ruchu jest deterministyczne na podstawie identyfikatora rozmowy, więc ten sam użytkownik zawsze trafia do tej samej gałęzi w różnych sesjach.
Scalanie gałęzi
Gdy zmiany w gałęzi są gotowe, scal je z inną gałęzią. Każdą niezarchiwizowaną gałąź można scalić z dowolną inną niezarchiwizowaną gałęzią, nie tylko z main.
Aby zmiany w gałęzi zostały sprawdzone przed scaleniem lub aby dotrzeć do gałęzi, do której nie masz uprawnień do zapisu, otwórz propozycję scalenia zamiast scalać bezpośrednio.
Scalanie:
- Tworzy nową wersję w docelowej gałęzi z konfiguracją gałęzi źródłowej
- Opcjonalnie archiwizuje gałąź źródłową (domyślne zachowanie)
- Automatycznie przenosi ruch z gałęzi źródłowej do docelowej
Scalanie kończy się błędem no_new_changes_to_merge, jeśli gałąź źródłowa została utworzona z gałęzi
docelowej (i nie ma żadnych nowych commitów poza nią), oraz błędem branch_already_merged, jeśli została
już scalona z tą gałęzią docelową.
Rozwiązywanie konfliktów scalenia
Jeśli ustawienie zostało zmienione zarówno w gałęzi źródłowej, jak i docelowej od czasu ich rozdzielenia, domyślnie zachowana zostanie wartość z gałęzi aktualizowanej później. Ustaw force=True, aby zawsze wybrać wartość z gałęzi źródłowej, niezależnie od znaczników czasu.
Przed zatwierdzeniem podejrzyj wynik scalenia, w tym pola, które zostałyby nadpisane:
Rebase gałęzi na main
Rebase pobiera najnowsze zmiany z głównej gałęzi do innej gałęzi, podobnie jak git rebase. Dzięki temu długotrwała gałąź pozostaje aktualna względem main bez scalania z powrotem jej własnych zmian.
Rebase:
- Tworzy nową wersję w gałęzi, która uwzględnia najnowsze zmiany z main
- Zachowuje własne zmiany gałęzi: jeśli ustawienie edytowano zarówno w gałęzi, jak i w main, zawsze zostaje wartość z gałęzi
- Kończy się błędem
branch_already_up_to_date, jeśli gałąź zawiera już wszystkie zmiany z main
Rebase można wykonać tylko dla gałęzi innych niż main i wyłącznie na main. Próba wykonania rebase
dla samej gałęzi main zwraca błąd cannot_rebase_main.
Przed zatwierdzeniem podejrzyj wynik rebase:
Archiwizowanie gałęzi
Archiwizuj gałęzie, których już nie potrzebujesz. Dzięki temu lista gałęzi pozostaje uporządkowana.
Nie możesz zarchiwizować gałęzi, do której przypisano ruch. Przed archiwizacją usuń cały ruch.
Zarchiwizowane gałęzie można przywrócić, ustawiając archived=False.
Duplikowanie wersjonowanego agenta
Duplikowanie agenta tworzy nowego agenta zawierającego kopię każdej niezarchiwizowanej gałęzi agenta źródłowego, a nie tylko głównej gałęzi.
W zduplikowanym agencie:
- Główna gałąź jest tworzona z najnowszej wersji na głównej gałęzi agenta źródłowego
- Każda inna niezarchiwizowana gałąź jest odtwarzana z tą samą nazwą i opisem, zaczynając od najnowszej wersji w tej gałęzi
- Każda gałąź zaczyna z jedną wersją, ponieważ historia wersji nie jest kopiowana
- Zarchiwizowane gałęzie i wersje robocze nie są kopiowane
- Wdrożenia ruchu nie są kopiowane, więc cały ruch trafia do głównej gałęzi, dopóki nie wdrożysz ruchu do innych gałęzi
Identyfikatory gałęzi i wersji w duplikacie są nowe, więc zaktualizuj wszelkie odwołania do identyfikatorów agenta źródłowego.
Pobieranie konkretnych wersji
Możesz pobrać agenta w konkretnej wersji lub na końcu gałęzi.
Pobieranie agenta w konkretnej wersji
Pobieranie agenta na końcu gałęzi
Uwzględnianie zmian z wersji roboczej
Dokumentacja ustawień
Ustawienia wersjonowane
Te ustawienia mogą różnić się między wersjami i gałęziami:
Ustawienia na poziomie agenta
Te ustawienia należą do agenta, a nie do wersji, więc są wspólne dla wszystkich gałęzi:
Ustawienia na poziomie agenta można zmieniać tylko w głównej gałęzi. W innych gałęziach panel pokazuje je jako tylko do odczytu, a opublikowanie wersji w gałęzi innej niż main odrzuca wszelkie ich zmiany. Późniejsze scalenie gałęzi z main również ich nie zastosuje. Przełącz się na główną gałąź, aby je zmienić; po opublikowaniu tam zmiana zostanie zastosowana w każdej gałęzi.
Dobre praktyki
Twórz testy przed utworzeniem gałęzi
Skonfiguruj automatyczne testy, które opisują oczekiwane zachowanie przed utworzeniem nowej gałęzi. Ustanowisz w ten sposób punkt odniesienia i łatwiej wykryjesz regresje na wczesnym etapie podczas pracy nad eksperymentem.
Używaj opisowych nazw gałęzi
Wybieraj nazwy gałęzi, które jasno określają cel eksperymentu. Dodaj nazwę funkcji,
hipotezę lub numer zgłoszenia, aby łatwo je rozpoznać (np. feature/new-greeting-flow lub
experiment/shorter-responses).
Dokumentuj cele gałęzi
W polu opisu gałęzi wyjaśnij, jaką hipotezę testujesz, jakie metryki definiują sukces oraz jakie są zależności i kwestie do uwzględnienia. Pomoże to członkom zespołu zrozumieć aktywne eksperymenty.
Używaj wersji roboczych podczas pracy
Często zapisuj wersje robocze podczas pracy nad zmianami. Zachowasz dzięki temu swoją pracę bez tworzenia niepotrzebnych wersji. Zatwierdzaj zmiany dopiero, gdy są gotowe do testów lub wdrożenia.
Zacznij od małego procentu ruchu
Wdrażając nową gałąź, zacznij od 5–10% ruchu. Ograniczy to ryzyko w razie problemów, a jednocześnie zapewni miarodajne dane.
Monitoruj kluczowe metryki przed zwiększeniem ruchu
Użyj panelu analitycznego, aby porównać wydajność gałęzi. Sprawdzaj wskaźniki ukończenia rozmów, średni czas rozmowy, wyniki ewaluacji sukcesu i wskaźniki wykonania narzędzi. Zwiększaj ruch tylko wtedy, gdy metryki osiągają lub przewyższają poziom bazowy głównej gałęzi.