Building on the Codex Harness โ Dominik Kundel, OpenAI
ํ ์ค ํต์ฌ
Codex harness๋ฅผ ๊ฐ์ธ๋ open source App Server๋ฅผ ํ์ฉํด ๋ชจ๋ธยท๋๊ตฌยท๊ถํยท๋ฐฐํฌ ๋ฐฉ์์ ์ง์ ์ ์ดํ๋ฉด, ๋ณต์กํ ์์ด์ ํธ ์ธํฐํ์ด์ค๋ฅผ ๋ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์๊ฐ ์ง์ ์์ด์ ํธ ํ๋ค์ค๋ฅผ ๋ง๋๋ ๋ถ๋ด์ ์ค์ด๊ธฐ ์ํด, Codex harness ์์ ์ธํฐํ์ด์ค๋ฅผ ์น๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. OpenAI์์ Codex ๊ฐ๋ฐ์ ๊ฒฝํ์ ๋ด๋นํ๋ ๊ด์ ์์, ๋ ์ฝ๊ฒ ์์ ๋ง์ ์์ด์ ํธ ํ๊ฒฝ์ ๋ง๋ค ์ ์๋ค๋ ์ ์ ๊ฐ์กฐํ๋ค.
-
0:52
App Server๋ ๋ฌด์์ธ๊ฐ? Codex app server๋ผ๋ ๊ฐ๋ ์ด ์๊ฐ๋๋ฉฐ, ์ด๊ฒ์ด ๋ฌด์์ธ์ง ์์ง ์ถฉ๋ถํ ์ค๋ช ๋์ง ์์์์ ์ง๋๋ค. ๋จ์ํ ์ฑ ๊ธฐ๋ฅ์ด ์๋๋ผ Codex๋ฅผ ๊ฐ์ธ๋ ํต์ฌ ๊ตฌ์ฑ์์๋ผ๋ ๋ฌธ์ ์์์ด ์ด๋ฆฐ๋ค.
-
1:12
Codex ๋ค์ ํ๋กํ ์ฝ App Server๋ Codex harness๋ฅผ ๊ฐ์ธ๋ ํ๋กํ ์ฝ์ด๋ฉฐ, agent client protocol๊ณผ ์ ์ฌํ๊ฒ ํ๋ค์ค ์์ ์ง์ ํตํฉํ ์ ์๊ฒ ๋ง๋ ๋ค. ์ฆ, ์ ํ ๊ธฐ๋ฅ์ด ์๋๋ผ ํ๋ค์ค์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ์ํธ์์ฉ ๊ท๊ฒฉ์ด ํต์ฌ์ด๋ค.
-
1:37
์คํ ์์ค, ์ด๋ค ๋ชจ๋ธ ์ ๊ณต์๋ ๊ฐ๋ฅ Codex harness์ App Server ๋ชจ๋ ์คํ ์์ค์ด๋ฉฐ Apache 2 ๋ผ์ด์ ์ค๋ก ์ ๊ณต๋๋ค. responses API ํธํ๋ง ๋๋ฉด ๋ค๋ฅธ ๋ชจ๋ธ ์ ๊ณต์๋ ์ฐ๊ฒฐํ ์ ์๊ณ , LM Studio๋ Ollama ์ฐ๊ฒฐ๋ ๋น๊ต์ ์ฝ๊ฒ ์ค์ ํ ์ ์๋ค.
-
2:17
๋์ ๋ฐฉ์ App Server๋ JSON RPC ์คํ์ผ ํ๋กํ ์ฝ๋ก ๋์ํ๋ฉฐ, Codex ์ฑยทIDE ํ์ฅยทVS Code ํ์ฅ ๊ฐ์ 1st-party ์ธํฐํ์ด์ค์ ์ธ๋ถ ํด๋ผ์ด์ธํธ๋ฅผ ๋ชจ๋ ๊ตฌ๋ํ๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ฉ์์ง์ ์ด๋ฒคํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์์ ์ ์ํํ๋ ๊ตฌ์กฐ๋ค.
-
3:32
์ค์๊ฐ ์ด๋ฒคํธ ์ดํด๋ณด๊ธฐ ๋ฐ๋ชจ ์ค์ Codex ์ฑ๊ณผ App Server ์ฌ์ด๋ฅผ ๊ฐ๋ก์ฑ๋ ์ธ์คํํฐ๋ฅผ ํตํด ์ด๋ฒคํธ ํ๋ฆ์ ๋ณด์ฌ์ค๋ค. ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ, ์ ์ค๋ ๋ ์์, ์ค์ ์ฝ๊ธฐ, ํ์ผ ๊ฒ์ ๊ฐ์ ๋ด๋ถ ๋์์ด ๊ทธ๋๋ก ๋ ธ์ถ๋์ด, ๊ฐ์ ๊ธฐ๋ฅ์ ์ธ๋ถ ํด๋ผ์ด์ธํธ์์๋ ํ์ฉํ ์ ์์์ ๋๋ฌ๋ธ๋ค.
-
5:31
120๊ฐ ์ด์์ ํด๋ผ์ด์ธํธ ๋ฉ์์ง ์ด๊ธฐํ, ์ค๋ ๋ ์์ , goal ์ค์ , ํ๋ฌ๊ทธ์ธ ๋์ด, ํ์ผ ๊ฒ์, ํ์ผ ์์ ๋ฑ 120๊ฐ๊ฐ ๋๋ ํด๋ผ์ด์ธํธ ๋ฉ์์ง๋ฅผ ์ง์ํ๋ค. ์ผ๋ฐ์ ์ธ ์ฑํ ๊ธฐ๋ฅ์ ๋์ด์ ์์ด์ ํธ์ ์ธ๋ถ ๋์๊ณผ ์๋๋ฐ์ค ๊ถํ๊น์ง ์ ์ดํ ์ ์๋ค.
-
6:31
ChatGPT๋ก ๋ก๊ทธ์ธ ์ด ํ๋กํ ์ฝ์ ์ฐ๋ฉด ์ฌ์ฉ์๊ฐ ์์ ์ ChatGPT ๊ตฌ๋ ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ Codex ์ฌ์ฉ๋ ํ๋์ ์ฐ๊ฒฐํ ์ ์๋ค. ์ธ๋ถ ์ฑ์ ๋ง๋ค๋๋ผ๋ ์ธ์ฆ๊ณผ ๊ณผ๊ธ ๊ฒฝํ์ ์์ฐ์ค๋ฝ๊ฒ ์ด์ด๊ฐ ์ ์๋ค.
-
6:56
๊ฐ๋ฐ์ ์ง์นจ ๊ฐ๋ฐ์ ์ง์นจ์ Codex์ ์์คํ ํ๋กฌํํธ ์์ ์ถ๊ฐ๋๋ ๋ฐฉ์์ผ๋ก, ๊ธฐ๋ณธ ํ๋กฌํํธ๋ฅผ ๋์ฒดํ์ง ์๊ณ ๋ณด๊ฐํ๋ค. ๋ชจ๋ธ๋ณ๋ก ์ด๋ฏธ ๋ค๋ฌ์ด์ง ํ๋กฌํํธ์ ์ฅ์ ์ ์ ์งํ๋ฉด์ ์ฑ ํนํ ์๊ตฌ๋ฅผ ๋ฐ์ํ๋ ๋ฐ ์ ํฉํ๋ค.
-
7:41
๋์ ๋๊ตฌ์ ์ง์ฐ ๋ก๋ฉ ๋๊ตฌ MCP ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ถ๊ฐ ๋๊ตฌ๋ฅผ ๋ ธ์ถํ ์ ์๊ณ , ๋๊ตฌ๋ฅผ ์ง์ ์ ์ํ ์๋ ์๋ค. ํนํ deferred loading์ ์ฐ๋ฉด ๋๊ตฌ๋ฅผ ์์คํ ํ๋กฌํํธ์ ๋ฃ์ง ์๊ณ tool search๋ก ์ฐพ๊ฒ ํด ์ปจํ ์คํธ ์ค์ผ์ ์ค์ด๋ฉฐ, ์ค๋ ๋๋ณ๋ก ๋ชจ๋ธยท์๋๋ฐ์คยท๋คํธ์ํฌ ๊ถํ๋ ์กฐ์ ํ ์ ์๋ค.
-
8:46
๋ฐ์ด๋๋ฆฌ ๋ฐฐํฌ App Server๋ Codex CLI์ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ๋ก ์ ๊ณต๋์ด, ์ด๋ฏธ CLI๊ฐ ์์ผ๋ฉด ๋ฐ๋ก ์คํํ ์ ์๋ค. Codex ์ฑ์๋ ๋ฒ๋ค๋ก ํฌํจ๋๋ฉฐ, Windows์์๋ WSL์ฉ Linux ๋ฐ์ด๋๋ฆฌ์ ๋ค์ดํฐ๋ธ Windows ๋ฐ์ด๋๋ฆฌ๋ฅผ ํจ๊ป ๋ฐฐํฌํ๋ค.
-
9:46
๋ฐ์ธ๋ฉ๊ณผ ์ ์ก ๋ฐฉ์ ๋ฒ์ ๋ณํ์ ๋์ํ ์ ์๋๋ก TypeScript bindings์ JSON schema๋ฅผ ์์ฑํ ์ ์๋ค. ์ ์ก ๋ฐฉ์์ STDIO์ web socket์ ์ง์ํ๋ฉฐ, ์ด๋ค ๋ฐฉ์์ด ๋ง๋์ง๋ Codex์๊ฒ ๋ฌผ์ด๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ๋น ๋ฅด๋ค๊ณ ์ ๋ฆฌํ๋ค.
-
10:31
Python SDK ์ต๊ทผ ๊ณต๊ฐ๋ Python SDK๋ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ๋ฅผ ๋์ ์ฒ๋ฆฌํด ์ฃผ๊ณ , ChatGPT ๋ก๊ทธ์ธ ํตํฉ๋ ๋ ์ฝ๊ฒ ๋ง๋ ๋ค. ๋ณต์กํ ํ๋ค์ค ์ธ๋ถ์ฌํญ์ ์ง์ ๋ค๋ฃจ์ง ์๊ณ ๋ ์ฑ ํตํฉ์ ์์ํ๊ธฐ ์ข์ ์ง์ ์ ์ด๋ค.
-
10:51
๊ทธ๋ฅ Codex์๊ฒ ๋งก๊ธฐ๊ธฐ Codex๋ ์ด ํ๋กํ ์ฝ ๊ตฌํ์ ๊ฐํ๋ฏ๋ก ๋ฌธ์๋ฅผ ๋ถ์ฌ ์ฃผ๊ธฐ๋ง ํด๋ ๋ง์ ๋ถ๋ถ์ ์์์ ์ฒ๋ฆฌํ๋ค. macOS ์ฑ ์์ฑ ํ๋ฌ๊ทธ์ธ์ด๋ Visual Basic ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฑํ ์คํ๋ ๋น ๋ฅด๊ฒ ๊ตฌํํ ์ ์๊ณ , ์ฑํ UI๊ฐ ์๋ ๋ค์ํ ์คํ ๋ฐฉ์์ผ๋ก ํ์ฅํ ์ ์๋ค.
-
12:00
Doom ์์ Codex Codex๋ฅผ Doom ์์์ ์คํํ๋ ์คํ์ ํตํด, ์์ด์ ํธ ์ธํฐํ์ด์ค๊ฐ ๋ฐ๋์ ์ ํต์ ์ธ ์ฑ ํํ์ผ ํ์๋ ์์์ ๋ณด์ฌ์ค๋ค. Electron, Doom Wasm, IPC๋ฅผ ํตํด ๊ฒ์ ๋ด๋ถ์์ Codex๊ฐ ๋์ํ๊ณ ๋ํ๊น์ง ์ฒ๋ฆฌํ๋ค.
-
13:40
Doom์ ๋๊ตฌ ์ฃผ๊ธฐ ๋ฐ๋ชจ ๋์ ๋๊ตฌ๋ฅผ ๋ถ์ฌ armor, health, weapons, ammo ๊ฐ์ ๊ฒ์ ์ํ๋ฅผ ์ฝ๊ฒ ํ๊ณ , ์์ ํตํด ํ์ฌ ๋๋ ํฐ๋ฆฌ๋ ํ์ธํ๊ฒ ๋ง๋ ๋ค. ๊ฐ์ ํ๋ค์ค๊ฐ ์ค์ ๋จธ์ ์์ ๋์๊ฐ๋ฏ๋ก, ๊ฒ์ ์์์๋ ์ฝ๋๋ฅผ ์ฐ๊ณ ์์ ์ ์ํํ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค ์ ์๋ค.
-
14:50
App Server์ codex exec์ ์ฐจ์ด Codex Exec๋ ๋น๋ํํ ์์ ์ ์คํฌ๋ฆฝํ ํ ๋ ์ ์ฉํด CI/CD๋ PR ์๋ ์์ ์ ์ ํฉํ๋ค. ๋ฐ๋ฉด App Server๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ๋์์ ๋์ฐ๊ฑฐ๋ eval harness, goal ๋ชจ๋ ๊ฐ์ ๋ณตํฉ ์ธํฐ๋์ ์ ๊ตฌ์ฑํ ๋ ๋ ๊ฐํ๋ค.
-
15:55
์ธ ๊ฐ์ง ํ ์ฒซ์งธ, ์ฌ์ฉ์ ์ค์น๋ณธ์ ๊ธฐ๋์ง ๋ง๊ณ ์์ ์ ํ๋ค์ค ๋ฒ์ ์ ํจ๊ป ๋ฐฐํฌํด์ผ ํ๋ค. ๋์งธ, ์ ๊ธฐ๋ฅ์ ์ธํฐํ์ด์ค๋ก ๋ ธ์ถํ๋ deferred๋ก ๋์ด ์ปจํ ์คํธ๋ฅผ ์งํค๊ณ , ์ ์งธ, ๊ธฐ๋ณธ ์์คํ ํ๋กฌํํธ๋ฅผ ๊ฐ์์๊ธฐ๋ณด๋ค developer instructions๋ถํฐ ํ์ฅํ๋ ํธ์ด ์์ ํ๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ ์ ํ์ ๋ง๋ค ๋๋ ๋ชจ๋ธ ์ฑ๋ฅ๋ณด๋ค ํ๋ค์ค ๋ฐฐํฌ ์ ๋ต์ด ๋ ํฐ ์์ ์ฑ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค. ์ฌ์ฉ์ ํ๊ฒฝ ์์กด์ฑ์ ์ค์ด๋ ค๋ฉด ๋ฐ์ด๋๋ฆฌ์ ๋ฒ์ ์ ์ฑ์ ํฌํจํ๋ ๋ฐฉ์์ด ์ ๋ฆฌํ๋ค.
- ๋๊ตฌ๋ฅผ ๋ง์ด ๋ถ์ธ๋ค๊ณ ๋ฅ์ฌ๊ฐ ์๋๋ฉฐ, deferred loading์ฒ๋ผ ์ปจํ ์คํธ๋ฅผ ์ค์ผ์ํค์ง ์๋ ์ค๊ณ๊ฐ ์ค์ ํ์ง์ ์ข์ฐํ๋ค.
- ๋น๋ํํ ์คํ ๋๊ตฌ์ ์ํธ์์ฉํ ํ๋ค์ค๋ฅผ ๊ตฌ๋ถํด ์ฐ๋ฉด, CI ์๋ํ์ ๋ณตํฉ ์์ด์ ํธ UI๋ฅผ ๊ฐ๊ฐ ๋ ์ ํฉํ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๋ค.