Codex CLI przez LiteLLM Gateway na Bedrock Mantle
Przesyłaj Codex CLI przez bramkę LiteLLM do Amazon Bedrock Mantle, aby uzyskać dostęp do modeli OpenAI, korzystając z funkcji kontroli bramki, aliasów modeli oraz rozsądnych ustawień domyślnych.
Źródła: Using OpenAI Codex CLI with LiteLLM AI Gateway and Amazon Bedrock Mantle
To przewodnik pokazuje, jak stworzyć cały proces od surowców aż do działającego systemu w celu korzystania z OpenAI Codex CLI w połączeniu z LiteLLM AI Gateway oraz Amazon Bedrock Mantle. Skupiamy się na krokach operacyjnych, wyraźnych sprawdzeniach oraz kodzie, który można bez problemu umieścić w repozytorium, bez konieczności domyślania się intencji. Aby uzyskać ogólny obraz, należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić dany krok na podstawie znanego punktu kontrolnego, bez konieczności domyślania się ukrytego stanu. Należy udokumentować zarówno prawidłowy przebieg procesu, jak i ścieżki naprawcze. Próby ponownych działań, kontrola przez ludzi oraz obsługa błędów stanowią integralną część produktu, a nie elementy dodawane później.
Wsparcie AWS dla OpenAI
Dla wsparcia AWS dla OpenAI należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić dany krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy preferować małe, testowalne jednostki zamiast rozbudowanych skryptów. Gdy dany krok zawiedzie, powód awarii powinien wskazywać na konkretną odpowiedzialność, a nie na skomplikowany proces. Ustal stałe wersje zależności i zapisz hash obrazu, który został użyty do uruchomienia demonstracji. Reprodukowalność jest ważniejsza od lokalnej wiedzy specjalistów.
Dostęp do innych modeli OpenAI
Aby uzyskać dostęp do innych modeli OpenAI, należy zdefiniować dane wejściowe, osobę odpowiedzialną za daną czynność oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić tę czynność na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Traktuj tę fazę jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nazwij pliki powstałe w trakcie procesu, zdefiniuj kryteria sukcesu i odrzuć przypadkowe, częściowe ukończenie zadania. Ustal stałe wersje zależności oraz zapisz hash obrazu, który służył do uruchomienia demonstracji. Reprodukowalność jest ważniejsza od lokalnej wiedzy specjalistów.
Zainstaluj Codex CLI
Aby zainstalować Codex CLI, należy określić dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy rejestrować czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy proces przechodzi z środowiska demonstracyjnego do współdzielonych środowisk. Należy ustalić konkretne wersje zależności i zapisać hash obrazu, który uruchomił demonstrację. Reprodukowalność jest ważniejsza od lokalnej wiedzy specjalistów. Aby zainstalować Codex CLI, należy określić dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy udokumentować zarówno prawidłowy przebieg procesu, jak i ścieżki naprawcze. Próby ponownego uruchomienia, mechanizmy kontroli ludzkiej oraz obsługa błędów stanowią integralną część produktu, a nie elementy dodawane później.
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --version # currently codex-cli 0.142.5
Potwierdzenie działania LiteLLM
Aby potwierdzić, że LiteLLM działa, należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy preferować małe, łatwe do przetestowania jednostki zamiast rozbudowanych skryptów. Gdy jakiś krok zawiedzie, powinno to wskazywać na konkretną odpowiedzialność, a nie na skomplikowany łańcuch operacji. Gdy budżet na to pozwala, należy dodawać testy dymne, które sprawdzają kluczowe ścieżki w procesie CI przy użyciu narzędzi do konfiguracji, a nie żywych, płatnych API.
export LITELLM_DEMO_CLIENT_KEY="sk-your-litellm-virtual-key"
curl -fsS "http://localhost:4000/models" \
-H "Authorization: Bearer $LITELLM_DEMO_CLIENT_KEY" \
| jq '[.data[]
| select(.id | contains("openai"))
| {id, max_input_tokens, max_output_tokens}]'
Mniejsze okna kontekstowe
Dla mniejszych okien kontekstowych należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Traktuj tę fazę jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nadaj nazwy artefaktom, zdefiniuj sprawdzenia sukcesu i odrzucaj ciche, częściowe ukończenie zadań. Dodaj test dymny, który sprawdza kluczową ścieżkę w procesie CI przy użyciu narzędzi pomocniczych, a nie rzeczywistych, płatnych API, o ile pozwala na to budżet.
Używanie Bedrock Mantle kontra LiteLLM
Aby porównać Bedrock Mantle z LiteLLM, należy przed zmianą kodu określić dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy rejestrować czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy proces przechodzi z środowiska demonstracyjnego do współdzielonych środowisk. Gdy budżet na to pozwala, należy dodać test sprawdzający kluczowy szlak w procesie CI, wykorzystując przy tym specjalne pliki konfiguracyjne, a nie rzeczywiste, płatne API. Aby porównać Bedrock Mantle z LiteLLM, należy przed zmianą kodu określić dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy udokumentować zarówno prawidłowy przebieg procesu, jak i ścieżki naprawcze. Próby ponownego wykonania, kontrole ludzkie oraz obsługa wiadomości błędowych stanowią część produktu, a nie elementy dodawane później.
model_provider = "amazon-bedrock"
model = "openai.gpt-5.5"
export AWS_BEARER_TOKEN_BEDROCK="<your-bedrock-api-key>"
export AWS_REGION="us-east-2"
Stwórz profil Codex LiteLLM
Aby stworzyć profil Codex LiteLLM, należy zdefiniować dane wejściowe, osobę odpowiedzialną za daną czynność oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić daną czynność na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy preferować małe, łatwe do przetestowania jednostki zamiast rozbudowanych skryptów. Gdy jakaś czynność zawiedzie, powinno to wskazywać na konkretną odpowiedzialność, a nie na skomplikowany proces. Napisz krótki przewodnik: jak rotować klucze, jak opróżnić kolejkę z zadań, jak cofnąć ostatnie operacje.
CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME"
cat > "$CODEX_HOME/litellm.config.toml" <<EOF
model = "bedrock-mantle-openai-gpt-5-4"
model_provider = "litellm"
model_catalog_json = "$CODEX_HOME/model-catalogs/litellm.json"
[model_providers.litellm]
name = "LiteLLM"
base_url = "http://localhost:4000"
env_key = "LITELLM_DEMO_CLIENT_KEY"
wire_api = "responses"
EOF
wire_api = "responses"
Dodaj metadane modelu dla aliasów LiteLLM
Aby dodać metadane modelu dla aliasów LiteLLM, należy zdefiniować dane wejściowe, osobę odpowiedzialną za daną czynność oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić tę czynność na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Traktuj tę fazę jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nadaj nazwy plikom, zdefiniuj kryteria sukcesu i odrzucaj ciche, częściowe ukończenie zadania. Napisz krótki przewodnik: jak rotować klucze, jak opróżnić kolejkę z zadań, jak cofnąć ostatnie zaimportowane dane.
CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME/model-catalogs"
jq '{
models: [
(.models[]
| select(.slug == "gpt-5.4")
| .slug = "bedrock-mantle-openai-gpt-5-4"
| .display_name = "LiteLLM Bedrock GPT-5.4"
| .description = "LiteLLM alias for GPT-5.4 through Bedrock Mantle."
| .upgrade = null
| .availability_nux = null
| .max_context_window = .context_window),
(.models[]
| select(.slug == "gpt-5.5")
| .slug = "bedrock-mantle-openai-gpt-5-5"
| .display_name = "LiteLLM Bedrock GPT-5.5"
| .description = "LiteLLM alias for GPT-5.5 through Bedrock Mantle."
| .upgrade = null
| .availability_nux = null)
]
}' "$CODEX_HOME/models_cache.json" > "$CODEX_HOME/model-catalogs/litellm.json"
Opcjonalnie: chcesz wersję GPT-5.4 mini
Dla opcji dodatkowej: jeśli chcesz użyć GPT-5.4 mini, zdefiniuj dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Zapisuj czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy ścieżka przechodzi z wersji demonstracyjnej do środowisk współdzielonych. Napisz krótki przewodnik: jak rotować klucze, jak opróżniać kolej z zadań, jak cofnąć ostatni proces pobierania danych. Dla opcji dodatkowej: jeśli chcesz użyć GPT-5.4 mini, zdefiniuj dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Zdokumentuj zarówno prawidłowy przebieg procesu, jak i ścieżkę naprawczą. Próby ponownych działań, kontrola przez ludzi oraz obsługa wiadomości błędnych stanowią część produktu, a nie elementy dodawane później.
CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME/model-catalogs"
jq '{
models: [
(.models[]
| select(.slug == "gpt-5.4")
| .slug = "bedrock-mantle-openai-gpt-5-4"
| .display_name = "LiteLLM Bedrock GPT-5.4"
| .description = "LiteLLM alias for GPT-5.4 through Bedrock Mantle."
| .upgrade = null
| .availability_nux = null
| .max_context_window = .context_window),
(.models[]
| select(.slug == "gpt-5.5")
| .slug = "bedrock-mantle-openai-gpt-5-5"
| .display_name = "LiteLLM Bedrock GPT-5.5"
| .description = "LiteLLM alias for GPT-5.5 through Bedrock Mantle."
| .upgrade = null
| .availability_nux = null
| .max_context_window = .context_window),
(.models[]
| select(.slug == "gpt-5.4-mini")
| .slug = "openai-gpt-5-4-mini"
| .display_name = "LiteLLM OpenAI GPT-5.4 Mini"
| .description = "LiteLLM alias for GPT-5.4 mini through OpenAI."
| .upgrade = null
| .availability_nux = null
| .max_context_window = .context_window)
]
}' "$CODEX_HOME/models_cache.json" > "$CODEX_HOME/model-catalogs/litellm.json"
Rozpoczęcie pracy z Codex za pomocą LiteLLM
Aby rozpocząć pracę z Codex za pomocą LiteLLM, należy najpierw określić dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić dany krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy preferować małe, łatwe do przetestowania jednostki zamiast rozbudowanych skryptów. Gdy jakiś krok zawiedzie, powinno to wskazywać na konkretną odpowiedzialność, a nie na skomplikowaną strukturę procesów. Należy ustalić konkretne wersje zależności i zapisać informacje o obrazie, który został użyty do uruchomienia demonstracji. Reprodukowalność jest ważniejsza od lokalnej wiedzy zespołu.
codex --profile litellm
codex --profile litellm -m bedrock-mantle-openai-gpt-5-5
Dlaczego to działa
Aby zrozumieć, dlaczego to działa, należy przed zmianą kodu zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia. Operatorzy powinni móc ponownie uruchomić ten krok od znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Traktuj tę fazę jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nazwij poszczególne elementy, zdefiniuj kryteria sukcesu i odrzuć ciche, częściowe ukończenie zadania. Ustal stałe wersje zależności oraz zapisz hash obrazu, który służył do uruchomienia demonstracji. Reprodukowalność jest ważniejsza od lokalnej wiedzy specjalistów.
codex --profile litellm
Odnośniki
Dla referencji należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok od znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy rejestrować czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy proces przechodzi z środowiska demonstracyjnego do współdzielonych środowisk. Należy ustalić konkretne wersje zależności i zapisać hash obrazu, który służył do uruchomienia demonstracji. Reprodukowalność jest ważniejsza od lokalnej wiedzy zespołu. Dla referencji należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić ten krok od znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy udokumentować zarówno prawidłowy przebieg procesu, jak i ścieżki naprawcze. Próby ponownego uruchomienia, mechanizmy kontroli ludzkiej oraz obsługa błędów stanowią część produktu, a nie elementy dodawane później.
Lista kontrolna operacyjna
Dla listy kontrolnej operacyjnej należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie wykonać dany krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu.
Konfigurację należy przechowywać oddzielnie od kodu aplikacji. Pliki środowiskowe, magazyny tajemnic oraz flagi funkcjonalne powinny znajdować się w jednym miejscu, które operatorzy mogą sprawdzić, nie musząc czytać całej struktury.
Gdy budżet na to pozwala, należy dodać test dymny, który symuluje kluczową ścieżkę w procesie CI przy użyciu narzędzi pomocniczych, a nie żywych, płatnych API.
Należy rejestrować czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy ścieżka przechodzi z środowiska demonstracyjnego do wspólnych środowisk.
Należy ustalić stałe wersje zależności oraz zapisać hash obrazu, który uruchomił demonstrację. Reprodukowalność jest lepsza od wiedzy opartej na doświadczeniach indywidualnych.
Rozpatruj ten etap jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nadaj nazwy poszczególnym elementom, zdefiniuj kryteria sukcesu i odrzuć ciche, częściowe ukończenie zadania.
Zanim przejdziesz do kolejnego etapu, zamroź wersje oprogramowania, utwórz dokładny zapis procesu dla kluczowych ścieżek działania oraz potwierdź kroki odwracające zmiany. Środowiska współdzielone wymagają ograniczeń szybkości, weryfikacji uprawnień użytkowników oraz wyraźnego właściciela odpowiedzialnego za rotację haseł. Wolisz nudną niezawodność od pomysłowych, jednorazowych demonstracji.