"OpenAI 하네스 구축 (1/3) — Responses API, Tools, Agents SDK를 실무 관점으로 이해하기"
OpenAI를 그냥 "모델 API"로만 이해하면, 실제 에이전트 시스템을 어디서 조립해야 하는지 감이 잘 안 잡힌다. 지금 실무에서는
Responses API,tools,function calling,remote MCP,Agents SDK가 하나의 연속된 표면처럼 보이지만, 역할은 꽤 다르다. 이 차이를 구분해서 봐야 하네스가 얇아질 곳과 두꺼워질 곳이 보인다.
핵심 요약
Responses API는 단순 텍스트 생성 엔드포인트가 아니라 응답, 도구 호출, 대화 상태 연결을 담는 기본 운영 표면이다.tools는 built-in tools, custom function calling, remote MCP를 통해 모델 행동 반경을 넓히지만, 언제 어떤 도구를 켤지는 여전히 하네스 설계 문제다.Agents SDK는 모델 호출 자체를 대체하는 것이 아니라, 그 위에 turn 관리, handoff, guardrails, tracing, session orchestration을 얹는 계층에 가깝다.- 실무에서는 보통
Responses API를 가장 바닥에 두고, 그 위에 도구 표면과 검증 규칙을 얹은 다음, 필요할 때만Agents SDK로 오케스트레이션을 올리는 편이 낫다. - 즉, OpenAI 하네스의 질문은 "어떤 모델을 쓸까"보다 먼저 "어느 계층에 어떤 운영 책임을 둘까"다.
1. OpenAI를 제품이 아니라 운영 층으로 봐야 하는 이유
하네스 관점에서 보면 OpenAI 표면은 하나가 아니다.
- 응답 생성
- 대화 상태 연결
- 도구 호출
- 파일/웹/외부 시스템 접근
- 에이전트 실행 흐름 관리
이것들을 한 덩어리로 보면 구현이 자꾸 비대해진다. 반대로 층으로 나누면 어떤 책임을 API에 맡기고, 어떤 책임을 우리 하네스에 남겨야 하는지가 분명해진다.
실무적으로는 다음 구분이 가장 유용하다.
| 층 | 주 역할 |
|---|---|
Responses API |
입력, 응답, tool call, multi-turn state 연결 |
Tools |
웹 검색, 파일 검색, 함수 호출, remote MCP 같은 행동 확장 |
| 우리 하네스 | 승인, 정책, 실패 복구, 검증, 로그, 비용 통제 |
Agents SDK |
여러 turn과 agent 단위를 묶는 오케스트레이션 |
이 글의 핵심은 OpenAI 기능 소개가 아니라, 이 네 층을 운영 책임 기준으로 분해해 읽는 법이다.
2. Responses API는 기본 생성 API가 아니라 운영 표면이다
OpenAI 공식 문서 기준으로 현재 중심 축은 Responses API다. 여기서는 단순 텍스트 출력뿐 아니라 도구 사용과 후속 turn 연결도 같은 흐름에서 다룬다.
실무에서 특히 중요한 지점은 세 가지다.
- 응답이 단순 문자열이 아니라 여러 output item과 tool call을 포함할 수 있다.
previous_response_id같은 메커니즘으로 multi-turn state를 연결할 수 있다.tools,parallel_tool_calls,max_tool_calls같은 제어 지점이 같은 요청 표면 안에 있다.
이 말은 곧, Responses API를 쓰는 순간 이미 "에이전트의 최소 루프" 일부를 만지고 있다는 뜻이다. 따라서 이 API는 completion 대체제가 아니라 작은 하네스의 런타임 경계로 보는 편이 더 정확하다.
3. built-in tools는 기능 목록이 아니라 행동 확장 표면이다
OpenAI의 tools 문서는 현재 built-in tools, function calling, remote MCP를 같은 도구 표면 안에서 설명한다. 이 구조가 중요한 이유는 모델이 "답만 생성"하는 것이 아니라, 필요하면 외부 행동으로 넘어갈 수 있음을 전제로 하기 때문이다.
대표적으로 운영 의미가 분명한 도구는 다음과 같다.
web_search: 최신성이나 외부 검증이 필요한 작업file_search: 업로드 파일이나 벡터 스토어 기반 검색functioncalling: 우리 코드나 내부 시스템 기능 호출mcp: 외부 도구 서버를 표준 인터페이스로 연결
여기서 중요한 실무 포인트는 "켜면 다 좋아지는가"가 아니다. 오히려 반대다.
- 최신성이 필요 없는 작업에
web_search를 기본 활성화하면 비용과 변동성이 올라간다. - 원문을 길게 뱉는 검색 도구는 다음 턴 컨텍스트를 망친다.
- function calling을 거칠게 정의하면 모델이 도구를 잘못 고를 가능성이 커진다.
- MCP를 너무 많이 붙이면 연결성은 늘지만 선택 혼란도 커진다.
즉, 도구는 capability 목록이 아니라 행동 반경과 실패 반경을 같이 넓히는 표면이다.
4. function calling은 단순 연동이 아니라 경계 설계다
많은 팀이 function calling을 "모델이 함수를 호출할 수 있게 해 주는 기능" 정도로 이해한다. 틀린 말은 아니지만, 하네스 관점에서는 더 중요한 면이 있다.
function calling은 모델이 내부 시스템에 손을 뻗는 경계면이다.
좋은 function schema는 보통 이런 성질을 가진다.
- 함수 이름이 역할을 분명히 드러낸다
- 입력 파라미터가 좁고 예측 가능하다
- 위험도가 다른 행동을 한 함수에 섞지 않는다
- 출력이 다음 판단에 필요한 최소 구조만 준다
예를 들어 "문서 검색"과 "문서 수정"을 같은 함수 집합에 느슨하게 묶으면, 사람에게는 편해 보여도 모델은 경계를 흐리게 배운다. 결국 하네스 품질은 함수 개수보다 schema의 선명도에 더 민감하다.
5. remote MCP는 OpenAI 하네스에서도 연결 표준이지 설계 대행이 아니다
공식 tools 문서가 remote MCP를 같은 표면에 놓는 것은 의미가 크다. OpenAI 하네스에서도 이제 외부 도구 연결은 API 바깥의 별도 해킹이 아니라, 비교적 정규화된 층으로 읽을 수 있기 때문이다.
하지만 이것이 곧 "MCP를 붙이면 하네스가 완성된다"는 뜻은 아니다.
여전히 우리 쪽에서 정해야 할 것이 많다.
- 어떤 서버를 노출할 것인가
- 어떤 서버는 읽기 전용으로 둘 것인가
- 어떤 결과는 요약만 돌릴 것인가
- 어떤 도구는 사람 승인 뒤에만 실행할 것인가
- 어떤 로그와 trace를 남길 것인가
따라서 MCP는 OpenAI 하네스의 확장성 문제를 크게 줄여 주지만, 운영 설계의 책임까지 가져가 주지는 않는다.
6. Agents SDK는 "더 높은 계층의 루프 관리자"로 읽는 편이 정확하다
OpenAI 공식 문서와 SDK 문서를 함께 보면, Agents SDK는 Responses API의 대체제가 아니라 그 위의 오케스트레이션 계층에 가깝다.
문서가 강조하는 키워드는 대체로 비슷하다.
- tools
- handoffs
- sessions
- guardrails
- tracing
- streaming
이 조합이 시사하는 바는 명확하다. Agents SDK는 "모델 호출"보다 에이전트 단위 실행 흐름 관리를 쉽게 만드는 도구다.
실무적으로는 아래처럼 구분하면 덜 헷갈린다.
| 질문 | 더 가까운 층 |
|---|---|
| 이 요청에서 모델이 어떤 도구를 쓸 수 있나 | Responses API + tools |
| 이 대화를 다음 turn과 어떻게 연결하나 | Responses API |
| 이 agent가 다른 specialist agent로 넘길 수 있나 | Agents SDK |
| trace와 run 흐름을 어떻게 남기나 | Agents SDK 또는 우리 관측 계층 |
| 실행 전후 guardrail을 어디에 두나 | 우리 하네스 + SDK |
즉, Agents SDK는 시작점이 아니라 하네스가 어느 정도 복잡해졌을 때 선택하는 상부 구조에 가깝다.
7. 언제 Responses API만으로 충분하고, 언제 SDK를 올려야 하나
이 질문은 팀마다 다르지만, 대략적인 기준은 있다.
Responses API만으로 충분한 경우
- 단일 agent 또는 얇은 loop면 충분하다
- 도구 수가 적고 역할이 명확하다
- 대화 상태를 비교적 단순하게 이어 가면 된다
- handoff보다 request-by-request 처리 비중이 크다
Agents SDK가 유리해지는 경우
- specialist agent 분리가 필요하다
- handoff와 session 관리가 반복된다
- tracing과 guardrail을 일관되게 재사용하고 싶다
- 여러 step을 하나의 실행 단위로 묶어 관리해야 한다
핵심은 이것이다.
SDK는 "더 발전된 OpenAI 사용법"이 아니라, 운영 복잡도가 올라갔을 때 하네스 코드의 무질서를 줄이는 선택지다.
8. OpenAI 하네스에서 우리 쪽이 반드시 소유해야 하는 것
OpenAI가 제공하는 표면이 넓어졌다고 해도, 하네스의 핵심 책임이 사라지는 것은 아니다. 여전히 우리 시스템이 소유해야 하는 것은 분명하다.
- 어떤 작업에서 어떤 도구를 허용할지
- 최신성 확인이 필요한지
- 외부 검색 결과를 어떻게 요약하고 검증할지
- 실패 시 재시도할지 중단할지
- 비용 상한과 도구 호출 상한을 어떻게 둘지
- trace, audit, approval을 어떤 저장소에 남길지
다르게 말하면 OpenAI는 점점 더 좋은 agent runtime parts를 제공하지만, 제품 수준 하네스는 여전히 우리 설계물이다.
9. 실무 체크리스트: OpenAI 하네스를 붙이기 전에 물어볼 것
- 이 작업은 단순 응답 생성인가, 아니면 tool loop가 필요한가?
- 최신성 검증이 필요한가, 아니면 로컬 문맥만으로 충분한가?
- built-in tools와 custom functions를 어떤 기준으로 분리할 것인가?
- function schema가 위험도와 책임 단위로 잘게 나뉘어 있는가?
- remote MCP는 정말 필요한가, 아니면 기존 내부 함수로 충분한가?
- multi-turn state를 API에 얼마나 맡기고, 얼마나 우리 쪽 artifact로 남길 것인가?
- handoff, tracing, guardrails가 반복될 만큼 복잡해졌는가? 그렇다면 SDK를 올릴 시점일 수 있다.
10. OpenAI 하네스는 계층을 이해할수록 단순해진다
OpenAI 표면이 넓어지면서 오히려 입문자는 더 헷갈리기 쉽다. 하지만 하네스 관점으로 다시 보면 구조는 꽤 단순하다.
Responses API는 기본 런타임 경계tools는 행동 확장 경계function calling과MCP는 외부 시스템 접점Agents SDK는 복잡한 루프를 위한 상부 오케스트레이션
이렇게 나누면 "모든 기능을 한 번에 다 써야 한다"는 압박도 줄어든다. 실제로 좋은 하네스는 보통 작은 계층부터 시작한다.
- Responses API로 얇은 루프를 만든다
- 필요한 tools만 좁게 붙인다
- 검증과 승인 규칙은 우리 하네스에 둔다
- 복잡도가 올라갈 때만 Agents SDK를 올린다
그래서 OpenAI 하네스의 핵심 질문은 모델 선택이 아니라 이것이다.
이 시스템의 운영 책임을 어느 층에 배치할 것인가?
다음 B2에서는 같은 질문을 Claude 쪽으로 옮겨 본다. 거기서는 CLAUDE.md, skills, hooks, permissions가 각각 무엇을 맡아야 하는지가 더 직접적으로 드러난다.
참고 자료
- OpenAI Docs,
Responses API
https://platform.openai.com/docs/api-reference/responses/create?api-mode=responses - OpenAI Docs,
Using tools
https://platform.openai.com/docs/guides/tools?api-mode=responses - OpenAI Docs,
Conversation state
https://platform.openai.com/docs/guides/conversation-state?api-mode=responses - OpenAI Docs,
Agents SDK guide
https://platform.openai.com/docs/guides/agents-sdk - OpenAI Agents SDK Docs,
Agents
https://openai.github.io/openai-agents-python/agents/ docs/blog_series_하네스엔지니어링_총괄_design.mdsources/260518_하네스엔지니어링_15장_블로그활용노트.md
이 글은 OpenAI·Claude 구현 시리즈의 1/3 편입니다. 후속 읽기: Claude 하네스 구축, OpenAI vs Claude 하네스 비교.
시리즈 전체 안내: 하네스 엔지니어링 시리즈 안내
댓글
댓글 쓰기