Przejdź do głównej zawartości

Zarządzanie ryzykiem dostawcy — testuj ciągłość, nie logo

Zarządzanie ryzykiem dostawcy AI to bezpieczne utrzymanie krytycznej pracy inżynierskiej, gdy dostawca zmienia model, limit, trasę, cenę, warunki albo cały produkt. Maksimum w pytaniu Q25 CTO Scorecard wymaga przetestowanego fallbacku i trybu ograniczonego, eksportowalnych artefaktów, przeglądu umów i lokalizacji danych, nazwanego właściciela oraz ćwiczenia odtworzenia. Sam drugi dostawca tego wyniku nie daje.

Ta strona jest dla CTO lub VP Engineering, który odpowiada za dostarczanie, gdy dostawca coś zmienia, oraz dla tech leada, który prowadzi ćwiczenie odtworzenia. Przed tą stroną: zarządzanie kosztami użycia AI. Ostatnie tygodnie pokazują, po co. Pod koniec sierpnia (31.08.2026) Codex wycofał GPT-5.4 i przeniósł użytkowników na GPT-6 Sol. 4 września 2026 domyślnym modelem Codeksa została GPT-6 Astra. 22 września 2026 kanał latest Claude Code przełączył domyślny model na Claude Opus 5.5. Żadna z tych zmian nie czekała na twój kalendarz wydań, a każda przesunęła koszt zmiany i punkt odniesienia dla review.

  • Rejestr ciągłości usług, który dla każdej zależności AI wskazuje właściciela, cel odtworzenia i fallback.
  • Konfigurację fallbacku dla Claude Code i Codeksa, która przy awarii kończy się błędem i blokuje merge (tzw. fail closed): brak review agenta nigdy nie liczy się jako review zaliczone.
  • Ćwiczenie odtworzenia na danych syntetycznych, które przeprowadzisz w dwie godziny, razem z listą dowodów, które ma wytworzyć.
  • Obserwację zmian, która wyłapuje wycofania modeli i zmiany modeli domyślnych, zanim dotrą do twojego potoku.
  • Kryteria akceptacji, które zespoły bezpieczeństwa i finansów podpiszą bez czytania każdego przebiegu.

Scorecard CTO pyta: „Jak zarządzasz vendor risk (Anthropic / OpenAI / Cursor / Google)?” i punktuje cztery odpowiedzi.

OdpowiedźWynikCzego nadal nie udowodniono
Jeden dostawca, brak planu B0Niczego: nikt nie wie, co stanie, gdy stanie dostawca
Jeden dostawca, ale śledzimy konkurencję1Świadomość to nie fallback; nic nie zostało uruchomione
Udokumentowany fallback lub tryb ograniczony przetestowany na reprezentatywnych workflow2Artefaktów, umów, lokalizacji danych i powtarzalnego ćwiczenia
Przetestowany fallback i tryb ograniczony, eksportowalne artefakty, przegląd umów i lokalizacji danych, nazwany właściciel, ćwiczenie odtworzenia3Niczego strukturalnego, o ile ćwiczenie się powtarza

Konfiguracja z jednym dostawcą może dostać 3 punkty. Liczy się to, czy zapisany cel odtworzenia wytrzymuje test, a nie liczba logotypów na fakturze. Konfiguracja z wieloma dostawcami, której nikt nie przećwiczył, dostaje co najwyżej 1.

Awaria jest najmniej prawdopodobnym zdarzeniem. Większość zakłóceń przychodzi jako zwykła zmiana produktu. Każdy wiersz z datą wydarzył się albo został ogłoszony w tygodniach przed datą lastUpdated tej strony; ostatni wiersz opisuje przypadek ogólny.

Rodzaj zmianyPrzykład z datą (sprawdzone 2026-09-26)Co psujeSygnał do obserwacji
Wycofanie modeluCodex wycofał GPT-5.4 2026-08-31 i przeniósł użytkowników na GPT-6 SolPrzypięte zadania CI, bazowe wyniki ewaluacjiStrona wycofań dostawcy, katalog modeli Codeksa
Zmiana modelu domyślnego2026-09-04 domyślnym modelem Codeksa została GPT-6 Astra; w Claude Code od v2.1.280 (kanał latest; stable 2.1.274 jeszcze do niej nie doszedł 2026-09-26) domyślny jest Opus 5.5Koszt zmiany, punkt odniesienia review, ustawienia poziomu wysiłku (effort)Informacje o wydaniach (release notes), kanał stable a latest
Model usunięty z platformyGitHub Copilot wycofuje 2026-10-02 cztery modele, w tym Claude Opus 4.7Konfiguracje, które wybierały te modele po nazwieHistoria wycofań modeli w Copilocie
Cichy fallback w żądaniuŻądania do Opus 5.5 oznaczone jako dotyczące cyberbezpieczeństwa Claude Code przekierowuje na Opus 4.8, a dotyczące biologii — na Opus 5; tak jest od premiery Opus 5.5 (2026-09-22)Jakość pracy nad bezpieczeństwem, bez widocznego błęduNazwa modelu w logach przebiegu
Zamknięcie produktuRozszerzenie Roo Code zostało zamknięte 15 maja 2026, według jego READMECały workflow i zapisana w nim konfiguracjaStatus repozytorium, komunikaty dostawcy
Limity i planyAnthropic podniósł 2026-09-22 pięciogodzinne limity użycia w Pro, Max, Team i Enterprise z licencjami na stanowiskoPlanowanie pojemności, w obie stronyStrony planów, konsola administracyjna
Trasa, region lub warunkiKażda zmiana retencji, podprocesorów lub regionu przetwarzaniaZgoda compliance dla danej klasy danychPowiadomienia umowne, lista podprocesorów

Anthropic zobowiązuje się do co najmniej 60 dni wyprzedzenia przed wycofaniem modelu (strona model deprecations, sprawdzone 2026-09-26). Sześćdziesiąt dni wystarczy tylko wtedy, gdy ktoś przeczyta powiadomienie i ma gotową, przetestowaną ścieżkę. Aktualne nazwy modeli, ceny i daty wycofań są na jednej stronie: w hubie modeli.

  1. Spisz każdą zależność, nie tylko API. Dla każdego workflow AI wypisz tożsamość (SSO, licencje), model, trasę (bezpośrednie API, platforma chmurowa, bramka), integracje (serwery MCP, aplikacje GitHub), przechowywane artefakty, rozliczenia i warunki prawne. Asystent kodowania, który działa, ale nikogo nie zaloguje, jest niedostępny.

  2. Ustal cel odtworzenia dla każdego workflow. Zapisz dopuszczalny czas niedostępności, akceptowalny spadek jakości, dopuszczalny wzrost kosztu i pracę ręczną, którą zespół udźwignie. Opcjonalny asystent w edytorze zniesie dzień przerwy. Bramka review w CI, która blokuje każdy merge, nie zniesie.

  3. Wybierz najmniejszy fallback, który spełnia cel. Opcje od najtańszej do najdroższej: praca ręczna według spisanej procedury, kolejka czekająca na powrót usługi, okrojona funkcja, inny zatwierdzony model tego samego dostawcy, ten sam model przez inną trasę i inny dostawca. Wybierz pierwszą opcję, która spełnia cel.

  4. Zatwierdź każdy fallback dla tej samej klasy danych. Trasa zapasowa ma własne warunki retencji, regionu i podprocesorów. Przeprowadź ją przez ten sam przegląd co trasę główną w polityce danych i compliance AI, zanim będzie potrzebna. Dostępność nigdy nie wygrywa z compliance.

  5. Skonfiguruj fallback tak, by awaria blokowała merge. Gdy niedostępne są i trasa główna, i zapasowa, workflow ma zgłosić „incomplete” i przekazać sprawę człowiekowi, a nie przejść po cichu. Konfiguracja dla każdego narzędzia jest niżej.

  6. Przećwicz to i powtarzaj według harmonogramu. Przeprowadzaj poniższe ćwiczenie odtworzenia raz na kwartał i po każdym powiadomieniu dostawcy, które dotyka krytycznego workflow. Dowody dołącz do rejestru.

Skopiuj tę tabelę do polityki narzędziowej i prowadź jeden wiersz na każdy krytyczny workflow. Dwa wiersze to wypełnione przykłady.

WorkflowKrytycznośćTrasa główna (narzędzie, model, trasa)FallbackTryb ograniczonyCel odtworzeniaKlasa danych zatwierdzona dla fallbackuEksportowalne artefaktyWłaścicielOstatnie ćwiczenie
Agent review PR w CIBlokuje mergeClaude Code, Opus 5.5, API AnthropicSonnet 5 na tej samej trasieZadanie oznacza „incomplete”, wymagane review CODEOWNERS1 godzina do trybu ograniczonego, bez cichego przejściaKod wewnętrzny (tak)REVIEW.md, prompty, zestaw ewaluacjiLider platformy2026-09-12
Kodowanie interaktywneOpcjonalneCodex, GPT-6 AstraProfil GPT-6 Sol; Claude Code z AGENTS.mdPraca ręczna1 dzień roboczyKod wewnętrzny (tak)AGENTS.md, umiejętności (skills), specyfikacjeSzef inżynierii2026-08-29

Kolumna Eksportowalne artefakty to miejsce, w którym przenośność staje się konkretna. AGENTS.md, Agent Skills, konfiguracja MCP, specyfikacje i zestawy ewaluacji przechodzą między narzędziami. To, co zostaje u dostawcy, i jak przećwiczyć pełną zmianę narzędzia, opisuje strona jak uniknąć uzależnienia od dostawcy.

Narzędzia różnią się w jednym ważnym punkcie. Claude Code ma wbudowaną flagę modelu zapasowego. Codex 0.157.1 jej nie ma (sprawdzone w codex --help i codex exec --help), więc fallbackiem jest drugi profil wywoływany przez twój skrypt. Dla Cursora ta strona nie podaje żadnego modelu ani ustawienia domyślnego, bo 2026-09-26 nie dało się ich zweryfikować na cursor.com.

Dodaj model zapasowy do zadań CI. Claude Code v2.1.283 przyjmuje --fallback-model, który przełącza na wskazany model lub modele, gdy model domyślny jest przeciążony albo niedostępny („when the default model is overloaded or not available”), i na początku każdej tury użytkownika ponawia próbę z modelem głównym. Opakuj zadanie tak, by całkowita porażka blokowała merge:

Okno terminala
# Krok CI (terminal). Klucz API pochodzi z magazynu sekretów CI.
if ! claude -p "Review the diff against origin/main using the rules in REVIEW.md. Report findings as JSON." \
--model claude-opus-5-5 --fallback-model claude-sonnet-5 \
--allowedTools "Bash(git diff *)" "Bash(git log *)" Read Grep Glob \
--output-format json --max-budget-usd 5 > review.json; then
echo "agent-review: INCOMPLETE - agent run failed (model unavailable or budget exhausted), human review required" >&2
exit 1
fi

Wyczerpanie budżetu też blokuje merge: gdy skończy się --max-budget-usd, claude -p kończy się kodem 1 z podtypem wyniku error_max_budget_usd, dlatego komunikat wymienia obie przyczyny.

Przebieg claude -p startuje w trybie Manual, który bez zezwolenia odmawia edycji i poleceń powłoki. Tryb Manual z tą listą dozwolonych narzędzi pozwala zadaniu czytać diff, ale nie edytować plików. Zapisuj w logu zadania, który model odpowiedział: fallback, którego nikt nie widzi, staje się nowym punktem odniesienia bez żadnej ewaluacji.

Miej gotową drugą trasę. Te same modele Claude działają przez Amazon Bedrock, Agent Platform w Google Cloud (dawniej Vertex AI) i Microsoft Foundry. Aliasy rozwiązują się tam inaczej: 2026-09-26 alias sonnet oznaczał Sonnet 5 w API Anthropic, ale Sonnet 4.5 w Bedrock, Google Cloud i Foundry. Na każdej trasie przypinaj pełne identyfikatory modeli. Konfigurację tras i kontrolę regionów opisuje strona gdzie działa model.

Spowolnij zmiany modeli domyślnych. Ustaw całej flocie "autoUpdatesChannel": "stable". Kanał stable jest mniej więcej tydzień za latest, co daje ci tydzień na ewaluacje, zanim nowy model domyślny trafi do wszystkich. 2026-09-26 stable to v2.1.274, w której Opus 5.5 jest niedostępny (wymaga v2.1.280+, czyli kanału latest). Przypnij runner CI do sprawdzonej wersji z kanału latest (na przykład npm @anthropic-ai/claude-code@2.1.283) albo zostań przy stable i przypnij claude-opus-5, dopóki stable nie dojdzie do 2.1.280.

Ćwiczenie odtworzenia dowodzi, że rejestr mówi prawdę. Przeprowadzaj je na gałęzi albo w repozytorium testowym z danymi syntetycznymi, nigdy na produkcji.

ScenariuszJak go bezpiecznie zasymulowaćOczekiwany wynikDowód do zapisania
Model główny niedostępnyUstaw w zadaniu CI --model lub -m na identyfikator modelu, do którego twój klucz nie ma uprawnień, albo który nie istniejeCodex: uruchamia się profil zapasowy. Claude Code: w v2.1.285 nierozpoznany identyfikator modelu głównego uruchamia fallback; log pokazuje unrecognized_model, a pole modelUsage w wyniku JSON wskazuje model zapasowy. Powtórz to po każdej aktualizacjiLog zadania, czas do zielonego wyniku
Wszystkie modele niedostępneUnieważnij klucz API zadania testowegoZadanie kończy się błędem „incomplete” i blokuje merge; wymagane jest review człowiekaLog zadania, zablokowany PR
Zmiana modelu domyślnegoUruchom zestaw ewaluacji na nowym modelu domyślnym, zanim przejdzie na niego flotaWyniki w uzgodnionej tolerancji albo przypięcie zostajeRaport z ewaluacji
Narzędzie niedostępne przez tydzieńJeden inżynier kończy reprezentatywne zadanie w narzędziu zapasowymZadanie przechodzi zwykłe bramki w ramach celuLink do PR, czas pracy
Zmiana trasy lub warunkówUsuń w rejestrze zatwierdzenie trasy zapasowejNikt nie może jej wybrać, dopóki nie zostanie ponownie zatwierdzonaZaktualizowany wiersz rejestru
Eksport artefaktówWyeksportuj przenośne pliki i odtwórz je w czystym klonieNarzędzie zapasowe czyta instrukcje i umiejętności (skills)Odtworzone repozytorium

Zmierz czas odtworzenia, zmianę jakości, zmianę kosztu, pracę ręczną i każdą utraconą możliwość. Nazwany właściciel podpisuje wynik. Nieudany scenariusz to przydatne ustalenie: dopisz go do roadmapy narzędzi AI z budżetem i datą.

Jak udowodnić, że fallback nadal spełnia poprzeczkę?

Dział zatytułowany „Jak udowodnić, że fallback nadal spełnia poprzeczkę?”

Fallback, który się uruchamia, to jeszcze nie fallback, który działa. Udowadniasz to tymi samymi dowodami co dla trasy głównej, bez czytania każdego diffa:

  • Bramki zostają identyczne. Testy, sprawdzanie typów, lint, skany bezpieczeństwa i wymagani recenzenci obowiązują bez zmian na ścieżce zapasowej. Fallback, który pomija bramkę, to naruszenie polityki, a nie tryb ograniczony.
  • Ewaluacje działają na modelu zapasowym. Uruchom zestaw ewaluacji na fallbacku, zanim go zatwierdzisz, i ponownie po każdej zmianie u dostawcy. Procedura jest taka sama jak w 48-godzinnym playbooku nowego modelu. Sam zestaw ewaluacji opisuje strona ewaluacja agentów kodujących.
  • Akceptację się mierzy, a nie zakłada. Porównaj odsetek zmian z fallbacku, które przechodzą bramki, z odsetkiem dla trasy głównej w tym samym okresie.
  • Koszt pozostaje widoczny. Fallback na droższą trasę pojawia się w miesięcznym przeglądzie wydatków opisanym w zarządzaniu kosztami użycia AI.
  • Podpisuje konkretna osoba. Właściciel workflow podpisuje dowody z ćwiczenia; bezpieczeństwo podpisuje zatwierdzenie klasy danych dla każdej trasy.

Wklej je do Claude Code lub Codeksa w katalogu głównym repozytorium z polityką narzędziową. Działają tak samo w obu narzędziach.

Abstrakcja bez równoważności. Bramka czy router przełączy endpoint, ale nie wyrówna modeli, okien kontekstu, wywołań narzędzi ani warunków regionalnych. Przykład aliasu sonnet wyżej pokazuje, że ta sama nazwa może oznaczać inny model na innej trasie. Wyjście: przypinaj pełne identyfikatory modeli i zatwierdzaj każdą trasę osobnym przebiegiem ewaluacji.

Cichy fallback staje się punktem odniesienia. Automatyczny fallback utrzymuje zadanie na zielono, jakość spada, a zespół kalibruje się do słabszego modelu. Wyjście: zapisuj w każdym przebiegu model, który odpowiedział, i alarmuj, gdy fallback obsłuży w tygodniu więcej niż uzgodniony odsetek przebiegów.

Bramka agenta przepuszcza kod przy awarii. Zadanie review, które kończy się kodem 0, gdy model jest nieosiągalny, wpuszcza do merge niezrecenzowany kod. Wyjście: zastosuj opisane wyżej opakowanie, które przy awarii blokuje merge, i włącz scenariusz „wszystkie modele niedostępne” do każdego ćwiczenia.

Fallback łamie politykę danych. Drugi dostawca lub region nigdy nie został zatwierdzony dla kodu, który teraz widzi. Wyjście: usuń go z rejestru, dopóki nie przejdzie kwestionariusza dla dostawców, i sprawdź w logach, jakie dane już wysłano.

Prywatne konta stają się fallbackiem w cieniu. W czasie awarii inżynierowie przechodzą na prywatne plany, których nie obejmują twoje warunki danych. Wyjście: zapewnij z góry zatwierdzoną licencję zapasową i wymuś logowanie przez organizację, jak opisano w kontach zespołu.

Ćwiczenie odbyło się raz. Ćwiczenie sprzed roku nic nie mówi o modelach domyślnych z tego miesiąca. Wyjście: powiąż ćwiczenie z przeglądem kwartalnym i z każdym powiadomieniem dostawcy, które dotyka krytycznego workflow. Jeśli zmiana u dostawcy wywoła incydent, poprowadź go procesem obsługi incydentów agentów.

Wszystkie odpowiedzi ze scorecardu znajdziesz w przewodniku po scorecardzie CTO.