How to Test Your Agents on Real Tasks With Harbor - Xander Song, Arize AI
ํ ์ค ํต์ฌ
Harbor๋ฅผ ์ด์ฉํด ์ค์ ๋ฐ์ดํฐ์ ์ค์ ์์ ๊ธฐ์ค์ผ๋ก ์์ด์ ํธ๋ฅผ ์๋๋ฐ์ค์์ ํ๊ฐํ๋ฉด, ๊ฐ์ด ์๋๋ผ ์ฆ๊ฑฐ์ ๊ธฐ๋ฐํด ํ๋กฌํํธยท๋๊ตฌยท์คํฌ ๋ณ๊ฒฝ์ ํจ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ฆํ ์ ์๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์ฆ๊ฑฐ์ ๊ธฐ๋ฐํ ๋ฐฐํฌ Harbor๋ ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฉ๋ฆฌ๋ ์๋๋ฐ์ค์์ ์์ด์ ํธ๋ฅผ ํ๊ฐํ๋ ์คํ์์ค ํ๋ ์์ํฌ์ด๋ฉฐ, ๋ชฉํ๋ ๊ฐ์ด ์๋๋ผ ์ฆ๊ฑฐ๋ก ์์ด์ ํธ์ ํ๋ค์ค๋ฅผ ๋ฐ๋ณต ๊ฐ์ ํ๋ ๋ฐ ์๋ค.
-
1:28
Harbor๊ฐ ๋ฌด์์ธ์ง ์์ฐ์ด ์ง์๋ก ์ ์ํ ํ์ค์ ์ธ ์์ ์ ์์ด์ ํธ์ ์ฃผ๊ณ , ํ๊ฒฝ ๋ด๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆํ๋ verifier๋ก ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ์ฑ์ ํ๋ ๊ตฌ์กฐ๋ค. ๊ฐ์ ์์ ๊ณผ ๊ฒ์ฆ๊ธฐ๋ฅผ ์ ์งํ ์ฑ ๊ตฌํ๋ง ๋ฐ๊พธ๋ฉด ๊ฐ์ ๊ณผ ํ๊ท๋ฅผ ๋น ๋ฅด๊ฒ ํ๋จํ ์ ์๋ค.
-
3:37
์์ , ํ๊ฒฝ, ๊ฒ์ฆ๊ธฐ์ ๊ตฌ์กฐ ์์ ์ markdown ์ง์๋ฌธ, ํ๊ฒฝ์ Docker file๋ก ์ ์๋๋ฉฐ, ๋ฐ์ดํฐ๋ SQLite๋ git repository์ฒ๋ผ ๋ฌด์์ด๋ ๋ค์ด๊ฐ ์ ์๋ค. ๊ฐ ์์ ์๋ test directory์ ์คํฌ๋ฆฝํธํ verifier๊ฐ ๋ถ๊ณ , ์ฌ๋ฌ trial์ ๋ ๋ฆฝ์ ์ผ๋ก ๋๋ ค ํ๋ฅ ์ ์ธ LLM ๋์์ ๋ณด์ ํ๋ค.
-
6:08
Trajectories, job, oracle ATIF๋ ์์ด์ ํธ์ ๋ด๋ถ ๋จ๊ณ๋ฅผ ๊ธฐ๋กํ๋ JSON ์ถ์ ํ์์ผ๋ก, ๋๋ฒ๊น ๊ณผ ๋ก๊ทธ์ ์ ์ฉํ๋ค. ์ ์ฒด ์์ ๋ฌถ์๊ณผ ์ฌ๋ฌ trial, verifier ์คํ, trajectory ์์ง์ ํฉ์น ์คํ ๋จ์๋ฅผ Harbor๋ job์ผ๋ก ๋ถ๋ฅด๋ฉฐ, oracle์ ์์ด์ ํธ ํฌ์ ์ ์ ๋ฐ์ดํฐยทํ๊ฒฝยท๊ฒ์ฆ๊ธฐ์ ์ ํฉ์ฑ์ ์ ๊ฒํ๋ ์ ๋ต ์คํฌ๋ฆฝํธ๋ค.
-
7:58
์คํจํ๋ migration ์์ ์์ ์คํจํ migration์ ๊ณ ์น๋ ์ฝ๋ฉ ์์ด์ ํธ ์ฌ๋ก๋ก, ์ง์๋ฌธยทSQL/DDLยท์์ค์ฝ๋ยท๊ฒ์ฆ ์คํฌ๋ฆฝํธยท์ ๋ต ์คํฌ๋ฆฝํธ๊ฐ ์ด๋ป๊ฒ ๋ฐฐ์น๋๋์ง ์ค๋ช ํ๋ค. ๊ฒ์ฆ๊ธฐ๋ ์์ด์ ํธ๊ฐ ์์ ํ ํ์ผ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ํ์ธํ๋ฉฐ, ์คํ ์ค์๋ ๊ฒ์ฆ๊ธฐ์ ํด๋ต์ด ๋ณด์ด์ง ์๋๋ก ๋ถ๋ฆฌ๋๋ค.
-
10:48
๋ธ๋๋ฐ์ค ํตํฉ ํ ์คํธ๋ก์์ ๊ฒ์ฆ๊ธฐ ๊ฒ์ฆ๊ธฐ๋ ์์ด์ ํธ ๊ตฌํ์ ๋ณด์ง ์๊ณ ๊ฒฐ๊ณผ๋ฌผ๊ณผ ์ฌ์ด๋ ์ดํํธ๋ง ํ๊ฐํ๋ ๋ธ๋๋ฐ์ค ๋ฐฉ์์ด ์ด์์ ์ด๋ฉฐ, ํตํฉ ํ ์คํธ์ ๊ฐ์ ์ญํ ์ ํ๋ค. ์ด ๋๋ถ์ ๊ตฌํ์ ํฌ๊ฒ ๋ฐ๊ฟ๋ ์์ ์ ์์ ๊ฒ์ฆ ๊ธฐ์ค์ ๊ณ ์ ํ ์ฑ ์์ ํ๊ฒ ๋ฆฌํฉํฐ๋งํ ์ ์๋ค.
-
14:21
๋ณ๋ ฌ ์๋๋ฐ์ค์์์ ๋๊ท๋ชจ ์คํ ์์ ๊ณผ trial์ด ๋ชจ๋ ๋ ๋ฆฝ์ ์ด์ด์ Docker๋ Daytona, Modal, E2B ๊ฐ์ ์๋๋ฐ์ค์์ ์ํ ํ์ฅ์ด ๊ฐ๋ฅํ๋ค. ์ฌ๋ฌ ์์ด์ ํธ์ ์ฌ๋ฌ trial์ ๋ณ๋ ฌ๋ก ๋๋ฆฐ ๋ค pass@k ๊ฐ์ ์ง๊ณ ์งํ๋ก ๋น ๋ฅด๊ฒ ์ฑ๋ฅ์ ๋น๊ตํ ์ ์๋ค.
-
17:04
Phoenix์์ ์ฐ๋ Harbor์ dataset, trial, reward, trajectory๋ Phoenix์ dataset, experiment, evaluation, open inference ํ์์ผ๋ก ๋งคํ๋๋ค. ์ด๋ฅผ ํตํด ์ถ์ , ๋ฒ์ ๊ด๋ฆฌ, ์๊ฐํ, CLI์ MCP ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๊ณ , Harbor๋ง ๋จ๋ ์ผ๋ก ์ธ ๋๋ณด๋ค ์คํ ๊ด์ฐฐ์ฑ์ด ๋์์ง๋ค.
-
20:37
Phoenix ํ์ด Harbor๋ฅผ ์ฐ๋ ๋ฐฉ์ Phoenix๋ ๋จ์ผ ๋ ธ๋ ์๋ฒ, SQLite/Postgres, RESTยทGraphQL, CLIยทMCPยท์๋ฒ์ฌ์ด๋ ์์ด์ ํธ Pixie๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ด ์ ์ฒด๋ฅผ Docker์ ๋ฃ์ด Harbor๋ก ํ๊ฐํ๋ค. ์ค์ ์ฌ์ฉ์ ์ง๋ฌธ์ ๋ฐ์ํ ์์ ์ ๋ง๋ค๊ณ , ์ข ๋ฃ ํ์๋ REST ํธ์ถ์ด๋ SQL ์กฐํ๋ก ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆํ๋ค.
-
25:07
Harbor๊ฐ ์คํ์ ์ค์ผ์คํธ๋ ์ด์ ํ๋ ๋ฐฉ์ Harbor๋ ํธ์คํธ ๋จธ์ ์์ ๋์ํ๋ CLI ์ค์ผ์คํธ๋ ์ดํฐ๋ก, Docker ์ด๋ฏธ์ง ์์ ์ ํด์ง ์คํฌ๋ฆฝํธ๋ฅผ ์ฐพ์ ์์ ์์ยทverifier ์คํยทoracle ์คํ์ ์กฐ์จํ๋ค. ๋ฐ๋ผ์ ํต์ฌ ๊ณ์ฝ์ ๊ตฌํ์ด ์๋๋ผ ์คํฌ๋ฆฝํธ ๋ฐฐ์น์ ์ด๋ฏธ์ง ๊ตฌ์กฐ์ ์๋ค.
-
29:24
๋ณต์กํ ์์คํ ๊ณผ ๋ฐ์ดํฐ ํฌ๊ธฐ ๋ถ์ฐ ์์คํ ์ด๋ ๋ํ ๋ฐ์ดํฐ์ ์ ๋จ์ผ Docker๋ก ๊ฐ์ธ๊ธฐ ์ด๋ ค์ Harbor ์ ์ฉ์ด ๋ ๊น๋ค๋กญ๊ณ , ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ธํฐํ์ด์ค ๊ฒฝ๊ณ๋ฅผ ์๋ผ์ผ ํ๋ค. ๋ค๋ง ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ฃ์ ํ์๋ ์๊ณ , ํ ์คํธํ๋ ค๋ ์ง๋ฌธ๊ณผ ํ๋์ ํ์ํ ๋ถ๋ถ๋ง ๊ณจ๋ผ์ ํ์ค์ ์ผ๋ก ๊ตฌ์ฑํ๋ฉด ๋๋ค.
-
33:21
SQL ๋๊ตฌ๋ก ์ ๋ํ ์ฌ๋ก ์ฐ๊ตฌ REST๋ GraphQL๋ง์ผ๋ก๋ ์ง๊ณ ์ง๋ฌธ์ด ๋นํจ์จ์ ์ด์ด์ read-only SQL ๋๊ตฌ๋ฅผ ์ถ๊ฐํ์ง๋ง, ์์ด์ ํธ๊ฐ ์ธ์ ๋ ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ๊ณ ๋ฅด์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ์์๋ค. ํ๋กฌํํธ์ SQL ์ฌ์ฉ ์กฐ๊ฑด์ ๋ช ์ํ๊ณ , synthetic question ๋ฐ์ดํฐ์ ๊ณผ oracle ๊ธฐ๋ฐ verifier๋ก ์ค์ ๋ก SQL ์ฌ์ฉ์ด ๋๊ณ tool call ์๊ฐ ์ค์๋์ง ๊ฒ์ฆํ๋ค.
-
38:34
Phoenix์์ ๋ฐ์ดํฐ์ ๊ณผ ์คํ ๋ณด๊ธฐ Phoenix์์๋ ๋ฐ์ดํฐ์ ์์์ ์ ๋ต, version history, experiment๋ณ reward์ ๋น์ฉ, ์ง์ฐ์๊ฐ, tool call ์๋ฅผ ํ ํ๋ฉด์์ ํ์ธํ ์ ์๋ค. ์ด ์์์์๋ correctness๋ ์ ์ง๋์๊ณ , ์ต์ ํ ๋ชฉํ์๋ tool call ๊ฐ์์ SQL ์ฌ์ฉ ์ฆ๊ฐ๊ฐ ์งํ๋ก ๋๋ฌ๋ฌ๋ค.
-
44:10
์์ ๋ณ๋ก job ๋น๊ตํ๊ธฐ ๋ experiment๋ฅผ ๋๋ํ ๋๊ณ task ๋จ์๋ก reward, tool count, turn ์, SQL/GraphQL ์ฌ์ฉ ๋ณํ๋ฅผ ๋น๊ตํด ๊ฐ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. ์ผ๋ถ ๊ฒฝ์ฐ์๋ trajectory๊น์ง ๋ด๋ ค๊ฐ ์ค์ ๋ก ์ด๋ค ๋๊ตฌ ํธ์ถ ๊ฒฝ๋ก๊ฐ ๋ฐ๋์๋์ง ์๊ฐ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์๋ค.
-
48:31
ํ๊ท ํ ์คํธ์ ์คํฌ ํ๊ท ํ ์คํธ๋ ์์ง ์ด๊ธฐ ๋จ๊ณ์ด์ง๋ง, Harbor์์๋ ํนํ workflow๋ฅผ ๋ด๋ skill ๋จ์๋ก happy path๋ฅผ ๊ฒ์ฆํ๋ ๋ฐฉ์์ด ์ ๋ง๋๋ค. ํ์ํ๋ฉด verifier๊ฐ trajectory๋ฅผ ๋ค์ฌ๋ค๋ณด๋ ๋ ๊ฒฐํฉ๋ ํ ์คํธ๋ ๊ฐ๋ฅํ์ง๋ง, ์ ์ง๋ณด์์ฑ๊ณผ flakiness๋ฅผ ํจ๊ป ๊ณ ๋ คํด์ผ ํ๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ ํ๊ฐ๋ ๋ชจ๋ธ ์์ฒด๋ณด๋ค๋ ๋๊ตฌ, ํ๋กฌํํธ, ์คํฌ, ํ๋ค์ค๊ฐ ํฉ์ณ์ง ์์คํ ์ ์ฒด๋ฅผ ๋์์ผ๋ก ์ก์์ผ ์ค์ ์ด์ ํ์ง์ ์ ํํ ๋ณผ ์ ์๋ค.
- ์ ๋ต ๊ฒ์ฆ์ด ๊ฐ๋ฅํ ์์ ์์๋ trajectory๋ฅผ ๋ณด์ง ์๋ ์์ํ verifier๊ฐ ๊ฐ์ฅ ๊ฐํ์ง๋ง, ์ต์ ํ ๋ชฉํ๊ฐ ๋๊ตฌ ์ฌ์ฉ๋ ๊ฐ์ ํ๋ ์งํ์ผ ๋๋ ์ ํ์ ์ผ๋ก trajectory๋ฅผ ์๋ ๊ฒ์ด ์ค์ฉ์ ์ด๋ค.
- ๋ฐ์ดํฐ์ ๊ณผ ๊ฒ์ฆ๊ธฐ๋ฅผ ๋จผ์ ์ ๋ง๋ค๋ฉด, ์ดํ์๋ ๋์ผํ ์์ ๋ฌถ์์ผ๋ก ๊ตฌํ ๋ณ๊ฒฝ์ ํ๊ท๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ก์๋ผ ์ ์๋ค.