Articleopenai.com·2026년 4월 22일·1

Speeding up agentic workflows with WebSockets in the Responses API

Quick Summary

Responses API의 WebSocket 모드는 Codex식 에이전트 루프에서 반복 API 요청과 상태 재처리 비용을 줄여, 더 빨라진 추론 속도를 실제 사용자 체감 속도로 전달하도록 만든 개선이다.

Speeding up agentic workflows with WebSockets in the Responses API 관련 대표 이미지

🖼️ 인포그래픽

Speeding up agentic workflows with WebSockets in the Responses API 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Speeding up agentic workflows with WebSockets in the Responses API 내용을 설명하는 본문 이미지

💡 한 줄 요약

Responses API의 WebSocket 모드는 Codex식 에이전트 루프에서 반복 API 요청과 상태 재처리 비용을 줄여, 더 빨라진 추론 속도를 실제 사용자 체감 속도로 전달하도록 만든 개선이다.

📌 핵심 요약

  • Codex가 버그를 수정할 때는 코드 탐색, 파일 읽기, 수정, 테스트 실행을 반복하며, 그 과정에서 모델의 다음 행동 결정과 도구 실행 결과 전달을 위해 수십 번의 Responses API 왕복이 발생한다.
  • 과거에는 GPU에서의 LLM 추론이 에이전트 루프의 가장 느린 단계였기 때문에 API 서비스 오버헤드가 상대적으로 덜 두드러졌지만, 추론 속도가 빨라지면서 요청 검증·처리·상태 재구성 비용이 병목으로 부상했다.
  • OpenAI는 단일 요청의 지연시간을 줄이는 최적화로 TTFT를 약 45% 개선했지만, GPT‑5.3‑Codex‑Spark처럼 1,000 TPS 이상을 목표로 하는 빠른 코딩 모델에는 기존 HTTP 기반 반복 호출 구조가 여전히 충분하지 않았다.
  • 핵심 해결책은 WebSocket을 통해 Responses API에 지속 연결을 만들고, 이전 응답 상태를 연결 범위의 메모리 캐시에 보관해 follow-up 요청에서 전체 대화 이력을 매번 다시 처리하지 않도록 하는 것이었다.
  • 출시 후 Codex는 Responses API 트래픽의 다수를 WebSocket 모드로 빠르게 전환했고, GPT‑5.3‑Codex‑Spark에서 1,000 TPS 목표와 최대 4,000 TPS 버스트를 확인하며 에이전트 워크플로의 end-to-end 속도를 약 40% 개선했다.

🧩 주요 포인트

  1. Codex가 버그를 수정할 때는 코드 탐색, 파일 읽기, 수정, 테스트 실행을 반복하며, 그 과정에서 모델의 다음 행동 결정과 도구 실행 결과 전달을 위해 수십 번의 Responses API 왕복이 발생한다.
  2. 과거에는 GPU에서의 LLM 추론이 에이전트 루프의 가장 느린 단계였기 때문에 API 서비스 오버헤드가 상대적으로 덜 두드러졌지만, 추론 속도가 빨라지면서 요청 검증·처리·상태 재구성 비용이 병목으로 부상했다.
  3. OpenAI는 단일 요청의 지연시간을 줄이는 최적화로 TTFT를 약 45% 개선했지만, GPT‑5.3‑Codex‑Spark처럼 1,000 TPS 이상을 목표로 하는 빠른 코딩 모델에는 기존 HTTP 기반 반복 호출 구조가 여전히 충분하지 않았다.
  4. 핵심 해결책은 WebSocket을 통해 Responses API에 지속 연결을 만들고, 이전 응답 상태를 연결 범위의 메모리 캐시에 보관해 follow-up 요청에서 전체 대화 이력을 매번 다시 처리하지 않도록 하는 것이었다.
  5. 출시 후 Codex는 Responses API 트래픽의 다수를 WebSocket 모드로 빠르게 전환했고, GPT‑5.3‑Codex‑Spark에서 1,000 TPS 목표와 최대 4,000 TPS 버스트를 확인하며 에이전트 워크플로의 end-to-end 속도를 약 40% 개선했다.

🧠 상세 정리

1. Codex 에이전트 루프에서 발생하는 반복 왕복 비용

글은 Codex가 버그를 고치는 과정을 예로 들며 에이전트형 워크플로의 구조를 설명한다. Codex는 관련 파일을 찾고, 파일을 읽어 문맥을 만들고, 코드를 수정한 뒤, 테스트를 실행해 수정이 제대로 되었는지 확인한다. 겉으로는 하나의 작업처럼 보이지만 내부적으로는 모델의 다음 행동을 정하고, 사용자의 컴퓨터에서 도구를 실행하고, 그 결과를 다시 API에 보내는 흐름이 계속 반복된다. 이런 Responses API 요청 왕복이 수십 번 누적되면 복잡한 작업에서 사용자가 몇 분씩 기다리는 상황이 생긴다. 따라서 문제의 출발점은 모델 자체만이 아니라 모델을 둘러싼 에이전트 실행 루프 전체의 지연시간이었다.

2. 추론이 빨라지자 API 서비스 오버헤드가 병목으로 부상

Codex 에이전트 루프의 지연시간은 크게 API 서비스에서 요청을 검증하고 처리하는 시간, GPU에서 모델이 토큰을 생성하는 추론 시간, 그리고 클라이언트가 도구를 실행하고 모델 문맥을 구성하는 시간으로 나뉜다. 과거에는 LLM 추론이 가장 느린 단계였기 때문에 API 서비스 처리 비용은 전체 시간 안에 비교적 가려질 수 있었다. 그러나 추론 속도가 빨라질수록 같은 API 오버헤드도 더 크게 체감된다. 특히 이전 플래그십 모델인 GPT‑5와 GPT‑5.2가 Responses API에서 약 65 TPS 수준으로 동작하던 것과 달리, GPT‑5.3‑Codex‑Spark는 1,000 TPS 이상을 목표로 했다. 이 변화는 사용자가 GPU의 속도 향상을 실제로 느끼려면 API와 주변 시스템도 함께 빨라져야 한다는 점을 드러냈다.

3. 단일 요청 최적화만으로는 충분하지 않았던 이유

OpenAI는 2025년 11월 무렵 Responses API 성능 스프린트를 시작해 단일 요청의 critical-path latency를 줄이는 여러 최적화를 진행했다. 그 결과 API가 얼마나 빠르게 반응하는지를 보여주는 time to first token, 즉 TTFT에서 약 45%에 가까운 개선을 얻었다. 하지만 GPT‑5.3‑Codex‑Spark처럼 훨씬 빠른 모델을 기준으로 보면 이 정도 개선만으로는 부족했다. 사용자는 모델을 제공하는 GPU의 빠른 처리 능력을 기다리는 것이 아니라, API를 실행하는 CPU 쪽 처리와 반복 요청 구조를 기다리게 되는 상황이 남아 있었다. 더 근본적인 문제는 각 Codex 요청을 독립적인 요청처럼 다루면서, follow-up 요청마다 대화 상태와 재사용 가능한 문맥을 반복 처리했다는 데 있었다.

4. 지속 연결과 상태 캐싱이라는 설계 전환

문제 해결을 위해 OpenAI는 전송 프로토콜 자체를 다시 검토했다. 매번 HTTP 연결을 만들고 전체 대화 이력을 보내는 대신, 지속 연결을 유지하면서 새로 검증하고 처리해야 할 정보만 보내고 재사용 가능한 상태는 연결이 살아 있는 동안 메모리에 캐시하는 방식이 핵심 아이디어였다. 후보로는 WebSocket과 gRPC 양방향 스트리밍 등이 검토되었지만, 최종적으로 WebSocket이 선택되었다. WebSocket은 단순한 메시지 전송 프로토콜이어서 사용자가 Responses API의 입력과 출력 형태를 크게 바꾸지 않아도 된다는 장점이 있었다. 기존 아키텍처에도 비교적 적은 중단으로 맞출 수 있었고, 개발자가 익숙한 API 사용 방식을 유지하기에 적합했다.

5. 초기 WebSocket 프로토타입이 보여준 가능성과 한계

첫 WebSocket 프로토타입은 Responses API 지연시간에 대해 가능하다고 생각했던 범위를 크게 바꿨다. Codex 팀의 한 엔지니어는 API 스택 전반에 대한 경험을 바탕으로 Codex 에이전트를 밤새 실행해 프로토타입을 만들었다. 이 설계에서는 에이전트 rollout 전체를 하나의 장기 실행 Response처럼 모델링했다. 모델이 도구 호출을 샘플링하면 Responses API가 asyncio 기능을 이용해 샘플링 루프에서 비동기적으로 멈추고, 클라이언트에 response.done 이벤트를 보낸다. 클라이언트가 도구를 실행한 뒤 response.append 이벤트로 결과를 보내면 샘플링 루프가 다시 풀리고 모델이 계속 진행한다. 이 방식은 반복 API 작업을 크게 없앴지만, 개발자에게 낯설고 복잡한 API 형태를 요구한다는 단점이 있었다.

6. 익숙한 API 형태를 유지한 출시 버전과 실제 성과

출시 버전에서는 프로토타입의 최소 오버헤드에 가까운 장점을 유지하되, 개발자가 이미 이해하고 쓰던 API 형태로 돌아갔다. 사용자는 같은 body로 response.create를 계속 사용하고, previous_response_id를 통해 이전 응답 상태에서 대화 문맥을 이어간다. WebSocket 연결에서는 서버가 연결 범위의 인메모리 캐시에 이전 response state를 보관하며, follow-up response.create에 previous_response_id가 포함되면 전체 대화를 처음부터 다시 재구성하지 않고 캐시에서 상태를 가져온다. 이 접근은 개발자 통합 방식을 크게 바꾸지 않으면서도 에이전트 rollout 전반의 중복 처리를 줄였다. 출시 후 Codex는 Responses API 트래픽의 다수를 WebSocket 모드로 빠르게 전환했고, GPT‑5.3‑Codex‑Spark에서 목표치인 1,000 TPS와 최대 4,000 TPS 버스트를 확인했다.

🧾 핵심 주장 / 시사점

  • 모델 추론 속도가 빨라질수록 병목은 모델 자체에서 API 서비스, 상태 관리, 클라이언트 도구 실행 같은 주변 시스템으로 이동한다.
  • 에이전트 워크플로에서는 개별 요청 최적화보다 반복되는 상태 재처리와 네트워크 왕복을 줄이는 구조적 개선이 큰 효과를 낼 수 있다.
  • 성능 개선을 제품에 적용하려면 내부적으로는 아키텍처를 바꾸더라도, 외부 개발자에게는 기존 API 형태를 최대한 유지하는 설계가 중요하다.

✅ 액션 아이템

  • OpenAI와 Responses API가 바꾸는 업무·제품 흐름을 40%, 45% 같은 원문 근거로 분해해 실제 적용 범위를 점검한다.
  • Responses API와 40%의 연결 지점을 기준으로 사용자 경험, 운영 비용, 보안·책임 경계를 나눠 검토한다.
  • 후속 발표나 운영 데이터가 나오면 OpenAI의 Responses API 실행 성과를 원문에서 제시한 지표와 다시 비교한다.

❓ 열린 질문

  • OpenAI의 Responses API 변화가 실제 사용자 워크플로에 자리 잡으려면 40%, 45% 중 어떤 지표가 먼저 개선되어야 할까?
  • Responses API와 40% 조합은 다른 조직이나 제품 환경에서도 같은 효과를 낼 수 있을까?
  • OpenAI가 Responses API의 신뢰성을 증명하려면 어떤 후속 데이터나 운영 사례를 공개해야 할까?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.