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 ๋ด์ฉ์ ์ฝ๊ณ , ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. (์๋ฒฝํ์ง ์์ ์ ์์ต๋๋ค)
-
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 ์์ด์ ํธ๋ ๋จ์ํ ๋ํํ ์ฑ๋ด์ ๋์ด ๋ณต์กํ ์์ ์ ์๋ํํ๊ณ ์ฌ์ฉ์ ์์ฒญ์ ์ง๋ฅ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.

โ ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ํ์ฉ ๊ฐ๋ฅ ๋๊ตฌ
-
Code Interpreter(์ฝ๋ ์คํ๊ธฐ):
- Python ์ฝ๋ ์คํ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ฐ์ดํฐ ๋ถ์, ๊ทธ๋ํ ์์ฑ, ์์น ์ฐ์ฐ ๋ฑ์ ์์ ์ ์๋ํํ ์ ์์ต๋๋ค.
-
Retrieval(ํ์ผ ๊ฒ์):
- ์ ๋ก๋๋ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ณ ๋ฌธ์ ๋ด์ฉ์ ํ์ฉํ์ฌ ์ง๋ฌธ์ ๋ต๋ณํ ์ ์์ต๋๋ค.
-
Function Calling(ํจ์ ํธ์ถ):
์ธ๋ถ API ํธ์ถ๋๋์ฌ์ฉ์ ์ ์ ํจ์๋ฅผ ์คํํ ์ ์์ด, ์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋์ด๋ ํน์ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ฉ๋ฉ๋๋ค.
โ ํ์ฌ ์ํ
- ํ์ง ์์ :
- Assistants API๋ 2026๋ ์๋ฐ๊ธฐ๊น์ง Responses API๋ก ๋์ฒด๋ ์์ ์ด๋ฉฐ, ํ์ฌ๋ ๊ธฐ๋ฅ ์ง์์ด ์ ์ง๋๊ณ ์์ต๋๋ค.
- ๊ฐ๋ฐ์ ์ ํ ์ค๋น:
- ํ์ง ๋ฐํ ์ ๊น์ง ์๋ก์ด ๋ชจ๋ธ๊ณผ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉฐ, ๊ฐ๋ฐ์๋ค์ Responses API๋ก ์ ํ์ ์ค๋นํด์ผ ํฉ๋๋ค.
โ ํฅํ ๋ฐ์ ๊ณํ
- Responses API๋ก ํตํฉ:
- Assistants API์ ๋ชจ๋ ๊ธฐ๋ฅ์ Responses API๋ก ์ด์ ๋๋ฉฐ, ๊ฐ๋ฐ์๋ค์ Responses API๋ก ์ ํํด์ผ ํฉ๋๋ค.
- OpenAI๋ ์ด ๊ณผ์ ์์ ๋ฐ์ดํฐ ๋ณด์กด ๋ฐ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๋ฅผ ์ถํ ์ ๊ณตํ ์์ ์ ๋๋ค.
- Assistants API์ ๋ชจ๋ ๊ธฐ๋ฅ์ Responses API๋ก ์ด์ ๋๋ฉฐ, ๊ฐ๋ฐ์๋ค์ Responses API๋ก ์ ํํด์ผ ํฉ๋๋ค.
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์ ์ถ๋ ฅ ๋ฐฉ์์ด ์ง๊ด์ ์ด๋ฉฐ ์คํธ๋ฆฌ๋ฐ ์ง์
- ํธ๋ ์ด์ฑ ๋ฐ ํ๊ฐ ๊ธฐ๋ฅ ์ ๊ณต์ผ๋ก ์์ด์ ํธ ์ฑ๋ฅ ๋ถ์ ๊ฐ๋ฅ
- ๋ค์ค ํด ํธ์ถ์ ์ง์ํ์ฌ ์ฌ๋ฌ ์์ ์ ํ ๋ฒ์ ์คํ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ถ์ ๊ธฐ๋ฅ์ ๋ด์ฅํ์ฌ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ์ฉ์ด
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ
-
๋๊ตฌ ์๋ ์ ํ
- Chat Completions API์์๋ ์น ๊ฒ์์ ํ์ฑํํ๋ฉด ๋ชจ๋ธ์ด ํญ์ ๊ฒ์์ ์ํ
- Responses API์์๋ ๋ชจ๋ธ์ด ํ์ํ ๋๋ง ์๋์ผ๋ก ์น ๊ฒ์ ๋๊ตฌ๋ฅผ ํธ์ถ
- ๋ถํ์ํ API ์์ฒญ์ด ์ค์ด๋ค์ด ๋น์ฉ ์ ๊ฐ & ์ฑ๋ฅ ํฅ์
-
๋ค์ค ๋๊ตฌ ํตํฉ
- 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๋ก ๋ถ์
-
์ํ ์ ์ง ๊ธฐ๋ฅ (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๊ฐ ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
-
๋ด์ฅ ๋๊ตฌ(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๋ ์ธ ๊ฐ์ง ๊ฐ๋ ฅํ ๋ด์ฅ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
(1) Web Search
- ์ค์๊ฐ ์ ๋ณด๋ฅผ ๊ฒ์ํ์ฌ ์ต์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ต์ ์์ฑ
- ๊ฒ์๋ ์ ๋ณด์ ์ถ์ฒ(๋ด์ค, ๋ธ๋ก๊ทธ ๋ฑ)๋ฅผ ๋ช ํํ ์ ๊ณต
- ์ฌ๋ฌ ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ ๋ณด๋ค ์ ๋ขฐ์ฑ ์๋ ์๋ต ์ ๊ณต
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)
(2) File Search
- ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ์ ๋ก๋ํ๊ณ , ํ์ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์
- ๋ฉํ๋ฐ์ดํฐ ํํฐ๋ง ๋ฐ ๋ฒกํฐ ์คํ ์ด๋ฅผ ํตํ ๊ณ ๊ธ ๊ฒ์ ๊ธฐ๋ฅ ์ ๊ณต
- ๋ฌธ์ ๋ด์ฉ ์์ฝ ๋ฐ ํ ์คํธ ๋ถ์ ๊ธฐ๋ฅ ํฌํจ
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
๊ทธ๋ฆผ ๋จ๊ณ ๊ฐ๋ต ์ค๋ช
- ๋ชจ๋ธ์ ์์ฒญ ๋ณด๋ด๊ธฐ (Send a request to the model)
- ๋ชจ๋ธ์ ์๋ต ํ์ธ (Receive a response from the model)
- ์์ฒญ๋ ์ก์ ์คํ (Execute the requested action)
- ์ ๋ฐ์ดํธ๋ ์ํ ์บก์ฒ (Capture the updated state)
- ๋ฐ๋ณต (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 ์ฑ๋ฅํ
-
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="๋ด ์ท ์คํ์ผ์ ๋ง๋ ์ ๋ฐ์ ์ถ์ฒํด์ค",
)
-
Responses API ๋ฐ๋ชจ
4.1 ๊ธฐ๋ณธ์ ์ธ API ํธ์ถ (๋ฐํ ์์ฐ)
- ๊ธฐ์กด Chat Completions API์ ์ ์ฌํ ํํ
- ์์ฒญ(Request) โ ์๋ต(Response) ๋ฐฉ์์ผ๋ก ๋์ํ๋ฉฐ, ๋ค์ํ ๋๊ตฌ์ ๊ฒฐํฉ ๊ฐ๋ฅ
4.2 ์คํ์ผ ์ถ์ฒ ์์ด์ ํธ(Personal Stylist Assistant) ๊ตฌํ
-
์ด๊ธฐ ์ค์
- ์์ด์ ํธ ์ญํ ์ ์: โYou are a personal stylistโ
- ์ต์ ํธ๋ ๋ ๋ถ์ ๊ฐ๋ฅ: โWhat are some of the latest trends?โ

-
File Search Tool์ ํ์ฉํ ๊ฐ์ธ ์คํ์ผ ๋ถ์
- ํน์ ์ฌ์ฉ์์ ์คํ์ผ ์ ๋ณด๋ฅผ ๋ฒกํฐ ์ ์ฅ์(Vector Store)์์ ๊ฒ์์ด ๊ฐ๋ฅ

์์ : โCan you briefly summarize what Ilan likes to wear?โ- ์๋ต: โIlan has a distinct ecosystem style characterized by Miami chic.โ

-
Web Search Tool์ ํ์ฉํ ์ต์ ์ ๋ณด ๋ฐ์
- ์ฌ์ฉ์์ ์ฌํ์ง๋ฅผ ์ ๋ ฅํ์ฌ ํด๋น ์ง์ญ์์ ๊ตฌ๋งค ๊ฐ๋ฅํ ์ ํ ๊ฒ์
์์ : โFind me a jacket that I would like nearby.โ-
์ฒ๋ฆฌ ๊ณผ์ :
- File Search Tool โ ์ฌ์ฉ์ ์คํ์ผ ๋ถ์
- Web Search Tool โ ํด๋น ์ง์ญ์์ ๊ด๋ จ ์ ํ ํ๋งค ๋งค์ฅ ๊ฒ์
- ๊ฒฐ๊ณผ: โKevin์ด ์ข์ํ ๋งํ Patagonia ๋งค์ฅ์ Tokyo์์ ๊ฒ์โ

4.3 Computer Use Tool ๋ฐ๋ชจ (์ผํ ์๋ํ ์์ฐ)
- ์ฌ์ฉ์๊ฐ ์ํ๋ ์ฌํท์ ์ง์ ์ฐพ์ ๊ตฌ๋งคํ ์ ์๋๋ก ์ง์
-
Computer Use Tool ์ฌ์ฉ ์ ์ฐจ:
- Patagonia ์ผํ ์น์ฌ์ดํธ์ ์คํฌ๋ฆฐ์ท์ ์บก์ฒํ์ฌ ๋ชจ๋ธ์ ์ ๋ฌ
-
๋ชจ๋ธ์ด ํ๋ฉด์ ๋ถ์ํ๊ณ ์ ์ ํ
ํด๋ฆญ,์ ๋ ฅ๋ฑ์ ๋์์ ์ํ
- ์ฐ์์ ์ธ ์คํฌ๋ฆฐ์ท ๋ถ์์ ํตํด ์ ์ฒด ๊ตฌ๋งค ํ๋ก์ธ์ค ์๋ํ
4.4 Swarm(Agents API) ํ์ฉํ ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์
- Swarm ๊ธฐ๋ฐ ๋ฉํฐ ์์ด์ ํธ ์คํ: Swarm์ OpenAI์์ ์ ๊ณตํ๋ ๋ค์ค ์์ด์ ํธ ํ๋ ์์ํฌ๋ก, ์ฌ๋ฌ ๊ฐ์ ์์ด์ ํธ๊ฐ ์ญํ ์ ๋๋์ด ํ๋ ฅํ๋๋ก ์ค๊ณ๋จ.
์๋ ๊ธฐ๋ฅ๋ค์ ๊ฒธ๋นํ Stylist Agent๊ฐ ์๋ค๊ณ ํด๋ณด๊ฒ ์ต๋๋ค.
- Web Search Tool์ ํ์ฉํ์ฌ ์ค์๊ฐ ์ ๋ณด๋ฅผ ๊ฒ์
- File Search Tool์ ํตํด ์ฌ์ฉ์์ ์ ํธ๋๋ฅผ ๋ฐ์

Swarm(Agents API)๋ ์ Agent๊ฐ ๋ค๋ฅธ Agent์๊ฒ ์ญํ ์ ์ ๋ฌํ๊ธฐ ์ฝ๊ฒํฉ๋๋ค.
- ์์ด์ ํธ ๊ฐ ์ญํ ๋ถ๋ด ๋ฐ ์๋ํ:
- Triage Agent: ์ฌ์ฉ์์ ์์ฒญ์ ๋ถ์ํ์ฌ ์ ์ ํ ์์ด์ ํธ๋ก ๋ผ์ฐํ
- Shopping Agent: ์ฌ์ฉ์์ ์คํ์ผ์ ๋ถ์ํ๊ณ ์ ์ ํ ์ ํ ์ถ์ฒ
- Support Agent: ๊ตฌ๋งค ํ ๊ณ ๊ฐ ์ง์ ๋ฐ ํ๋ถ ์ฒ๋ฆฌ

- ์ถ๊ฐ ๊ธฐ๋ฅ ์ค๋ช
:
Handoff: ํน์ ์์ ์ ์ํํ๊ธฐ ์ํด ์์ฒญ์ ๋ค๋ฅธ ์์ด์ ํธ๋ก ์ ๋ฌํ์ฌ ํ๋ ฅ์ ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅRunner.run_sync:- ์ด๊ธฐ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ , ํ์ ์ ๋ค๋ฅธ ์์ด์ ํธ๋ก ์ ๋ฌํ์ฌ ์ต์ ์ ๊ฒฐ๊ณผ ๋์ถ
- ํน์ ๋๊ตฌ(WebSearchTool, FileSearchTool)๋ฅผ ํ์ฉํ์ฌ ๋ง์ถคํ ์๋ต ์์ฑ
-
ํฅํ ๊ณํ
OpenAI๋ ์์ผ๋ก ๋ ๋ง์ ๋๊ตฌ ๋ฐ ๋ชจ๋ธ์ ์ถ๊ฐํ ๊ณํ์ด๋ฉฐ, Responses API๋ฅผ ์ค์ฌ์ผ๋ก AI ์์ด์ ํธ ๊ตฌ์ถ์ ์ง์ํ ์์ ์ ๋๋ค.
โน๏ธ ํฅํ ์ ๋ฐ์ดํธ ์์ ๋ด์ฉ ์ ๋ฆฌ
-
Responses API์ Assistance API์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ์์ ํ ๋์ฒด API๋ก ๋ฐ์
- 2026๋ ๊น์ง Assistance API ๋จ๊ณ์ ์ข ๋ฃ ์์
- Responses API๋ก ์์ฐ์ค๋ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋๋ก ์ง์
-
๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ๊ณผ ํตํฉํ์ฌ ๋์ฑ ๊ฐ๋ ฅํ ์์ด์ ํธ ๊ตฌํ ์ง์
- ํ ์คํธ๋ฟ๋ง ์๋๋ผ ์ด๋ฏธ์ง, ์์ฑ, ๋์์ ๋ฑ ๋ค์ํ ์ ๋ ฅ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ์ฅ
-
๋ค์ํ API๋ฅผ ๋จ์ผ ํ๋ซํผ์์ ํตํฉ์ ์ผ๋ก ์ด์
- Responses API, Agents SDK, Web Search Tool, File Search Tool ๋ฑ์ ํ๋์ ํ๋ซํผ์์ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ
-
๋์ฑ ํฅ์๋ ๋ณด์ ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๊ธฐ๋ฅ ์ถ๊ฐ
- API ์์ฒญ ๋ฐ ์๋ต์ ๋ํ ๋ฐ์ดํฐ ๋ณดํธ ๊ฐํ
- ๋ฏผ๊ฐํ ์ ๋ณด ์ฒ๋ฆฌ ์ ์ถ๊ฐ์ ์ธ ๋ณดํธ ๋ฉ์ปค๋์ฆ ์ ์ฉ
OpenAI๋ 2025๋ ์ โThe Year of the Agentโ๋ก ๋ง๋ค๊ธฐ ์ํด ์ง์์ ์ผ๋ก ๊ธฐ์ ์ ๊ฐ์ ํ๊ณ , ๊ฐ๋ฐ์๋ค์ด ๋ ๊ฐ๋ ฅํ AI ์์ด์ ํธ๋ฅผ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํ ๊ฒ์ด๋ผ๊ณ ์ ์ธํ์ต๋๋ค ๐
์์ผ๋ก๋ ๋ ์ด๋ค ๋ฐฉํฅ์ผ๋ก ๋ฐ์ ํด ๋๊ฐ์ง ๊ถ๊ธํ๊ตฐ์๐ค
