AI Agents Are Just Distributed Systems Now โ Salman Munaf, TikTok
ํ ์ค ํต์ฌ
AI ์์ด์ ํธ๋ ๋ ์ด์ ๋จ์ํ ๋ชจ๋ธ์ด ์๋๋ผ ์ธ๋ถ ์์คํ ์ ๋ถ์์ฉ์ ๋จ๊ธฐ๋ ๋ถ์ฐ ์์คํ ์ด๋ฏ๋ก, ์ฑ๊ณต๋ณด๋ค ์คํจยท์ฌ์๋ยท๊ถํยท๋ณต๊ตฌ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณํด์ผ ์์ ํ๊ฒ ์ด์ํ ์ ์๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์์คํ ์ ์ฌ๊ณ ๊ฐ ๋ง์์ ๋ ๊ฐ์ง ์ฌ๊ณ AI ์์ด์ ํธ๊ฐ ์ธ๋ถ ์์คํ ์ ๊ฑด๋๋ฆฌ๊ธฐ ์์ํ๋ฉด ์๋ชป๋ ์ถ๋ ฅ์ด ์๋๋ผ ์ค์ ์ฌ๊ณ ๊ฐ ๋ฐ์ํ๋ค. production database ์ญ์ ๋ ์๋ชป๋ ํ๋ถ์ฒ๋ผ, ๋ฐฑ์ ยท๊ถํ ์ ํยท์ ํํ source of truth ์กฐํ๋ฅผ ๋๋ฉด ์๋น์ ์ฌ๊ณ ๋ฅผ ์๋ฐฉํ ์ ์๋ค.
-
2:33
์ํคํ ์ฒ ๊ฒฝ๊ณ๊ฐ ๋ชจ๋ธ ๋ฐ์ผ๋ก ๋๊ฐ ์๊ฐ LLM์ด ํ ์คํธ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์์ค์ ๋์ด tool ํธ์ถ๊ณผ ์ํ ๋ณ๊ฒฝ์ ์ํํ๋ฉด์, ์ํคํ ์ฒ์ ๊ฒฝ๊ณ๋ ๋ชจ๋ธ ๋ฐ๊นฅ์ผ๋ก ์ด๋ํ๋ค. ์ด์ ๋ ์์ด์ ํธ๊ฐ ์ด๋ค ์ธ๋ถ ์์คํ , ์ํ, ์๊ฒฉ ์ฆ๋ช , ํ๋ ๊ถํ์ ๊ฐ์ง๋์ง๊ฐ ํต์ฌ ์ค๊ณ ์์๋ค.
-
3:46
ํ๋ฅ ์ ์กฐ์ ์๋ก์์ ์์ด์ ํธ ์์ด์ ํธ๋ ์ฌ๋ฌ ๋จ๊ณ ์ํฌํ๋ก๋ฅผ ์กฐ์จํ์ง๋ง, ์ ํต์ ์๋น์ค์ฒ๋ผ ๊ฒฐ์ ์ ์ด์ง ์๊ณ ํ๋ ๋ฒ์์ ๊ฒฐ๊ณผ๊ฐ ํ๋ฅ ์ ์ผ๋ก ํ๋ค๋ฆฐ๋ค. ๊ทธ๋์ ์ค์ํ ์์ ์ ๋ฐ๋์ deterministic controls๋ก ๊ฐ์ธ์ ์ํํ ํ๋์ด ๋ฐ์ผ๋ก ์์ง ์๊ฒ ํด์ผ ํ๋ค.
-
4:57
๋ฃจํ์ ๋ชจ๋ ๋จ๊ณ๋ ๊ฒฝ๊ณ๋ฅผ ๋๋๋ค ๊ณํ, ์คํ, ๊ด์ฐฐ, ์ ์ฅ, ๋ค์ ๊ฒฐ์ ์ ๊ฐ ๋จ๊ณ๋ ๋ชจ๋ ๋ฐ์ดํฐ ์์ค, API, database, ๊ธฐ๋ก ์ ์ฅ์ ๊ฐ์ ๊ฒฝ๊ณ๋ฅผ ๋๋๋ค. ๊ฐ ๋จ๊ณ๋ฅผ persistํ๊ณ ์คํจ ์ง์ ์ ์ถ์ ํ๋ฉฐ, ๋๋๋ฆด ์ ์๋ compensation๊ณผ explicit transaction์ ์ ์ํด์ผ ํ๋ค.
-
7:19
ํ์์์์ ์คํจ๊ฐ ์๋๋ผ ๋ฏธํ์ธ ์ํ๋ค ์๊ฒฉ ํธ์ถ์์ timeout์ด ๋ฐ์ํด๋ ์ค์ ๋ก ์์ ์ด ์คํจํ๋ค๋ ๋ป์ ์๋๋ฉฐ, ์ด๋ฏธ ์ฑ๊ณตํ์ง๋ง ์๋ต๋ง ๋ชป ๋ฐ์ ์ํ์ผ ์ ์๋ค. ์์ด์ ํธ๋ ์ด ๋ถํ์ค์ฑ์ ์คํจ๋ก ์ค์ธํ์ง ์๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ฉฐ, ํนํ ํ๋ถ ๊ฐ์ ๋ถ์์ฉ ์์ ์์๋ ๋ ์กฐ์ฌํด์ผ ํ๋ค.
-
8:32
Idempotency key์ ์ํ ์กฐํ ์ค๋ณต ์์ฒญ์ด ๋์ผํ ๋ถ์์ฉ์ ๋ฐ๋ณตํ์ง ์๋๋ก request id์ idempotency key๋ฅผ ๋ฃ์ด์ผ ํ๋ค. ๋ํ ์ด์ ์์ฒญ์ ์ํ๋ฅผ ์กฐํํ ์ ์์ด์ผ ์ฌ์๋ ์์๋ ์ค๋ณต side effect ์์ด ์์ ํ๊ฒ ์ด์ด๊ฐ ์ ์๋ค.
-
9:42
์ฌ์๋ ํญ์ฃผ, backoff, ์์ฐ ์์ด์ ํธ์ ๊ธฐ๋ณธ ๋ฐ์์ด ์ฌ์๋๋ผ๋ฉด external API๋ฅผ ์๋ฐํด ์ฐ์ ์ฅ์ ๋ฅผ ๋ง๋ค ์ ์๋ค. ๊ทธ๋์ max turns, max parallel calls, max spend ๊ฐ์ ์์ฐ๊ณผ exponential backoff, ํ์ํ compensation operation์ด ํจ๊ป ์์ด์ผ ํ๋ค.
-
10:57
ํ๋์ ์ํฅ์ ์ฃผ๋ ์ปจํ ์คํธ๋ ์ํ๋ค ์์ด์ ํธ์ ์ปจํ ์คํธ๊ฐ ๋ค์ ํ๋์ ์ํฅ์ ์ฃผ๋ ์๊ฐ ๊ทธ๊ฒ์ ๋จ์ํ ๋ฌธ๋งฅ์ด ์๋๋ผ ์ํ๋ค. short-term memory์ long-term memory๋ฅผ ๊ตฌ๋ถํ๊ณ , conflicting data๊ฐ ์๊ธฐ๋ฉด memory๋ฅผ cache์ฒ๋ผ ์ทจ๊ธํด source of truth ๊ฐฑ์ ์ ๋ฌดํจํํด์ผ ํ๋ค.
-
12:08
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์บ์๋ก ๋ค๋ฃจ๊ธฐ ๋ฉํฐ์คํ ์์ ์ด ์ค๊ฐ์ ์คํจํ๋ฉด ๋ด๋ถ ticket ์์ , ์ด๋ฉ์ผ ๋ฐ์ก, CRM ๊ฐฑ์ ์ฒ๋ผ ์ฌ๋ฌ ์์คํ ์ ๊ฑธ์น ์์ ์ ์ฒด๋ฅผ ๋๋๋ ค์ผ ํ ์ ์๋ค. ์๋ชป ๋ณด๋ธ ์ด๋ฉ์ผ์ฒ๋ผ ์ด๋ฏธ ์ธ๋ถ์ ๋๊ฐ ๋ถ์์ฉ์๋ ์ ์ ๋ฉ์ผ์ด๋ ์ฌ๊ณผ ๋ฉ์ผ ๊ฐ์ ๋ช ์์ ๋ณด์ ํ๋์ ์ ์ํด์ผ ํ๋ค.
-
13:19
์์คํ ์ ๊ฐ๋ก์ง๋ฅด๋ ๋ณด์ ํ๋ ์์ด์ ํธ๋ ์คํจ ์ ์ฌ์๋ ๋ฃจํ๋ฅผ ๋ ์ ์์ผ๋ฏ๋ก, downstream์ด ๋ถ์์ ํ ๋๋ circuit breaker๋ก ํธ์ถ์ ์ฐจ๋จํด์ผ ํ๋ค. ๋ํ rate limit๊ณผ budgets๋ฅผ ๋ฌ์ ์ฅ์ ์ ํ์ ๊ณผ๋ํ ๋น์ฉ ์ฆ๊ฐ๋ฅผ ๋ง์์ผ ํ๋ค.
-
14:36
circuit breaker, rate limit, ์ํ์ max turns, max parallelism, max spend ๊ฐ์ ์ํ์ ์์ด์ ํธ๊ฐ ์ ํด์ง budget boundary๋ฅผ ๋์ง ๋ชปํ๊ฒ ํ๋ ํต์ฌ ์์ ์ฅ์น๋ค. ๋์์ broad permission ๋์ read/write ๋ถ๋ฆฌ์ allow list๋ฅผ ์ ์ฉํด, ํ ์ ์๋ ์ผ ์์ฒด๋ฅผ ์ค์ฌ์ผ ํ๋ค.
-
15:43
์ ๋ฉด ๊ถํ๋ณด๋ค ๋ฒ์ ์ ํ๋ ์๊ฒฉ ์ฆ๋ช ๋ชจ๋ ๊ถํ์ ํ ๋ฒ์ ์ฃผ๋ฉด harmless model๋ unsafe operation์ ์ํํ๋ ์ํํ ์ฃผ์ฒด๊ฐ ๋ ์ ์๋ค. ์น์ธ ์ญ์ action, timestamp, actor, expiration์ ๋ฌถ์ด์ผ ํ๋ฉฐ, $30 refund ์น์ธ์ด $300 refund๋ก ํ์ฅ๋์ง ์๊ฒ ํด์ผ ํ๋ค.
-
16:51
๋ก๊ทธ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์๋ค ์์ด์ ํธ ์คํจ๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ค๋ฉด model, prompt, tool call, request/response, error, retrieved context, approval๊น์ง ์ถ์ ํด์ผ ํ๋ค. logs๋ง์ผ๋ก๋ ์ ๊ทธ๋ฐ ํ๋์ ํ๋์ง ์๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ observability์ trace๊ฐ ํ์๋ค.
-
19:20
ํ๋ ธ์ ๋ ์์คํ ์ด ๋ฌด์์ ํ์ฉํ๋๊ฐ ์ข์ ๋ชจ๋ธ์ ์ค์๋ฅผ ์ค์ด์ง๋ง network failures, stale data, adversarial input์ ์์ ์ง๋ ๋ชปํ๋ค. ๊ฒฐ๊ตญ ํต์ฌ์ ์์ด์ ํธ๊ฐ ํ๋ ธ์ ๋๋ ๋ฌด์์ ํ ์ ์๊ณ , ๋ฌด์์ ๋ชป ํ๊ฒ ๋ง์์ผ๋ฉฐ, ์ด๋ป๊ฒ ๋ณต๊ตฌํ ์ ์๋์ง๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ ์ค๊ณ๋ ๋ชจ๋ธ ์ฑ๋ฅ๋ณด๋ค ๋ถ์์ฉ ํต์ , ์ฌ์๋ ์ ์ฑ , ๊ถํ ๋ฒ์, ๋ณต๊ตฌ ๊ฒฝ๋ก๋ฅผ ๋จผ์ ์ ํ๋ ์ชฝ์ด ์ค๋ฌด์ ์ผ๋ก ์์ ํ๋ค.
- tool ๊ณ์ฝ์ idempotency, ์ํ ์กฐํ, ๋ช ์์ compensation์ ํฌํจํ๋ฉด timeout๊ณผ ์ค๋ณต ํธ์ถ์ด ๋ง์ ์ค์ ํ๊ฒฝ์์ ์ฅ์ ๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์๋ค.
- ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ๋ ์ง์ค์ ์์ฒ์ด ์๋๋ผ cache๋ก ๋ณด๊ณ , source of truth๊ฐ ๋ฐ๋๋ฉด ์ฆ์ ๋ฌดํจํํ๋ ์ด์ ๊ท์น์ ๋๋ ๊ฒ์ด ์ค์ํ๋ค.