OpenAI, ์ƒˆ๋กœ์šด ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐœํ‘œ

Posted by Euisuk's Dev Log on March 12, 2025

OpenAI, ์ƒˆ๋กœ์šด ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐœํ‘œ

์›๋ณธ ๊ฒŒ์‹œ๊ธ€: https://velog.io/@euisuk-chung/OpenAI-์ƒˆ๋กœ์šด-์—์ด์ „ํŠธ-๊ฐœ๋ฐœ-๋„๊ตฌ-๋ฐœํ‘œ

OpenAI๋Š” ๊ฐœ๋ฐœ์ž์™€ ๊ธฐ์—…์ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์—์ด์ „ํŠธ(Agent)๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด API์™€ ๋„๊ตฌ๋ฅผ 2025๋…„ 3์›” 11์ผ(ํ˜„์ง€ ์ผ์ž)์— ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ์—…๋ฐ์ดํŠธ์˜ ํ•ต์‹ฌ์€ Responses API, ๋‚ด์žฅ ๋„๊ตฌ(Web Search, File Search, Computer Use), Agents SDK์ด๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” AI ์—์ด์ „ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ ๊ฒŒ์‹œ๊ธ€์€ OpenAI ๊ณต์‹ ๋ธ”๋กœ๊ทธ ๋ฐ ๊ณต์‹ YouTube ๋‚ด์šฉ์„ ์ฝ๊ณ , ๋“ฃ๊ณ ๋‚˜์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. (์™„๋ฒฝํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)


  1. Responses API: Chat Completions + Tool Use ๊ฒฐํ•ฉ

Responses API๋Š” ๊ธฐ์กด์˜ Chat Completions API์™€ Assistants API์˜ ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•œ ์ƒˆ๋กœ์šด API๋กœ, ํ•˜๋‚˜์˜ API ํ˜ธ์ถœ๋งŒ์œผ๋กœ ์—ฌ๋Ÿฌ ๋„๊ตฌ์™€ ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(Chat Completions API)

์ด์ „์—๋Š” OpenAI์˜ Chat Completions API์™€ Assistants API๊ฐ€ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉด์„œ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ API๋ฅผ ๊ฒฐํ•ฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€ํ™”๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ํŒŒ์ผ ๊ฒ€์ƒ‰์ด๋‚˜ ์›น ๊ฒ€์ƒ‰ ๊ฐ™์€ ์™ธ๋ถ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ API ํ˜ธ์ถœ์ด๋‚˜ ์„ค์ •์ด ํ•„์š”ํ–ˆ์ฃ .
    • ์ด๋กœ ์ธํ•ด ์ƒํƒœ ๊ด€๋ฆฌ(๋Œ€ํ™”์˜ ํ๋ฆ„์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ)์™€ ๋„๊ตฌ ๊ฒฐํ•ฉ์ด ๋ณต์žกํ•˜๊ณ  ๋ฒˆ๊ฑฐ๋กœ์› ์Šต๋‹ˆ๋‹ค.

(Responses API)

ํ•˜์ง€๋งŒ, Responses API๊ฐ€ ๋„์ž…๋˜๋ฉด์„œ ์ด๋Ÿฐ ๋ถ€๋ถ„์ด ๊ฐ„์†Œํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Responses API๋Š” ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ์ƒ์„ฑ(Chat Completions API) ๊ธฐ๋Šฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์›น ๊ฒ€์ƒ‰, ํŒŒ์ผ ๊ฒ€์ƒ‰, ์ฝ”๋“œ ์‹คํ–‰, ์‹œ์Šคํ…œ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ™์€ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ด์ œ AI๊ฐ€ ๋Œ€ํ™”์˜ ๋งฅ๋ฝ์„ ์ž๋™์œผ๋กœ ๊ธฐ์–ตํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ํ•œ ๋ฒˆ์˜ API ํ˜ธ์ถœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์–ด์š”.
    • ์ฆ‰, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋Œ€ํ™” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†๊ฒŒ๋˜์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์šฉ์–ด์ •๋ฆฌ

๋ณธ ๊ฒŒ์‹œ๊ธ€์—๋Š” OpenAI์˜ Chat Completions API, Assistants API, Responses API 3๊ฐ€์ง€ API์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ณธ๊ฒฉ์ ์ธ ์ด์•ผ๊ธฐ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์—, ๊ฐ๊ฐ์˜ API์— ๋Œ€ํ•œ ๊ฐœ๋…/์—ญํ• /๋ชฉํ‘œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๊ฐ€๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
API ๊ฐœ๋… ๋ฐ ๋ชฉํ‘œ ํ˜„์žฌ ์ƒํƒœ ํ–ฅํ›„ ๊ณ„ํš
Chat Completions API ๋‹จ์ˆœํ•œ ๋Œ€ํ™”ํ˜• ํ…์ŠคํŠธ ์ƒ์„ฑ ๋ฐ ์‘๋‹ต ์ƒ์„ฑ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ธฐ๋ณธ API ์ง€์†์ ์ธ ์ง€์› ์ค‘์ด๋ฉฐ, Responses API์˜ ๊ธฐ๋Šฅ๋„ ํฌํ•จ ๊ฐ€๋Šฅ Responses API๋กœ ๊ธฐ๋Šฅ ํ†ตํ•ฉ ์ค‘, ๋„๊ตฌ ์‚ฌ์šฉ ์˜ต์…˜ ์ œ๊ณต
Assistants API ์ƒํƒœ ์œ ์ง€ํ˜• AI ์—์ด์ „ํŠธ ๊ตฌ์ถ•์„ ์œ„ํ•œ API๋กœ, ๋„๊ตฌ ์‚ฌ์šฉ ๋ฐ ๋Œ€ํ™” ๋งฅ๋ฝ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ 2026๋…„ ์ƒ๋ฐ˜๊ธฐ๊นŒ์ง€ ์ง€์› ์˜ˆ์ •, ์ดํ›„ Responses API๋กœ ๋Œ€์ฒด๋จ Responses API๋กœ ๊ธฐ๋Šฅ ํ†ตํ•ฉ ๋ฐ ํ์ง€ ์˜ˆ์ •
Responses API Chat Completions์™€ Assistants API์˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•œ ์ฐจ์„ธ๋Œ€ AI ์—์ด์ „ํŠธ ๊ตฌ์ถ• ํ‘œ์ค€ API ํ˜„์žฌ ์ œ๊ณต ์ค‘, AI ์—์ด์ „ํŠธ ๊ตฌ์ถ•์— ์ ํ•ฉํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ ์ œ๊ณต ํ–ฅํ›„ OpenAI์˜ ํ‘œ์ค€ API๋กœ ์ž๋ฆฌ ์žก์„ ์˜ˆ์ •, Assistants API ๋Œ€์ฒด ๋ฐ ์ง€์†์ ์ธ ๊ฐœ์„ 

ํ˜„์žฌ OpenAI์˜ Chat Completions API, Assistants API, Responses API๋Š” ๊ฐ๊ฐ์˜ ์—ญํ• ๊ณผ ๋ชฉํ‘œ๊ฐ€ ๋‹ค๋ฅด๋ฉฐ, OpenAI๋Š” ์ด๋“ค์„ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • (ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ผ ๊ธฐ์ค€) OpenAI๋Š” Responses API๋ฅผ ์ค‘์‹ฌ์œผ๋กœ API ์ „๋žต์„ ์žฌ์ •๋น„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ธฐ์กด์˜ Assistants API์™€ Chat Completions API์˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•˜์—ฌ ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Chat Completions API ๐Ÿ—ฃ

โœ” ๊ฐœ๋… ๋ฐ ๋ชฉํ‘œ

  • Chat Completions API๋Š” OpenAI์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋Œ€ํ™”ํ˜• API๋กœ, GPT ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜์—ฌ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ด API๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํ”„๋กฌํ”„ํŠธ์— ๋”ฐ๋ผ ๋ชจ๋ธ์ด ์ž์—ฐ์Šค๋Ÿฌ์šด ๋Œ€ํ™”๋‚˜ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

โœ” ํ˜„์žฌ ์ƒํƒœ

  • ์ง€์†์ ์ธ ์ง€์›:
    • Chat Completions API๋Š” ์—ฌ์ „ํžˆ OpenAI์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” API๋กœ, ํŠนํžˆ ๋‹จ์ˆœํ•œ ๋Œ€ํ™”ํ˜• ํ…์ŠคํŠธ ์ƒ์„ฑ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋„๊ตฌ ์‚ฌ์šฉ ์ œํ•œ:
    • ๋„๊ตฌ ์‚ฌ์šฉ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ์ƒ์„ฑ์— ์ดˆ์ ์ด ๋งž์ถฐ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ” ํ–ฅํ›„ ๋ฐœ์ „ ๊ณ„ํš

  • OpenAI๋Š” Chat Completions API์— ์ƒˆ๋กœ์šด ๋ชจ๋ธ๊ณผ ๊ธฐ๋Šฅ์„ ์ง€์†์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •์ด์ง€๋งŒ, ๋„๊ตฌ ์‚ฌ์šฉ์ด๋‚˜ ์ƒํƒœ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋„๊ตฌ์™€ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” Responses API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Assistants API ๐Ÿค

2026๋…„ ์ƒ๋ฐ˜๊ธฐ ํ์ง€ ์˜ˆ์ •

โœ” ๊ฐœ๋… ๋ฐ ๋ชฉํ‘œ

  • Assistants API๋Š” ์ƒํƒœ ์œ ์ง€ํ˜• AI ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ตœ์ ํ™”๋œ API๋กœ, ๋Œ€ํ™”์˜ ๋ฌธ๋งฅ์„ ์ง€์†์ ์œผ๋กœ ์œ ์ง€ํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ธฐ์กด Chat Completions API์™€ ๋‹ฌ๋ฆฌ, Threads(์Šค๋ ˆ๋“œ)์™€ Messages(๋ฉ”์‹œ์ง€) ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์ง€์†์ ์ธ ๋Œ€ํ™”๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • AI ์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํ•œ ๋Œ€ํ™”ํ˜• ์ฑ—๋ด‡์„ ๋„˜์–ด ๋ณต์žกํ•œ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์ง€๋Šฅ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://platform.openai.com/docs/assistants/overview

โœ” ์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ํ™œ์šฉ ๊ฐ€๋Šฅ ๋„๊ตฌ

  • Code Interpreter(์ฝ”๋“œ ์‹คํ–‰๊ธฐ):

    • Python ์ฝ”๋“œ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๋ถ„์„, ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑ, ์ˆ˜์น˜ ์—ฐ์‚ฐ ๋“ฑ์˜ ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Retrieval(ํŒŒ์ผ ๊ฒ€์ƒ‰):

    • ์—…๋กœ๋“œ๋œ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ฌธ์„œ ๋‚ด์šฉ์„ ํ™œ์šฉํ•˜์—ฌ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Function Calling(ํ•จ์ˆ˜ ํ˜ธ์ถœ):

    • ์™ธ๋ถ€ API ํ˜ธ์ถœ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์ด๋‚˜ ํŠน์ • ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

โœ” ํ˜„์žฌ ์ƒํƒœ

  • ํ์ง€ ์˜ˆ์ •:
    • Assistants API๋Š” 2026๋…„ ์ƒ๋ฐ˜๊ธฐ๊นŒ์ง€ Responses API๋กœ ๋Œ€์ฒด๋  ์˜ˆ์ •์ด๋ฉฐ, ํ˜„์žฌ๋Š” ๊ธฐ๋Šฅ ์ง€์›์ด ์œ ์ง€๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž ์ „ํ™˜ ์ค€๋น„:
    • ํ์ง€ ๋ฐœํ‘œ ์ „๊นŒ์ง€ ์ƒˆ๋กœ์šด ๋ชจ๋ธ๊ณผ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์€ Responses API๋กœ ์ „ํ™˜์„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœ” ํ–ฅํ›„ ๋ฐœ์ „ ๊ณ„ํš

  • Responses API๋กœ ํ†ตํ•ฉ:
    • Assistants API์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์€ Responses API๋กœ ์ด์ „๋˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์€ Responses API๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • OpenAI๋Š” ์ด ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๋ณด์กด ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ€์ด๋“œ๋ฅผ ์ถ”ํ›„ ์ œ๊ณตํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Responses API ๐Ÿ’ฌ

๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ํ‘œ์ค€ API

โœ” ๊ฐœ๋… ๋ฐ ๋ชฉํ‘œ

  • Responses API๋Š” Chat Completions API์™€ Assistants API์˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•œ ์ฐจ์„ธ๋Œ€ API๋กœ, AI ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ๋Œ€ํ™” ์ƒ์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์›น ๊ฒ€์ƒ‰, ํŒŒ์ผ ๊ฒ€์ƒ‰, ์ปดํ“จํ„ฐ ์‚ฌ์šฉ ๋“ฑ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ AI๊ฐ€ ์‹ค์ œ ์„ธ์ƒ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

โœ” ํ˜„์žฌ ์ƒํƒœ

  • ํ˜„์žฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ:
    • Responses API๋Š” ์ด๋ฏธ ์ œ๊ณต๋˜๊ณ  ์žˆ์œผ๋ฉฐ, AI ์—์ด์ „ํŠธ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

โœ” ํ–ฅํ›„ ๋ฐœ์ „ ๊ณ„ํš

  • ํ‘œ์ค€ API๋กœ ์ž๋ฆฌ ์žก์Œ:
    • OpenAI๋Š” Responses API๋ฅผ AI ์—์ด์ „ํŠธ ๊ตฌ์ถ•์˜ ํ‘œ์ค€ API๋กœ ์‚ผ๊ณ  ์žˆ์œผ๋ฉฐ, ํ–ฅํ›„์—๋„ ์ƒˆ๋กœ์šด ๋ชจ๋ธ๊ณผ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • Assistants API ๋Œ€์ฒด:
    • Assistants API๋Š” Responses API๋กœ ์™„์ „ํžˆ ๋Œ€์ฒด๋  ์˜ˆ์ •์ด๋ฉฐ, 2026๋…„ ์ƒ๋ฐ˜๊ธฐ๊นŒ์ง€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ด๋ฒˆ ๋ฐœํ‘œ์—์„œ ์–ธ๊ธ‰๋œ Responses API์˜ ์ฃผ์š” ํŠน์ง• ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•

Responses API๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • Chat Completions API์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • `Web Search, File Search, Computer Use ๋“ฑ์˜ ๋‚ด์žฅ ๋„๊ตฌ ์ง€์›
  • API์˜ ์ถœ๋ ฅ ๋ฐฉ์‹์ด ์ง๊ด€์ ์ด๋ฉฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์›
  • ํŠธ๋ ˆ์ด์‹ฑ ๋ฐ ํ‰๊ฐ€ ๊ธฐ๋Šฅ ์ œ๊ณต์œผ๋กœ ์—์ด์ „ํŠธ ์„ฑ๋Šฅ ๋ถ„์„ ๊ฐ€๋Šฅ
  • ๋‹ค์ค‘ ํˆด ํ˜ธ์ถœ์„ ์ง€์›ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ•œ ๋ฒˆ์— ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์ถ”์  ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜์—ฌ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ์šฉ์ด

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ

  1. ๋„๊ตฌ ์ž๋™ ์„ ํƒ

    • Chat Completions API์—์„œ๋Š” ์›น ๊ฒ€์ƒ‰์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ชจ๋ธ์ด ํ•ญ์ƒ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰
    • Responses API์—์„œ๋Š” ๋ชจ๋ธ์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ์ž๋™์œผ๋กœ ์›น ๊ฒ€์ƒ‰ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœ
    • ๋ถˆํ•„์š”ํ•œ API ์š”์ฒญ์ด ์ค„์–ด๋“ค์–ด ๋น„์šฉ ์ ˆ๊ฐ & ์„ฑ๋Šฅ ํ–ฅ์ƒ
  2. ๋‹ค์ค‘ ๋„๊ตฌ ํ†ตํ•ฉ

    • Chat Completions API์—์„œ๋Š” ์›น ๊ฒ€์ƒ‰ ์™ธ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ(ํŒŒ์ผ ๊ฒ€์ƒ‰, ์ฝ”๋“œ ์‹คํ–‰)์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†์Œ
    • Responses API์—์„œ๋Š” ์›น ๊ฒ€์ƒ‰ + ํŒŒ์ผ ๊ฒ€์ƒ‰ + ์ฝ”๋“œ ์‹คํ–‰์„ ํ•˜๋‚˜์˜ ์š”์ฒญ์—์„œ ์กฐํ•ฉ ๊ฐ€๋Šฅ
1
2
3
4
5
6
7
8
9
response = client.responses.create(
    model="gpt-4o",
    tools=[
        {"type": "web_search_preview"},
        {"type": "file_search"},
        {"type": "code_interpreter"}  # (์ถ”ํ›„ ์ง€์› ์˜ˆ์ •)
    ],
    input="๋‚ด๊ฐ€ ์˜ฌ๋ฆฐ ํŒŒ์ผ์—์„œ ์ตœ๊ทผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ๊ด€๋ จ ๋‰ด์Šค๋ฅผ ์ฐพ์•„์ค˜."
)

โœ… ์ด๋Ÿฐ ๋ฐฉ์‹์ด ๊ฐ€๋Šฅ:

โ†’ file_search๋กœ ์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ ์ฐพ๊ณ 

โ†’ web_search_preview๋กœ ์ตœ์‹  ๋‰ด์Šค ๊ฒ€์ƒ‰ ํ›„

โ†’ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ code_interpreter๋กœ ๋ถ„์„

  1. ์ƒํƒœ ์œ ์ง€ ๊ธฐ๋Šฅ (Stateful API)

    • Chat Completions API๋Š” ์ƒํƒœ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•จ
    • Responses API์—์„œ๋Š” previous_response_id๋ฅผ ํ†ตํ•ด ์ด์ „ ๋Œ€ํ™”์˜ ์ƒํƒœ๋ฅผ ์ž๋™์œผ๋กœ ์œ ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•จ
1
2
3
4
5
response = client.responses.create(
    model="gpt-4o",
    previous_response_id="msg_1234567890",  # ์ด์ „ ์‘๋‹ต๊ณผ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ ์œ ์ง€
    input="์ด์ „ ๋‰ด์Šค ๊ธฐ์‚ฌ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ฐพ์•„์ค˜."
)

โœ… ์žฅ์ : ๋Œ€ํ™”์˜ ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Œ

  • ์ด์ „์— Chat Completions API์—์„œ ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ๋™์‹œ์— ํ™œ์šฉํ•˜๋Š” ๋ฐ ์ œํ•œ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ์ œํ•œ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด LangChain๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

(์ฐธ๊ณ ) LangChain์€ ์–ธ์–ด ๋ชจ๋ธ๊ณผ ๋‹ค์–‘ํ•œ ๋„๊ตฌ(์˜ˆ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์›น ๊ฒ€์ƒ‰, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋“ฑ)๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

๐Ÿฆ LangChain์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋„๊ตฌ ๋ฐ ๋ฆฌ์†Œ์Šค ํ†ตํ•ฉ: ์–ธ์–ด ๋ชจ๋ธ์ด ์™ธ๋ถ€ API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋“ฑ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒด์ธ ๊ตฌ์„ฑ: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์–ธ์–ด ๋ชจ๋ธ ํ˜ธ์ถœ์ด๋‚˜ ๋„๊ตฌ ์‚ฌ์šฉ์„ ์ฒด์ธ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ: ๋Œ€ํ™”๋‚˜ ์ž‘์—…์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜์—ฌ ์ปจํ…์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

โ— ๊ทธ๋Ÿฌ๋‚˜ Responses API์˜ ๋„์ž…์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด API ์ž์ฒด์—์„œ ์ง€์›๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์ œ๋Š” LangChain๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด๋„ Responses API๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ , ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–๏ธ Responses API์˜ ์ฃผ์š” ํŠน์ง•:

  • ๋‚ด์žฅ ๋„๊ตฌ ์ง€์›: ์›น ๊ฒ€์ƒ‰, ํŒŒ์ผ ๊ฒ€์ƒ‰, ์ฝ”๋“œ ์‹คํ–‰ ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ API ์š”์ฒญ ์‹œ์— ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒํƒœ ๊ด€๋ฆฌ: ์ด์ „ ์‘๋‹ต์˜ ID๋ฅผ ํ†ตํ•ด ๋Œ€ํ™”๋‚˜ ์ž‘์—…์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์กฐํ™”๋œ ์ถœ๋ ฅ: ๋ชจ๋ธ์˜ ์‘๋‹ต์„ ๊ตฌ์กฐํ™”๋œ ํ˜•์‹์œผ๋กœ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๊ฒฐ๋ก ) ์ด์ „์—๋Š” LangChain๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์–ด ๋ชจ๋ธ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ํ†ตํ•ฉํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š” Responses API๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

OpenAI API๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ €๋“ค์€ ๋žญ์ฒด์ธ ๋”์ด์ƒ ์•ˆ ์จ๋„ ๋ ๋“ฏ..!?

๊ธฐ์กด API์™€ ๋น„๊ต

๊ฐ๊ฐ Responses API์™€ Chat Completions API์—์„œ ์›น ๊ฒ€์ƒ‰์„ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์˜ˆ์‹œ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ๋น„๊ต

โœ… ๊ธฐ์กด ๋ฐฉ์‹ (Chat Completions API)

GPT model for web search in Chat Completions์ธ gpt-4o-search-preview์ด ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ์— ๋ฆด๋ฆฌ์ฆˆ๋˜๋ฉด์„œ Chat Completions API์—์„œ๋„ ๋นŒํŠธ์ธ์œผ๋กœ ์›น์„œ์น˜๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://platform.openai.com/docs/models/gpt-4o-search-preview

์ถœ์ฒ˜: https://openai.com/index/new-tools-for-building-agents/

์ฝ”๋“œ๋„ ๋น„๊ต์  ๊ฐ„๋‹จํ•ด์กŒ๋Š”๋ฐ์š”! (model=โ€gpt-4o-search-previewโ€๋งŒ ํ˜ธ์ถœํ•˜๋ฉด ๋!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
    model="gpt-4o-search-preview",  # ์›น ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ ํŠน์ • ๋ชจ๋ธ ํ•„์š”
    web_search_options={},  # ์›น ๊ฒ€์ƒ‰ ํ™œ์„ฑํ™” (์„ค์ • ๊ฐ’์ด ์—†์–ด๋„ ์ž๋™ ์ ์šฉ)
    messages=[
        {
        "role": "user", 
        "content": "What was a positive news story from today?"
        }
    ],
)

print(completion.choices[0].message.content)

์›๋ž˜ ๋” ์ด์ „์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž์˜ ์งˆ์˜๋ฅผ ๋ฐ›์•„ DuckDuckGo(์™ธ๋ถ€ API)๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ ์š”์•ฝ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์š”์•ฝ์„ OpenAI ๋ชจ๋ธ์˜ ํ”„๋กฌํ”„ํŠธ์— ํฌํ•จ์‹œ์ผœ, ๋ชจ๋ธ์ด ์ตœ์‹  ์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•œ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import requests
import openai

# DuckDuckGo Instant Answer API ํ˜ธ์ถœ ํ•จ์ˆ˜
def duckduckgo_search(query):
    url = 'https://api.duckduckgo.com/'
    params = {
        'q': query,
        'format': 'json',
        'no_html': 1,
        'skip_disambig': 1
    }
    response = requests.get(url, params=params)
    return response.json()

# OpenAI Chat Completions API ํ˜ธ์ถœ ํ•จ์ˆ˜
def get_openai_response(prompt):
    openai.api_key = 'YOUR_OPENAI_API_KEY'
    response = openai.ChatCompletion.create(
        model='gpt-3.5-turbo',
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response.choices[0].message['content']

# ์‚ฌ์šฉ์ž ์งˆ์˜
user_query = "์˜ค๋Š˜์˜ ์ฃผ์š” ๋‰ด์Šค๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?"

# DuckDuckGo๋ฅผ ํ†ตํ•œ ์›น ๊ฒ€์ƒ‰
search_results = duckduckgo_search(user_query)

# ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์š”์•ฝ ์ƒ์„ฑ
if 'Abstract' in search_results and search_results['Abstract']:
    search_summary = search_results['Abstract']
else:
    search_summary = "์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค๋งŒ, ๊ด€๋ จ๋œ ์ตœ์‹  ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

# OpenAI ๋ชจ๋ธ์— ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํฌํ•จํ•˜์—ฌ ์‘๋‹ต ์ƒ์„ฑ
prompt = f"์‚ฌ์šฉ์ž ์งˆ๋ฌธ: {user_query}\n\n๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์š”์•ฝ: {search_summary}\n\n์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ต๋ณ€ํ•ด ์ฃผ์„ธ์š”."
response = get_openai_response(prompt)

print(response)

ํ•จ์ˆ˜ ์„ค๋ช…

  • duckduckgo_search ํ•จ์ˆ˜:
    • DuckDuckGo Instant Answer API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์งˆ์˜์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • get_openai_response ํ•จ์ˆ˜:
    • OpenAI์˜ Chat Completions API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ชจ๋ธ์˜ ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

โ„น๏ธ ๊ธฐ์กด ๋ฐฉ์‹ (Chat Completions API)์˜ ์›น ๊ฒ€์ƒ‰ ํŠน์ง•

  • ๊ธฐ์กด(์™ธ๋ถ€ API ์‚ฌ์šฉ) ๋ฐฉ์‹์€ DuckDuckGo, Google Search ๋“ฑ์˜ ์™ธ๋ถ€ API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•ด์•ผ ํ–ˆ์Œ

    • ํ˜ธ์ถœํ•˜์—ฌ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ, ์ด๋ฅผ ์š”์•ฝํ•˜๋Š”๋ฐ LLM ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•จ
  • ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ์›น ๊ฒ€์ƒ‰ ํ™œ์„ฑํ™” ๊ฐ€๋Šฅํ•ด์ง.

    • ๋‹จ, ํŠน์ • ๋ชจ๋ธ(gpt-4o-search-preview, gpt-4o-mini-search-preview)๋งŒ ์ง€์›
    • ๋‹จ, ํ•ญ์ƒ ์›น ๊ฒ€์ƒ‰ ์‹คํ–‰๋จ (๊ฒ€์ƒ‰์ด ํ•„์š”ํ•˜์ง€ ์•Š์•„๋„ ์ˆ˜ํ–‰๋จ)
    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์ž๋™์œผ๋กœ ์‘๋‹ต(message.content)์— ํฌํ•จ๋˜๋ฉฐ, ์ธ๋ผ์ธ citation ์ œ๊ณต
    • ๊ฒ€์ƒ‰ ์ปจํ…์ŠคํŠธ ํฌ๊ธฐ(search_context_size) ์กฐ์ ˆ ๊ฐ€๋Šฅ (low, medium, high)

โœ… ์ƒˆ๋กœ์šด ๋ฐฉ์‹ (Responses API)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-4o",  # ์›น ๊ฒ€์ƒ‰ ์ „์šฉ ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ๋ชจ๋ธ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    tools=[
    		{
            "type": "web_search_preview"
            }
          ],  # ์›น ๊ฒ€์ƒ‰ ๋„๊ตฌ ํ™œ์„ฑํ™”
    input="์˜ค๋Š˜์˜ ๊ธ์ •์ ์ธ ๋‰ด์Šค๋Š”?"
)

print(response.output_text)

โ„น๏ธ ์ƒˆ๋กœ์šด ๋ฐฉ์‹ (Responses API)์˜ ์›น ๊ฒ€์ƒ‰ ํŠน์ง•

  • ๋ชจ๋“  ๋ชจ๋ธ์—์„œ ์›น ๊ฒ€์ƒ‰ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (gpt-4o ํฌํ•จ)
  • tools=[{"type": "web_search_preview"}]:
    • ์›น ๊ฒ€์ƒ‰์„ ๋„๊ตฌ(tool)๋กœ ๋“ฑ๋กํ•˜์—ฌ ํ•„์š”ํ•  ๋•Œ๋งŒ ์‹คํ–‰๋จ
  • ๋ชจ๋ธ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•  ๋•Œ๋งŒ ์›น ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•จ (๋ถˆํ•„์š”ํ•œ ๊ฒ€์ƒ‰ ๋ฐฉ์ง€)
  • ์›น ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” output_text์— ํฌํ•จ๋˜๋ฉฐ, citation ์ •๋ณด๋„ ์ œ๊ณตํ•จ
  • ์ถ”ํ›„ ๋‹ค์–‘ํ•œ ๋„๊ตฌ(File Search, Code Execution ๋“ฑ)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅ ๊ฐ€๋Šฅํ•จ

๐Ÿ“š Responses API์™€ Chat Completions API๋Š” OpenAI ๋ชจ๋ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๊ฐ๊ฐ์˜ API๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.


  1. ๋‚ด์žฅ ๋„๊ตฌ(Built-in Tools)

๊ทธ๋ฆผ. Responses API์™€ Chat Completions API ๋‚ด์žฅ ๋„๊ตฌ(Built-in Tools)

Function calling์€ ๋‹จ์ˆœํžˆ ๋‚ด์žฅ ๋„๊ตฌ๋กœ ๋ถ„๋ฅ˜๋˜๊ธฐ๋ณด๋‹ค๋Š”, ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ์™ธ๋ถ€ ๋„๊ตฌ(custom tool)๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋Š” ๋ชจ๋ธ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋‚ด์žฅ ๋„๊ตฌ(์˜ˆ: ์›น ๊ฒ€์ƒ‰, ํŒŒ์ผ ๊ฒ€์ƒ‰, ์ปดํ“จํ„ฐ ์‚ฌ์šฉ ๋“ฑ)์™€๋Š” ๋‹ค๋ฅด๊ฒŒ, ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ธ ์‘๋‹ต์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ์ด๋Š” ๋‚ด์žฅ ๋„๊ตฌ(Built-in Tools)๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. โŒ

๐Ÿ’ฆ ์•„์ง ์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด์š”โ€ฆ ๊ทธ๋ž˜์„œ ๋‚ด์žฅ ๋„๊ตฌ(Built-in Tools)์˜ ์ •์˜๊ฐ€ ๋ญ๋ผ๊ณ ์š”?

  • ๋‚ด์žฅ ๋„๊ตฌ(Built-in Tools)๋Š” OpenAI API์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด ์›น ๊ฒ€์ƒ‰, ํŒŒ์ผ ๊ฒ€์ƒ‰, ์ปดํ“จํ„ฐ ์‚ฌ์šฉ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    • ์ด ๋„๊ตฌ๋“ค์€ API ํ˜ธ์ถœ ์‹œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ˜๋ฉด, Function calling์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ •์˜ํ•œ ์™ธ๋ถ€ ํ•จ์ˆ˜๋‚˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

    • ์ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ชจ๋ธ์€ ๊ธฐ๋ณธ ๋‚ด์žฅ ๋„๊ตฌ๋งŒ์œผ๋กœ๋Š” ์ œ๊ณตํ•˜๊ธฐ ์–ด๋ ค์šด ๋งž์ถคํ˜• ๋ฐ์ดํ„ฐ๋‚˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Responses API๋Š” ์„ธ ๊ฐ€์ง€ ๊ฐ•๋ ฅํ•œ ๋‚ด์žฅ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ค์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑ
  • ๊ฒ€์ƒ‰๋œ ์ •๋ณด์˜ ์ถœ์ฒ˜(๋‰ด์Šค, ๋ธ”๋กœ๊ทธ ๋“ฑ)๋ฅผ ๋ช…ํ™•ํžˆ ์ œ๊ณต
  • ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ๋ณด๋‹ค ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์‘๋‹ต ์ œ๊ณต

For more: https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses

1
2
3
4
5
6
7
8
9
10
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-4o",
    tools=[{"type": "web_search_preview"}],
    input="What was a positive news story from today?"
)

print(response.output_text)
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰
  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ๋ฐ ๋ฒกํ„ฐ ์Šคํ† ์–ด๋ฅผ ํ†ตํ•œ ๊ณ ๊ธ‰ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ๋ฌธ์„œ ๋‚ด์šฉ ์š”์•ฝ ๋ฐ ํ…์ŠคํŠธ ๋ถ„์„ ๊ธฐ๋Šฅ ํฌํ•จ

For more: https://platform.openai.com/docs/guides/tools-file-search

1
2
3
4
5
6
7
8
9
10
11
12
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-4o-mini",
    input="What is deep research by OpenAI?",
    tools=[{
        "type": "file_search",
        "vector_store_ids": ["<vector_store_id>"]
    }]
)
print(response)

(3) Computer Use

  • ์šด์˜์ฒด์ œ(OS) ๋ฐ ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ž๋™ํ™” ์ž‘์—… ์ˆ˜ํ–‰
  • OpenAI์˜ Operator ์—์ด์ „ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘
  • GUI ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜์—ฌ API๊ฐ€ ์—†๋Š” ์‹œ์Šคํ…œ์—์„œ๋„ ํ™œ์šฉ ๊ฐ€๋Šฅ

For more: https://platform.openai.com/docs/guides/tools-computer-use

๊ทธ๋ฆผ ๋‹จ๊ณ„ ๊ฐ„๋žต ์„ค๋ช…

  1. ๋ชจ๋ธ์— ์š”์ฒญ ๋ณด๋‚ด๊ธฐ (Send a request to the model)
  2. ๋ชจ๋ธ์˜ ์‘๋‹ต ํ™•์ธ (Receive a response from the model)
  3. ์š”์ฒญ๋œ ์•ก์…˜ ์‹คํ–‰ (Execute the requested action)
  4. ์—…๋ฐ์ดํŠธ๋œ ์ƒํƒœ ์บก์ฒ˜ (Capture the updated state)
  5. ๋ฐ˜๋ณต (Repeat)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="computer-use-preview",
    tools=[{
        "type": "computer_use_preview",
        "display_width": 1024,
        "display_height": 768,
        "environment": "browser" # other possible values: "mac", "windows", "ubuntu"
    }],
    input=[
        {
            "role": "user",
            "content": "Check the latest OpenAI news on bing.com."
        }
        # Optional: include a screenshot of the initial state of the environment
        # {
        #     type: "input_image",
        #     image_url: f"data:image/png;base64,{screenshot_base64}"
        # }
    ],
    reasoning={
        "generate_summary": "concise",
    },
    truncation="auto"
)

print(response.output)

์ฐธ๊ณ  : Computer Use ์„ฑ๋Šฅํ‘œ


  1. Agents SDK: ๋ฉ€ํ‹ฐ-์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

๊ธฐ์กด Swarm SDK๋ฅผ ๋ฐœ์ „์‹œํ‚จ Agents SDK๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด SDK๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์œจํ•˜๊ณ , ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿค” (์ฐธ๊ณ ) Swarm์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

  • ๋งํฌ: https://github.com/openai/swarm
  • Swarm์€ OpenAI๊ฐ€ ๊ฐœ๋ฐœํ•œ ๋‹ค์ค‘ ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์„ ํƒ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๊ต์œก์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—์ด์ „ํŠธ๋ฅผ ์กฐ์œจํ•˜๊ณ  ํ˜‘์—…์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋…์„ ์‹คํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Swarm์„ ํ™œ์šฉํ•˜๋ฉด ์—์ด์ „ํŠธ ๊ฐ„์˜ ์—ญํ•  ๋ถ„๋‹ด๊ณผ ์ •๋ณด ๊ณต์œ ๋ฅผ ์†์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ AI ์‹œ์Šคํ…œ์„ ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ, Swarm์€ ์ฃผ๋กœ ํ•™์Šต ๋ฐ ์‹คํ—˜์„ ์œ„ํ•œ ๋„๊ตฌ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ๋ณธ๊ฒฉ์ ์ธ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ๋ณด๋‹ค๋Š” ์—ฐ๊ตฌ ๋ฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๊ฐœ๋ณ„ ์—์ด์ „ํŠธ ์ •์˜ ๋ฐ ๋„๊ตฌ(Tools) ์—ฐ๊ฒฐ: ๊ฐ ์—์ด์ „ํŠธ๋Š” ๊ณ ์œ ํ•œ ์—ญํ• ์„ ๊ฐ€์ง€๋ฉฐ, ํŠน์ • ๋„๊ตฌ(์˜ˆ: Web Search, File Search, Custom Functions)์™€ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ์Œ.
  • Tracing & Observability: ์—์ด์ „ํŠธ ์‹คํ–‰ ํ๋ฆ„์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ๋””๋ฒ„๊น… ๊ฐ€๋Šฅ. ์‹คํ–‰ ๋‚ด์—ญ์„ ํ™•์ธํ•˜์—ฌ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ.
  • Handoff ๊ธฐ๋Šฅ: ๋Œ€ํ™” ์ค‘ ํŠน์ • ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด, ๊ด€๋ จ๋œ ์—์ด์ „ํŠธ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ญํ• ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ.
  • Guardrails: ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ๊ฒ€์ฆ์„ ํ†ตํ•œ ๋ณด์•ˆ ๊ฐ•ํ™”. ์œ ํ•ดํ•œ ์ฝ˜ํ…์ธ ๋‚˜ ๋ถ€์ ์ ˆํ•œ ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ์ฐจ๋‹จ ๊ฐ€๋Šฅ.
  • ๋ฉ€ํ‹ฐ ๋ชจ๋ธ ์ง€์›: GPT-4, GPT-3.5๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค์–‘ํ•œ AI ๋ชจ๋ธ์„ ํ˜ผํ•ฉํ•˜์—ฌ ์—์ด์ „ํŠธ ๊ตฌ์ถ• ๊ฐ€๋Šฅ.

์ฝ”๋“œ ์˜ˆ์‹œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from agents import Agent, Runner, WebSearchTool, function_tool

@function_tool
def submit_refund_request(item_id: str, reason: str):
    return "success"

support_agent = Agent(
    name="Support & Returns",
    instructions="๊ณ ๊ฐ ์ง€์› ๋ฐ ํ™˜๋ถˆ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.",
    tools=[submit_refund_request],
)

shopping_agent = Agent(
    name="Shopping Assistant",
    instructions="ํŒจ์…˜ ์Šคํƒ€์ผ์„ ์ถ”์ฒœํ•˜๋Š” ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.",
    tools=[WebSearchTool()],
)

triage_agent = Agent(
    name="Triage Agent",
    instructions="์‚ฌ์šฉ์ž๋ฅผ ์ ์ ˆํ•œ ์—์ด์ „ํŠธ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.",
    handoffs=[shopping_agent, support_agent],
)

output = Runner.run_sync(
    starting_agent=triage_agent,
    input="๋‚ด ์˜ท ์Šคํƒ€์ผ์— ๋งž๋Š” ์‹ ๋ฐœ์„ ์ถ”์ฒœํ•ด์ค˜",
)

  1. Responses API ๋ฐ๋ชจ

4.1 ๊ธฐ๋ณธ์ ์ธ API ํ˜ธ์ถœ (๋ฐœํ‘œ ์‹œ์—ฐ)

  • ๊ธฐ์กด Chat Completions API์™€ ์œ ์‚ฌํ•œ ํ˜•ํƒœ
  • ์š”์ฒญ(Request) โ†’ ์‘๋‹ต(Response) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ

4.2 ์Šคํƒ€์ผ ์ถ”์ฒœ ์—์ด์ „ํŠธ(Personal Stylist Assistant) ๊ตฌํ˜„

  1. ์ดˆ๊ธฐ ์„ค์ •

    • ์—์ด์ „ํŠธ ์—ญํ•  ์ •์˜: โ€œYou are a personal stylistโ€
    • ์ตœ์‹  ํŠธ๋ Œ๋“œ ๋ถ„์„ ๊ฐ€๋Šฅ: โ€œWhat are some of the latest trends?โ€

  1. File Search Tool์„ ํ™œ์šฉํ•œ ๊ฐœ์ธ ์Šคํƒ€์ผ ๋ถ„์„

    • ํŠน์ • ์‚ฌ์šฉ์ž์˜ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ๋ฒกํ„ฐ ์ €์žฅ์†Œ(Vector Store)์—์„œ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅ

  • ์˜ˆ์ œ: โ€œCan you briefly summarize what Ilan likes to wear?โ€
    • ์‘๋‹ต: โ€œIlan has a distinct ecosystem style characterized by Miami chic.โ€

  1. Web Search Tool์„ ํ™œ์šฉํ•œ ์ตœ์‹  ์ •๋ณด ๋ฐ˜์˜

    • ์‚ฌ์šฉ์ž์˜ ์—ฌํ–‰์ง€๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น ์ง€์—ญ์—์„œ ๊ตฌ๋งค ๊ฐ€๋Šฅํ•œ ์ œํ’ˆ ๊ฒ€์ƒ‰
    • ์˜ˆ์ œ: โ€œFind me a jacket that I would like nearby.โ€
    • ์ฒ˜๋ฆฌ ๊ณผ์ •:

      1. File Search Tool โ†’ ์‚ฌ์šฉ์ž ์Šคํƒ€์ผ ๋ถ„์„
      2. Web Search Tool โ†’ ํ•ด๋‹น ์ง€์—ญ์—์„œ ๊ด€๋ จ ์ œํ’ˆ ํŒ๋งค ๋งค์žฅ ๊ฒ€์ƒ‰
      3. ๊ฒฐ๊ณผ: โ€œKevin์ด ์ข‹์•„ํ•  ๋งŒํ•œ Patagonia ๋งค์žฅ์„ Tokyo์—์„œ ๊ฒ€์ƒ‰โ€

4.3 Computer Use Tool ๋ฐ๋ชจ (์‡ผํ•‘ ์ž๋™ํ™” ์‹œ์—ฐ)

  • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์žฌํ‚ท์„ ์ง์ ‘ ์ฐพ์•„ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
  • Computer Use Tool ์‚ฌ์šฉ ์ ˆ์ฐจ:

    1. Patagonia ์‡ผํ•‘ ์›น์‚ฌ์ดํŠธ์˜ ์Šคํฌ๋ฆฐ์ƒท์„ ์บก์ฒ˜ํ•˜์—ฌ ๋ชจ๋ธ์— ์ „๋‹ฌ
    2. ๋ชจ๋ธ์ด ํ™”๋ฉด์„ ๋ถ„์„ํ•˜๊ณ  ์ ์ ˆํ•œ ํด๋ฆญ, ์ž…๋ ฅ ๋“ฑ์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰

    3. ์—ฐ์†์ ์ธ ์Šคํฌ๋ฆฐ์ƒท ๋ถ„์„์„ ํ†ตํ•ด ์ „์ฒด ๊ตฌ๋งค ํ”„๋กœ์„ธ์Šค ์ž๋™ํ™”

4.4 Swarm(Agents API) ํ™œ์šฉํ•œ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

  • Swarm ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์‹คํ–‰: Swarm์€ OpenAI์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ค‘ ์—์ด์ „ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—์ด์ „ํŠธ๊ฐ€ ์—ญํ• ์„ ๋‚˜๋ˆ„์–ด ํ˜‘๋ ฅํ•˜๋„๋ก ์„ค๊ณ„๋จ.

์•„๋ž˜ ๊ธฐ๋Šฅ๋“ค์„ ๊ฒธ๋น„ํ•œ Stylist Agent๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • Web Search Tool์„ ํ™œ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰
  • File Search Tool์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ๋„๋ฅผ ๋ฐ˜์˜

Swarm(Agents API)๋Š” ์œ„ Agent๊ฐ€ ๋‹ค๋ฅธ Agent์—๊ฒŒ ์—ญํ• ์„ ์ „๋‹ฌํ•˜๊ธฐ ์‰ฝ๊ฒŒํ•ฉ๋‹ˆ๋‹ค.

  • ์—์ด์ „ํŠธ ๊ฐ„ ์—ญํ•  ๋ถ„๋‹ด ๋ฐ ์ž๋™ํ™”:
    1. Triage Agent: ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ถ„์„ํ•˜์—ฌ ์ ์ ˆํ•œ ์—์ด์ „ํŠธ๋กœ ๋ผ์šฐํŒ…
    2. Shopping Agent: ์‚ฌ์šฉ์ž์˜ ์Šคํƒ€์ผ์„ ๋ถ„์„ํ•˜๊ณ  ์ ์ ˆํ•œ ์ œํ’ˆ ์ถ”์ฒœ
    3. Support Agent: ๊ตฌ๋งค ํ›„ ๊ณ ๊ฐ ์ง€์› ๋ฐ ํ™˜๋ถˆ ์ฒ˜๋ฆฌ

  • ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์„ค๋ช…:
    1. Handoff: ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์š”์ฒญ์„ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋กœ ์ „๋‹ฌํ•˜์—ฌ ํ˜‘๋ ฅ์  ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ
    2. Runner.run_sync:
      • ์ดˆ๊ธฐ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•„์š” ์‹œ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ตœ์ ์˜ ๊ฒฐ๊ณผ ๋„์ถœ
      • ํŠน์ • ๋„๊ตฌ(WebSearchTool, FileSearchTool)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋งž์ถคํ˜• ์‘๋‹ต ์ƒ์„ฑ

  1. ํ–ฅํ›„ ๊ณ„ํš

OpenAI๋Š” ์•ž์œผ๋กœ ๋” ๋งŽ์€ ๋„๊ตฌ ๋ฐ ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ด๋ฉฐ, Responses API๋ฅผ ์ค‘์‹ฌ์œผ๋กœ AI ์—์ด์ „ํŠธ ๊ตฌ์ถ•์„ ์ง€์›ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

โ„น๏ธ ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ ์˜ˆ์ • ๋‚ด์šฉ ์ •๋ฆฌ

  1. Responses API์— Assistance API์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์™„์ „ํ•œ ๋Œ€์ฒด API๋กœ ๋ฐœ์ „

    • 2026๋…„๊นŒ์ง€ Assistance API ๋‹จ๊ณ„์  ์ข…๋ฃŒ ์˜ˆ์ •
    • Responses API๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
  2. ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ชจ๋ธ๊ณผ ํ†ตํ•ฉํ•˜์—ฌ ๋”์šฑ ๊ฐ•๋ ฅํ•œ ์—์ด์ „ํŠธ ๊ตฌํ˜„ ์ง€์›

    • ํ…์ŠคํŠธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€, ์Œ์„ฑ, ๋™์˜์ƒ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅ
  3. ๋‹ค์–‘ํ•œ API๋ฅผ ๋‹จ์ผ ํ”Œ๋žซํผ์—์„œ ํ†ตํ•ฉ์ ์œผ๋กœ ์šด์˜

    • Responses API, Agents SDK, Web Search Tool, File Search Tool ๋“ฑ์„ ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์—์„œ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ
  4. ๋”์šฑ ํ–ฅ์ƒ๋œ ๋ณด์•ˆ ๋ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

    • API ์š”์ฒญ ๋ฐ ์‘๋‹ต์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๊ฐ•ํ™”
    • ๋ฏผ๊ฐํ•œ ์ •๋ณด ์ฒ˜๋ฆฌ ์‹œ ์ถ”๊ฐ€์ ์ธ ๋ณดํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ ์šฉ

OpenAI๋Š” 2025๋…„์„ โ€œThe Year of the Agentโ€๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ง€์†์ ์œผ๋กœ ๊ธฐ์ˆ ์„ ๊ฐœ์„ ํ•˜๊ณ , ๊ฐœ๋ฐœ์ž๋“ค์ด ๋” ๊ฐ•๋ ฅํ•œ AI ์—์ด์ „ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™Œ

์•ž์œผ๋กœ๋Š” ๋˜ ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•ด ๋‚˜๊ฐˆ์ง€ ๊ถ๊ธˆํ•˜๊ตฐ์š”๐Ÿค”



-->