본문 바로가기
인공지능 (AI,GPT)

OpenAI 에이전트 구축 새로운 가속화 도구 Responses API 사용 스펙

by 날으는물고기 2025. 3. 14.

OpenAI 에이전트 구축 새로운 가속화 도구 Responses API 사용 스펙

728x90

OpenAI는 에이전트 개발을 가속화할 수 있도록 Responses API, 웹 검색(Web Search), 파일 검색(File Search), 컴퓨터 사용(Computer Use)에이전트 SDK(Agents SDK)를 포함한 새로운 빌딩 블록을 발표했습니다. 이러한 도구들은 복잡한 오케스트레이션 로직을 설계하고 확장하는 데 도움을 주며, 에이전트가 외부 도구와 상호 작용할 수 있도록 하여 더 유용한 역할을 수행할 수 있도록 합니다.

Responses API 소개

Responses API란?

Responses API는 기존의 Chat Completions APIAssistants API의 장점을 결합한 새로운 API입니다. 보다 단순한 구조로 설계되었으며, OpenAI가 제공하는 웹 검색, 파일 검색, 컴퓨터 사용 등의 도구를 내장하여 자동으로 도구를 호출하고 결과를 대화 컨텍스트에 추가할 수 있습니다.

Responses API의 특징

  • 텍스트 및 이미지 입력 지원: 텍스트, 이미지, 파일을 입력으로 제공 가능.
  • 상태 저장(Stateful interactions) 지원: 이전 응답을 컨텍스트로 활용하여 자연스러운 대화 유지 가능.
  • 빌트인 도구 지원: 파일 검색, 웹 검색, 컴퓨터 제어 기능을 활용 가능.
  • 외부 시스템 연동 지원: API를 통해 사용자 정의 기능(Function Calling) 및 외부 데이터 사용 가능.

Responses API 활용 방법

API 요청을 통해 모델에 입력을 제공하고, 필요한 기능(웹 검색, 파일 검색 등)을 함께 지정하면, 모델이 자동으로 도구를 실행하고 결과를 포함하여 응답을 반환합니다.

 

API 요청 예시

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "input": "Tell me a three-sentence bedtime story about a unicorn."
  }'

응답 예시

{
  "id": "resp_67ccd2bed1ec8190b14f964abc0542670bb6a6b452d3795b",
  "model": "gpt-4o",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "In a peaceful grove beneath a silver moon, a unicorn named Lumina discovered a hidden pool..."
        }
      ]
    }
  ]
}

새로운 빌트인 도구 소개

Responses API는 다양한 빌트인 도구를 지원하며, 이를 통해 보다 강력한 에이전트 기반 시스템을 구축할 수 있습니다.

1. 웹 검색(Web Search)

  • 정확하고 출처가 명확한 정보를 제공하는 웹 검색 기능.
  • ChatGPT의 검색 기능과 동일한 엔진을 사용.
  • gpt-4ogpt-4o-mini 모델과 함께 Responses API에서 사용 가능.
  • Chat Completions API에서는 gpt-4o-search-preview, gpt-4o-mini-search-preview 모델로 제공됨.

 

활용 예시

  • 실시간 정보 검색
  • 대화형 문맥 기반 검색 응답
  • 출처가 명확한 문서 요약 제공

2. 파일 검색(File Search)

  • 간편한 검색 기능을 제공하는 정보 검색(Retrieval) 도구.
  • 다양한 파일 유형 지원 (텍스트, PDF, CSV 등).
  • 재정렬(Re-ranking), 속성 필터링(Attribute Filtering), 쿼리 재작성(Query Rewriting) 등의 기능 제공.
  • Assistants API에서도 계속 지원됨.

 

활용 예시

  • 기업 내부 데이터 검색
  • 연구 문헌 검색
  • 고객 지원 문서 검색

3. 컴퓨터 사용(Computer Use)

  • OpenAI의 CUA(Computer-Using Agents) 모델을 활용하여 컴퓨터 조작 가능.
  • ChatGPT의 Operator 기능과 동일한 방식으로 작동.
  • 스크린샷을 입력으로 받아 클릭, 스크롤, 타이핑 등의 동작을 수행.
  • 특정 개발자를 대상으로 연구 프리뷰(Research Preview)로 제공됨.

 

활용 예시

  • 원격 PC 제어 자동화
  • 소프트웨어 테스트 자동화
  • 고객 지원 시스템 자동화

Agents SDK (에이전트 SDK)

Agents SDK란?

  • 에이전트 설계 및 확장을 단순화하는 오케스트레이션 프레임워크.
  • 에이전트의 동작을 추적하고 분석할 수 있도록 내장된 가시성(Observability) 도구 포함.
  • OpenAI의 Swarm 시스템에서 영감을 받아 개발된 오픈소스 프레임워크.
  • 다양한 모델과 추적 시스템을 지원.

Agents SDK 주요 기능

  • 로그 기록 및 시각화(Log & Visualization): 실행 과정 분석 및 디버깅 가능.
  • 에이전트 성능 분석(Performance Analysis): 개선이 필요한 부분 식별 가능.
  • 멀티 모델 및 트레이싱 지원: 여러 모델을 조합하여 에이전트 성능 최적화.

활용 예시

  • 고객 서비스 챗봇 개발 및 성능 최적화
  • 자동화된 업무 도우미 구축
  • 복합적인 태스크 수행을 위한 다중 에이전트 시스템 설계

OpenAI 모델 개선 기여 및 무료 토큰 제공

OpenAI는 모델 개선을 위해 개발자가 프롬프트, 응답 및 실행 로그(Traces)를 공유하면 무료 토큰을 제공하는 프로그램을 운영 중입니다.

무료 토큰 제공 기준

  • 2024년 4월 말까지 공유한 트래픽에 대해 적용.
  • 하루 최대 100만 개의 무료 토큰 제공 (gpt-4.5-preview, gpt-4o, o1).
  • 소형 모델(gpt-4o-mini, o1-mini, o3-mini)은 하루 최대 1000만 개의 무료 토큰 제공.

 

대상 확인 방법

  • OpenAI 대시보드에서 해당 계정이 무료 토큰을 받을 수 있는지 확인 가능.

 

OpenAI의 새로운 에이전트 구축 도구는 강력한 AI 기반 에이전트를 보다 쉽게 개발하고 확장할 수 있도록 설계되었습니다. Responses API는 기존의 API보다 더 강력하고 유연한 방식으로 에이전트 개발을 지원하며, 웹 검색, 파일 검색, 컴퓨터 사용 기능을 내장하여 보다 강력한 자동화가 가능합니다. 또한, Agents SDK를 활용하면 대규모 오케스트레이션이 가능하며, OpenAI는 모델 개선에 기여하는 개발자에게 무료 토큰을 제공하는 인센티브도 마련했습니다. 이러한 변화는 보다 지능적이고 활용도가 높은 AI 에이전트 시스템을 구축하는 데 큰 도움이 될 것으로 예상됩니다.

Responses API는 기존 Chat Completions APIAssistants API의 기능을 결합하여 단순화된 인터페이스를 제공합니다.

  • 자동화된 도구 호출: OpenAI에서 제공하는 웹 검색, 파일 검색, 컴퓨터 제어 기능을 포함.
  • 다양한 입력 지원: 텍스트, 이미지, 파일을 입력으로 제공 가능.
  • 상태 저장 가능: 이전 응답을 컨텍스트로 유지하여 자연스러운 대화 지원.
  • 외부 API 연동 가능: 함수 호출(Function Calling) 기능을 지원하여 사용자 맞춤형 기능 개발 가능.

API 엔드포인트

모델 응답 생성 (POST)

POST https://api.openai.com/v1/responses

요청 바디

{
  "model": "gpt-4o",
  "input": "Tell me a three-sentence bedtime story about a unicorn."
}

응답 예시

{
  "id": "resp_67ccd2bed1ec8190b14f964abc0542670bb6a6b452d3795b",
  "model": "gpt-4o",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "In a peaceful grove beneath a silver moon..."
        }
      ]
    }
  ]
}

모델 응답 조회 (GET)

GET https://api.openai.com/v1/responses/{response_id}

응답 예시

{
  "id": "resp_67cb71b351908190a308f3859487620d06981a8637e6bc44",
  "model": "gpt-4o",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Silent circuits hum, Thoughts emerge in data streams..."
        }
      ]
    }
  ]
}

모델 응답 삭제 (DELETE)

DELETE https://api.openai.com/v1/responses/{response_id}

응답 예시

{
  "id": "resp_6786a1bec27481909a17d673315b29f6",
  "deleted": true
}

Responses API 상세 스펙

요청 파라미터

필드명 타입 필수 여부 설명
input string or array 필수 모델에 제공할 텍스트, 이미지 또는 파일 입력
model string 필수 사용할 모델 ID (예: gpt-4o, o1)
include array or null 선택 응답에 포함할 추가 데이터
instructions string or null 선택 시스템 메시지 또는 개발자 메시지 추가
max_output_tokens integer or null 선택 생성되는 응답의 최대 토큰 수 제한
metadata map 선택 추가 정보를 저장하는 Key-Value Map
parallel_tool_calls boolean or null 선택 여러 개의 툴을 병렬 실행할지 여부 (기본값: true)
previous_response_id string or null 선택 이전 응답과 연결하여 대화 유지
reasoning object or null 선택 o-series 모델에서 사용할 논리적 사고 설정
store boolean or null 선택 응답 저장 여부 (기본값: true)
stream boolean or null 선택 응답을 스트리밍할지 여부 (기본값: false)
temperature number or null 선택 생성된 응답의 무작위성 조절 (0~2 사이)
tool_choice string or object 선택 사용할 도구 선택 (auto, 특정 도구)
tools array 선택 모델이 호출할 수 있는 도구 목록
top_p number or null 선택 확률 기반 샘플링 방식 설정
truncation string or null 선택 문맥 창을 초과하는 경우 문맥 조정 방식 설정
user string 선택 엔드 유저 식별자

Python으로 Responses API 사용하기

기본 예제

import openai

response = openai.responses.create(
    model="gpt-4o",
    tools=[{"type": "web_search_preview"}],
    input="What's the weather like in SF?",
)

print(response.output_text)

응답 JSON 예시

{
  "id": "resp_67ccd2bed1ec8190b14f964abc0542670bb6a6b452d3795b",
  "object": "response",
  "created_at": 1741476542,
  "status": "completed",
  "model": "gpt-4o-2024-08-06",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "It's currently sunny and 68°F in San Francisco."
        }
      ]
    }
  ]
}
728x90

댓글