App Server - Codex we własnym produkcie
codex app-server to interfejs Codex przeznaczony dla rozbudowanych klientów, takich jak rozszerzenie Codex do VS Code. Własny produkt może zintegrować go głęboko, korzystając z obsługi uwierzytelniania, historii rozmów, zatwierdzeń i strumieniowanych zdarzeń agenta. Jeśli celem jest automatyzacja zadań lub uruchamianie Codex w CI, wybierz Codex SDK zamiast app-server.
App-server komunikuje się dwukierunkowo za pomocą wiadomości JSON-RPC 2.0, przy czym nagłówek jsonrpc jest pomijany w transmisji. Domyślnym transportem jest stdio, który przesyła JSONL, a transport WebSocket przekazuje po jednej wiadomości JSON-RPC w każdej tekstowej ramce. Aby rozpocząć pracę, uruchom serwer, połącz klienta wybranym transportem, wyślij initialize, a następnie powiadomienie initialized. Następnie rozpocznij wątek i turę, po czym odbieraj powiadomienia z aktywnego strumienia transportu.
thread/start tworzy wątek i automatycznie zapisuje klienta do zdarzeń tur oraz elementów tego wątku. turn/start dodaje dane użytkownika lub wynik narzędzia i rozpoczyna generowanie Codex, które następnie emituje zdarzenia. Do odczytu zapisanej historii bez wznawiania wątku służą między innymi thread/turns/list i thread/items/list. Klient może pozostać przy stabilnym API albo jawnie włączyć metody i pola eksperymentalne przez capabilities.experimentalApi.
Transport WebSocket jest eksperymentalny i nieobsługiwany, a sama komenda app-server również nie jest wspierana w obciążeniach produkcyjnych. Lokalny listener WebSocket nadaje się do połączeń localhost lub przekierowania portu SSH, natomiast połączenie zdalne wymaga uwierzytelniania i TLS. Nie umieszczaj tokenu bearer bezpośrednio w wierszu poleceń: przechowaj go w zmiennej środowiskowej i przekaż nazwę tej zmiennej.
stdio.codex app-server
codex app-server --listen ws://127.0.0.1:4500
codex app-server generate-ts --out ./schemas
Zastosowanie w praktyce
Wbuduj Codex we własny produkt, gdy potrzebujesz obsługi uwierzytelniania, historii rozmów, zatwierdzeń i strumieniowanych zdarzeń agenta. Klient może uruchomić wątek, rozpocząć turę z danymi użytkownika i odbierać strumieniowane zdarzenia generowania. Interfejs produktu może odczytać historię zapisanego wątku bez jego wznawiania, korzystając z list tur i elementów. Jeśli integracja ma automatyzować zadania lub działać w CI, użyj Codex SDK zamiast app-server.