๐Ÿ“บ ์˜์ƒ ์š”์•ฝ ์•„์นด์ด๋ธŒ
โ† ๋ชฉ๋ก

How We Built an Agent That Improves Itself โ€” Zubin Aysola, Weights & Biases

AI Engineer ยท 2026-09-27 01:00 ยท 17:06

ํ•œ ์ค„ ํ•ต์‹ฌ

ARIA๋Š” production trace๋ฅผ offline eval๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ๊ฐ™์€ ์—์ด์ „ํŠธ๋ฅผ ๊ณ„์† ์žฌํ‰๊ฐ€ยท์ˆ˜์ •ํ•˜๋Š” ํ•˜๋„ค์Šค์™€ ๋ฃจํ”„๋ฅผ ํ†ตํ•ด ์Šค์Šค๋กœ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค.

์‹œ๊ฐ„๋ณ„ ์š”์•ฝ

  1. 0:00
    ARIA ๊ตฌ์ถ• ์†Œ๊ฐœ Weights and Biases์—์„œ ๋งŒ๋“  ARIA ์—์ด์ „ํŠธ์™€, ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ‰๊ฐ€ํ•˜๊ณ  ์ž๊ธฐ๊ฐœ์„  ๋ฃจํ”„์— ์˜ฌ๋ ค๋‘๋Š”์ง€์— ๋Œ€ํ•œ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค.
  2. 0:51
    ์™œ ์ž์ฒด ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค๊ฐ€ ํ•„์š”ํ•œ๊ฐ€ ๋ชจ๋ธ๊ณผ ๋„๊ตฌ ํ˜ธ์ถœ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ, ๋‹จ์ˆœํžˆ ๋ชจ๋ธ์„ ์ž์œ ๋กญ๊ฒŒ ๋‘๋Š” ๋Œ€์‹  ์ž์ฒด ํ•˜๋„ค์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ผ๊ด€๋œ ์‹คํ—˜๊ณผ ์—ฐ๊ตฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
  3. 1:31
    ๋ฒค์น˜๋งˆํฌ, ํ‰๊ฐ€, ์—์ด์ „ํŠธ๋Š” ํ•จ๊ป˜ ๋ณ€ํ•œ๋‹ค ๋ฒค์น˜๋งˆํฌ์™€ ํ‰๊ฐ€๋Š” ์—์ด์ „ํŠธ ์„ค์ • ๋ณ€ํ™”์™€ ํ•จ๊ป˜ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์—, production๊ณผ offline ์–‘์ชฝ์—์„œ ๊ฐ™์€ ๊ธฐ์ค€์œผ๋กœ ์ธก์ •ํ•ด์•ผ ์‹ค์ œ ์„ฑ๋Šฅ์„ ์ •ํ™•ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  4. 2:06
    production๊ณผ offline ์ถ”์ ์šฉ Weave Weave๋ฅผ ํ†ตํ•ด production๊ณผ offline trace๋ฅผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ , production์—์„œ ์–ป์€ trace๋ฅผ offline ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์ ธ์™€ ๊ฐœ์„ ์˜ ์ถœ๋ฐœ์ ์œผ๋กœ ์‚ผ๋Š”๋‹ค.
  5. 2:56
    ARIA๊ฐ€ ์ž๊ธฐ ์ž์‹ ์„ ์ž๋™ ์—ฐ๊ตฌํ•˜๋Š” ๋ผ์ด๋ธŒ ๋ฐ๋ชจ ARIA์— ์ž๊ธฐ ์—ฐ๊ตฌ๋ฅผ ์‹œ์ผœ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์Šตยทํ‰๊ฐ€ ์ž‘์—…์„ ๋Œ๋ฆฌ๊ณ , production trace๋ฅผ ๊ฒ€ํ† ํ•ด ์ƒˆ๋กœ์šด task์™€ ๋ณ€ํ˜•์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ค€๋‹ค.
  6. 3:40
    production trace๋ฅผ eval task๋กœ ๋ฐ”๊พธ๊ธฐ ์‹ค์ œ production ๋Œ€ํ™”๋ฅผ offline eval task๋กœ ์˜ฎ๊ฒจ์™€ candidate์™€ production ์—์ด์ „ํŠธ๋ฅผ ๊ฐ™์€ ์กฐ๊ฑด์—์„œ ๋น„๊ตํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ Weave์— ๊ธฐ๋กํ•œ๋‹ค.
  7. 4:50
    ์•ผ๊ฐ„ CI ํ‰๊ฐ€ ๋งค์ผ ๋ฐค ๋Œ์•„๊ฐ€๋Š” CI ํ‰๊ฐ€๋กœ ์—ฌ๋Ÿฌ ํ›„๋ณด ์—์ด์ „ํŠธ์˜ ์ƒ๋Œ€ ์„ฑ๋Šฅ์„ ์žฅ๊ธฐ์ ์œผ๋กœ ์ถ”์ ํ•˜๋ฉฐ, ๊นจ์ง„ ํ‰๊ฐ€๋‚˜ ํ‡ดํ–‰๋„ ๋น ๋ฅด๊ฒŒ ๊ฐ์ง€ํ•œ๋‹ค.
  8. 5:15
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๊ฐ•ํ™”ํ•™์Šต๋ณด๋‹ค๋Š” ํ”„๋กฌํ”„ํŠธ์™€ ์Šคํ‚ฌ ์„ค๊ณ„์— ๋” ๊ฐ€๊น์ง€๋งŒ, ํ˜„์‹ค๊ณผ ๋‹ฎ์€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ์—์ด์ „ํŠธ๊ฐ€ ์–ด๋–ค ์กฐ๊ฑด์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค.
  9. 5:50
    production๊ณผ ์—ฐ๊ตฌ์—์„œ ๋™์ผํ•œ ์—์ด์ „ํŠธ ์—ฐ๊ตฌ์šฉ๊ณผ ์šด์˜์šฉ ์ฝ”๋“œ๋ฅผ ์‚ฌ์‹ค์ƒ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ , 4์‹œ๊ฐ„ ๋‹จ์œ„ ๋™๊ธฐํ™”๋กœ drift๋ฅผ ์ค„์—ฌ ๊ฐ™์€ ์—์ด์ „ํŠธ๋ฅผ ๋‘ ํ™˜๊ฒฝ์—์„œ ๋น„๊ต ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
  10. 6:40
    ๋งŽ์€ trace ์ƒ์„ฑํ•˜๊ธฐ ์—์ด์ „ํŠธ์˜ ์„ฑ๋Šฅ์€ ๋งŽ์€ trace๋ฅผ ์Œ“์•„์•ผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋กค์•„์›ƒ์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์—์„œ ํ–‰๋™ ํŒจํ„ด๊ณผ ์‹คํŒจ ์›์ธ์„ ์ฐพ์•„๋‚ธ๋‹ค.
  11. 7:15
    ๋ชจ๋ธ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ํ•˜๋„ค์Šค์™€ YAML ๋ณ€ํ˜• ์—ฌ๋Ÿฌ ๋ชจ๋ธ์„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‹œํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋„ค์Šค๋ฅผ ์ถ”์ƒํ™”ํ•˜๊ณ , YAML๋กœ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ๋ณ€ํ˜•์„ ์ •์˜ํ•ด ๋ณ‘๋ ฌ ์‹คํ—˜์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ ๋‹ค.
  12. 8:04
    ์ œ์•ฝ ์—†๋Š” ์ƒŒ๋“œ๋ฐ•์Šค ์—์ด์ „ํŠธ๊ฐ€ ๋ณ‘๋ ฌ ์‹คํ–‰์ด๋‚˜ ์ƒˆ๋กœ์šด ํ–‰๋™์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถฉ๋ถ„ํžˆ ์—ด๋ฆฐ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์ œ๊ณตํ•ด์•ผ, ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์œ ์šฉํ•œ ๋Šฅ๋ ฅ์ด ๋“œ๋Ÿฌ๋‚œ๋‹ค.
  13. 8:54
    ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ YAML ์„ค์ •์„ ๋ถˆ๋Ÿฌ์™€ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ , ๋‹ค์‹œ ๋Ÿฐํƒ€์ž„ ์ •๋ณด๋ฅผ ์ฃผ์ž…ํ•œ ๋’ค, production๊ณผ ๋™์ผํ•œ ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ ์ˆ˜ํ™”ํ•˜๋Š” DAG ํ˜•ํƒœ์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  14. 10:14
    ์ ์ˆ˜ํ™”: ํ•ฉ๊ฒฉยท๋ถˆํ•ฉ๊ฒฉ๊ณผ ์ƒ๋Œ€ ๋น„๊ต ํ‰๊ฐ€๋Š” task๋ฅผ ํ†ต๊ณผํ–ˆ๋Š”์ง€ ๋ณด๋Š” ์ ˆ๋Œ€ ์ ์ˆ˜์™€, ๋‘ ๋ณ€ํ˜• ์ค‘ ์–ด๋А ์ชฝ์ด ๋” ๋‚˜์€์ง€ ๋น„๊ตํ•˜๋Š” ์ƒ๋Œ€ ์ ์ˆ˜๋กœ ๋‚˜๋‰˜๋ฉฐ, teardown๊นŒ์ง€ ํฌํ•จํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ˜๋ณต ์‹คํ–‰ํ•œ๋‹ค.
  15. 10:54
    YAML๋กœ ์ •์˜ํ•˜๋Š” ์ž‘์—…: 886๊ฐœ task task๋Š” ์‹œ์ž‘ ์กฐ๊ฑด๊ณผ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๊ฐ€์ง„ YAML๋กœ ์ •์˜๋˜๋ฉฐ, ๋‹จ์ˆœ ์ง€์‹œ๋ฌธ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜๋ฅผ ํ‰๋‚ด ๋‚ธ ๋ฉ€ํ‹ฐํ„ด ์‹œ๋‚˜๋ฆฌ์˜ค๊นŒ์ง€ ํฌํ•จํ•ด 886๊ฐœ๋ฅผ ์šด์˜ํ•œ๋‹ค.
  16. 12:03
    trajectory์™€ ํ‰๊ฐ€ ํ”Œ๋ผ์ดํœ  production๊ณผ offline trajectory์—์„œ ๋‚˜์˜จ ์‹คํŒจ์™€ ์„ฑ๊ณต์„ ๋ชจ๋‘ task๋กœ ์ „ํ™˜ํ•ด ๋‹ค์‹œ ํ‰๊ฐ€์— ๋„ฃ๋Š” ๊ตฌ์กฐ๊ฐ€ ํ•ต์‹ฌ์ด๋ฉฐ, ์ด ์ˆœํ™˜์ด ์—์ด์ „ํŠธ๋ฅผ ๊ณ„์† ๊ฐœ์„ ํ•˜๋Š” ํ”Œ๋ผ์ดํœ ์ด ๋œ๋‹ค.
  17. 12:53
    ๋ฐ๋ชจ ๊ฒฐ๊ณผ: ARIA๊ฐ€ ์ž์‹ ์˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ • ARIA๋Š” ์‹ค์ œ trace๋ฅผ task๋กœ ๋ฐ”๊ฟ” ์‹คํ–‰ํ•˜๋ฉด์„œ weave.log ํ˜ธ์ถœ ๋ˆ„๋ฝ ๊ฐ™์€ SDK ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ด๊ณ , candidate ๋ณ€ํ˜•๊ณผ ์ ์ˆ˜ ๋น„๊ต๋ฅผ ๊ฑฐ์ณ ์Šค์Šค๋กœ ์ˆ˜์ • ๋ฐฉํ–ฅ์„ ๋งŒ๋“ ๋‹ค.
  18. 14:43
    ๋ฃจํ”„ ์•ˆ์— ๋จธ๋ฌด๋ฅด๊ธฐ ์—์ด์ „ํŠธ๊ฐ€ ๋งŽ์€ ์ผ์„ ๋Œ€์‹ ํ•ด ์ฃผ๋”๋ผ๋„ ๊ฐœ์„ ์˜ ์‚ฌ๊ณ ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ƒ์‚ฐ์„ฑ๊ณผ ๊ด€์ฐฐ์„ฑ์„ ํ•œ ํ”Œ๋žซํผ ์•ˆ์—์„œ ์œ ์ง€ํ•  ๋•Œ ๊ฐœ์„  ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋นจ๋ผ์ง„๋‹ค.
  19. 16:22
    ๋งˆ๋ฌด๋ฆฌ production์—์„œ simulation์œผ๋กœ, ๋‹ค์‹œ ์—์ด์ „ํŠธ์™€ ๊ฐœ์„  ํŒจํ„ด์œผ๋กœ ์ด์–ด์ง€๋Š” ๋ณต์ œ ๊ฐ€๋Šฅํ•œ ํ๋ฆ„์ด ํ•ต์‹ฌ์ด๋ฉฐ, ์ด๊ฒƒ์ด ARIA์™€ Weights and Biases๊ฐ€ ์ถ”๊ตฌํ•˜๋Š” ์šด์˜ ๋ฐฉ์‹์ด๋‹ค.

์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ

  • ์—์ด์ „ํŠธ ํ’ˆ์งˆ ํ–ฅ์ƒ์€ ๋ชจ๋ธ ์ž์ฒด๋ณด๋‹ค๋„ production trace๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ eval task๋กœ ์žฌํ™œ์šฉํ•˜๋А๋ƒ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋œ๋‹ค.
  • ์—ฐ๊ตฌยท์šด์˜ ์ฝ”๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ๋™์ผํ•œ ๊ด€์ธก ๋„๊ตฌ๋กœ ์ถ”์ ํ•ด์•ผ benchmark drift๋ฅผ ์ค„์ด๊ณ  ์‹ค์ œ ๊ฐœ์„ ์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋งŽ์€ trace๋ฅผ ์Œ“์€ ๋’ค ์ ˆ๋Œ€ ์ ์ˆ˜์™€ ์ƒ๋Œ€ ์ ์ˆ˜๋ฅผ ํ•จ๊ป˜ ๋ณด๋Š” ๊ตฌ์กฐ๊ฐ€ ์—์ด์ „ํŠธ์˜ ๋ฏธ์„ธํ•œ ํšŒ๊ท€์™€ ๊ฐœ์„ ์„ ๊ฐ€์žฅ ์•ˆ์ •์ ์œผ๋กœ ์žก์•„๋‚ธ๋‹ค.