OpenAI는 에이전트 개발을 가속화할 수 있도록 Responses API, 웹 검색(Web Search), 파일 검색(File Search), 컴퓨터 사용(Computer Use) 및 에이전트 SDK(Agents SDK)를 포함한 새로운 빌딩 블록을 발표했습니다. 이러한 도구들은 복잡한 오케스트레이션 로직을 설계하고 확장하는 데 도움을 주며, 에이전트가 외부 도구와 상호 작용할 수 있도록 하여 더 유용한 역할을 수행할 수 있도록 합니다.
Responses API 소개
Responses API란?
Responses API는 기존의 Chat Completions API와 Assistants 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-4o
및gpt-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 API와 Assistants 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."
}
]
}
]
}
댓글