GPT-5 / Responses API 기준
Assistants API 종료: 2026.08.26
OpenAI Responses API, 빠르다는 말이 맞는 조건이 따로 있습니다
OpenAI 공식 문서는 Responses API가 Chat Completions보다 캐시 효율이 40~80% 높다고 밝힙니다. 그런데 실제 개발자들이 측정한 응답 속도는 오히려 반대입니다. Store 설정 하나가 평균 응답 시간을 1.354초에서 4.268초로 3배 넘게 늘렸습니다. 어떤 조건에서 쓰느냐에 따라 결과가 완전히 달라지는 API입니다.
Responses API가 등장한 진짜 이유
OpenAI는 2025년 3월, /v1/responses 엔드포인트를 공개했습니다. 표면적 이유는 “더 강력한 에이전트 개발 환경”이지만, 공식 개발자 블로그를 직접 읽으면 다른 맥락이 보입니다. Chat Completions 엔드포인트는 단순 채팅 인터페이스 시절에 설계됐고, 추론 모델과 멀티모달 입력이 일상화된 지금 구조적으로 버겁습니다. (출처: OpenAI Developers Blog, 2025.09.22)
Assistants API는 이 공백을 메우려 했지만, 비동기 Runs 구조가 복잡해 현장 채택률이 낮았습니다. 결국 OpenAI 스스로 “Chat Completions만큼 접근하기 쉬우면서 Assistants만큼 강력한” 것이 필요하다고 판단했고, 그 결과물이 Responses API입니다.
핵심 차이는 한 가지입니다. Chat Completions가 “메시지를 주고받는 채팅 루프”라면, Responses API는 “추론하고 도구를 쓰고 결과를 돌려주는 에이전트 루프”입니다. 추론 상태가 호출 간에 유지되고, 도구 실행이 서버 쪽에서 처리됩니다.
Chat Completions와 뭐가 다른지, 코드로 직접 비교
가장 눈에 띄는 차이는 응답 구조입니다. Chat Completions는 choices[0].message.content처럼 중첩된 배열에서 값을 꺼내야 합니다. Responses API는 response.output_text로 바로 꺼냅니다. 작은 차이처럼 보이지만, 멀티턴 + 툴콜 환경에서는 코드 복잡도가 현격히 줄어듭니다.
Chat Completions (Python)
completion = client.chat.completions.create(
model="gpt-5",
messages=[{"role": "user", "content": "질문"}]
)
print(completion.choices[0].message.content) # 중첩 구조
Responses API (Python)
response = client.responses.create(
model="gpt-5",
input="질문"
)
print(response.output_text) # 바로 꺼냄
구조적 변화: Messages에서 Items으로
Chat Completions는 모든 것을 Message 하나에 욱여넣습니다. 툴 호출이 먼저인지, 메시지가 먼저인지 순서가 섞입니다. Responses API는 모든 행동을 “Items”라는 다형적 객체로 분리합니다. message, function_call, function_call_output이 각각 독립된 타입으로 명확히 구분되어 감사 로그나 디버깅이 훨씬 수월합니다. (출처: OpenAI platform.openai.com/docs/guides/responses-vs-chat-completions)
Structured Outputs도 달라집니다. Chat Completions의 response_format 파라미터가 Responses API에서는 text.format으로 이동했습니다. 함수 정의 방식도 내부 태깅 방식으로 바뀌고, strict 모드가 기본값으로 켜집니다. 마이그레이션 시 가장 많이 놓치는 부분입니다.
빠르다는 말이 맞는 조건과 아닌 조건
💡 공식 문서의 수치와 실제 측정값을 함께 놓고 보니 눈에 띄는 차이가 있었습니다.
OpenAI 공식 문서는 캐시 효율이 Chat Completions 대비 40~80% 개선된다고 밝힙니다. 그런데 이 수치는 “비용(Cost)” 기준입니다. 응답 속도(Latency) 기준으로는 완전히 다른 그림이 나옵니다.
OpenAI 커뮤니티에서 개발자가 직접 20회 반복 측정한 결과가 있습니다. Store=True(상태 저장 켜짐) 조건에서 Responses API 평균 응답 시간은 4.268초였고, Chat Completions는 1.354초였습니다. 3.15배 차이입니다. (출처: OpenAI Community Forum, 2025.09.06)
| 조건 | Responses API | Chat Completions | 배율 |
|---|---|---|---|
| Store=True (평균) | 4.268초 | 1.354초 | 3.15배 느림 |
| Store=True (최대) | 21.711초 | 2.385초 | 9.1배 느림 |
| Store=False (평균) | 2.901초 | 1.257초 | 2.31배 느림 |
※ 측정 환경: Azure OpenAI, gpt-5, minimal reasoning, low verbosity, 20회 반복 / 출처: OpenAI Community Forum (2025.09.06)
Store를 끄면 Responses API도 빨라지지만, 여전히 Chat Completions보다 2.31배 느립니다. OpenAI 엔지니어링 팀은 “데이터베이스 최적화 작업 중”이라고 커뮤니티에 직접 답변했습니다. 2026년 3월 현재까지 공식 성능 개선 공지는 없습니다.
그렇다면 어디에서 쓰는 게 맞나
웹 검색, 코드 인터프리터, MCP 같은 내장 도구를 쓰는 에이전트 워크플로우라면 Responses API가 실질적으로 유리합니다. 도구 실행이 서버 쪽에서 일어나서 개발자 서버와의 왕복 횟수가 줄어들기 때문입니다. 반면 단순 텍스트 생성이나 짧은 멀티턴 채팅이라면 지금 당장은 Chat Completions가 지연 시간 면에서 낫습니다.
비용 구조: 캐시 절감이 실제로 가능한 상황
Responses API의 캐시 이점은 조건이 맞아야 작동합니다. 공식 내부 테스트에서 40~80% 캐시 비용 절감이 가능하다고 했는데, 이는 긴 시스템 프롬프트나 반복적인 컨텍스트가 있는 환경에서의 수치입니다. (출처: platform.openai.com/docs/guides/responses-vs-chat-completions) 짧은 단발성 요청에서는 캐시 히트 자체가 일어나지 않아 절감 효과가 없습니다.
💡 공식 발표문에서 자주 언급되지 않는 부분을 가격표와 함께 놓고 봤습니다.
내장 도구를 쓰면 토큰 비용 위에 별도 호출 비용이 추가됩니다. 모델 추론 비용만 계산하면 싸 보여도, 도구를 쓸 때마다 청구서가 달라집니다.
| 내장 도구 | 호출 단가 | 비고 |
|---|---|---|
| 웹 검색 (gpt-4o, gpt-4.1) | $10.00 / 1,000회 | 검색 콘텐츠 토큰 별도 청구 |
| 웹 검색 (gpt-5 등 추론 모델) | $25.00 / 1,000회 | 검색 콘텐츠 토큰 무료 |
| 파일 검색 (File Search) | $2.50 / 1,000회 | Responses API 전용, 스토리지 별도 |
| 코드 인터프리터 (컨테이너) | 1GB $0.03 | 2026.03.31부터 20분 세션당 과금 |
출처: platform.openai.com/docs/pricing#built-in-tools (2026.03.24 기준)
특히 코드 인터프리터는 2026년 3월 31일부터 과금 방식이 바뀝니다. 지금까지는 컨테이너 용량 기준이었는데, 3월 31일 이후엔 “20분 세션당”으로 전환됩니다. 코드 실행이 자주 필요한 에이전트라면 비용 시뮬레이션을 다시 해야 합니다.
Assistants API 종료, 지금 당장 확인해야 할 것
2025년 8월 26일, OpenAI는 공식 커뮤니티를 통해 Assistants API 베타의 종료를 발표했습니다. 종료일은 2026년 8월 26일입니다. (출처: OpenAI Community Forum, 2025.08.26) 지금 이 글을 읽는 시점에서 약 5개월이 남았습니다.
⚠️ 주의: 새 기능 추가는 이미 중단됐습니다
OpenAI 공식 입장은 “2026년 8월 26일까지는 기존 Assistants API를 사용할 수 있지만, 새로운 기능이나 모델 지원은 더 이상 추가하지 않는다”입니다. GPT-5.4 같은 최신 모델이 Assistants API에 붙을 가능성은 없습니다.
마이그레이션에서 가장 복잡한 부분
개념 자체가 바뀝니다. Assistants → Prompts, Threads → Conversations, Runs → Responses, Run Steps → Items. 이름만 바뀐 게 아니라 동작 방식도 달라집니다. Runs는 비동기 폴링 방식이었지만, Responses는 입력을 주면 출력 Items를 돌려받는 단순한 구조입니다.
OpenAI는 기존 Thread를 Conversation으로 자동 변환하는 도구를 제공하지 않겠다고 밝혔습니다. 대신 새 사용자 대화는 Conversations으로 받고, 기존 Thread는 수동으로 백필하는 전략을 권장합니다. 프로덕션에서 Threads가 수만 개 쌓인 팀이라면 마이그레이션 공수를 과소평가하면 안 됩니다.
Prompts는 대시보드에서만 생성할 수 있습니다. 기존에 코드로 Assistant 객체를 생성하던 방식은 없어집니다. CI/CD 파이프라인에 `openai.beta.assistants.create()` 호출이 들어 있다면 지금 확인이 필요합니다.
ZDR 환경에서 상태 저장을 포기하지 않는 방법
💡 보안 정책 때문에 상태 저장을 못 쓴다고 생각했는데, 공식 문서를 더 파고보니 다른 경로가 있었습니다.
ZDR(Zero Data Retention) 조건에서는 store: false가 강제됩니다. 그런데 추론 토큰을 완전히 포기할 필요는 없습니다.
Encrypted Reasoning Items 기능을 사용하면 됩니다. store: false로 설정하면서 include: ["reasoning.encrypted_content"]를 함께 넘기면, OpenAI 서버는 추론 토큰을 디스크에 저장하지 않고 암호화된 형태로 응답에 포함시킵니다. 이 암호화된 토큰을 다음 요청에 그대로 넘기면 추론 연속성을 유지할 수 있습니다. (출처: platform.openai.com/docs/guides/responses-vs-chat-completions, 2026.03.24 기준)
작동 방식을 구체적으로 보면, OpenAI 서버는 encrypted_content를 받을 때 메모리 내에서만 복호화하고 새 추론 토큰이 생기면 즉시 다시 암호화해서 돌려줍니다. 중간 상태는 디스크에 기록되지 않습니다. 이 방식은 의료·금융처럼 데이터 보존 정책이 엄격한 환경에서 유일하게 쓸 수 있는 선택지입니다.
단, 이 방법을 쓰면 응답마다 암호화된 토큰 덩어리가 추가되므로 요청 페이로드가 커집니다. 네트워크 비용과 직렬화 오버헤드가 생긴다는 점은 감안해야 합니다. 공식적으로 추가 과금은 없지만, 이유는 아직 공개되지 않았습니다.
자주 나오는 질문 5가지
마치며 — 지금 어떻게 움직여야 하나
솔직히 말하면, Responses API는 아직 “이게 더 낫다”고 단정 짓기 어렵습니다. 비용 캐시 효율은 분명히 낫고, 에이전트 구조도 더 깔끔합니다. 그런데 응답 속도가 공식 권장 설정에서 Chat Completions보다 3배 느린 건 현실입니다. OpenAI가 직접 인정하고 개선 중이라고 했으니, 시간이 해결해 줄 문제일 가능성이 높습니다.
당장 행동이 필요한 건 Assistants API 사용팀입니다. 2026년 8월 26일까지 5개월 남았고, OpenAI는 자동 변환 도구를 주지 않겠다고 했습니다. Threads 수가 많을수록 백필 작업이 길어집니다. 지금 당장 어떤 Assistant 객체를 쓰는지, Thread가 몇 개나 쌓였는지 파악하는 것부터 시작하면 됩니다.
신규 프로젝트라면 Responses API로 시작하는 게 맞습니다. 지연 시간이 아쉬워도, 6개월 뒤에 다시 마이그레이션하는 공수보다 지금 올바른 방향을 잡는 게 낫습니다. 내장 도구 없이 단순 텍스트 생성만 할 거라면 Chat Completions가 당분간 여전히 현실적인 선택입니다.
본 포스팅 참고 자료
- OpenAI 공식 – Responses vs Chat Completions (platform.openai.com)
- OpenAI Developers Blog – Why we built the Responses API (2025.09.22)
- OpenAI 공식 – 응답 API의 새로운 도구 및 기능 (2025.05.21)
- OpenAI 공식 가격표 – 내장 도구 요금 (platform.openai.com)
- OpenAI Community – Assistants API 종료 공지 (2025.08.26)
- OpenAI Community – Stateful Responses API 속도 측정 (2025.08.26)
본 포스팅 작성 이후 서비스 정책·UI·기능이 변경될 수 있습니다. OpenAI API 가격·정책은 공식 사이트(platform.openai.com)에서 최신 정보를 직접 확인하시기 바랍니다. 본 포스팅의 수치는 2026년 3월 24일 기준 공식 문서 및 공개 측정 데이터를 기반으로 합니다.

댓글 남기기