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

Paving the Road to Production: Governed Enterprise AI Agents โ€” Harish Gaggar, Credit Karma

AI Engineer ยท 2026-10-15 02:00 ยท 29:27

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

์‹คํ—˜์šฉ AI agent๋ฅผ ๊ธฐ์—… ํ™˜๊ฒฝ์— ์˜ฌ๋ฆฌ๋ ค๋ฉด ๋‹จ์ผ agent๋ณด๋‹ค MCP ๊ฒŒ์ดํŠธ์›จ์ด, ๋ณด์•ˆ, ๊ด€์ธก์„ฑ, ๋ฉ”๋ชจ๋ฆฌ, ํ‰๊ฐ€, ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”๋ฅผ ๋ฌถ์€ ํ‘œ์ค€ํ™”๋œ ์šด์˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋จผ์ € ํ•„์š”ํ•˜๋‹ค.

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

  1. 0:00
    ์‹คํ—˜์—์„œ ๊ธฐ์—…์šฉ agent๋กœ์˜ ์ „ํ™˜ AI agent๋ฅผ ์‹ค์ œ ๊ธฐ์—… ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋‹จ์ˆœํ•œ ๋ฐ๋ชจ๊ฐ€ ์•„๋‹ˆ๋ผ production์„ ์ง€ํƒฑํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ „์ฒด ํ๋ฆ„์€ agent ํ”„๋ ˆ์ž„์›Œํฌ, MCP gateway์™€ MCP server, ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฉ”๋ชจ๋ฆฌ, ํ‰๊ฐ€, PII ์ฐจ๋‹จ, ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  2. 1:28
    ๋ˆ„๋ฝ๋œ ์šด์˜ ๊ธฐ๋ฐ˜ production ์‹คํŒจ์˜ ํ•ต์‹ฌ ์›์ธ์€ ์ธ์ฆยท๋ผ์šฐํŒ…ยท์ถ”์ ยทํ‰๊ฐ€ยท๋ฉ”๋ชจ๋ฆฌยท๋น„๋ฐ€์ •๋ณด ์ฐจ๋‹จ ๊ฐ™์€ ๊ธฐ๋ณธ ํ†ต์ œ๊ฐ€ ๋น ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. agent๊ฐ€ ์˜ค๋ž˜ ๋Œ€ํ™”ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์“ฐ๋Š” ์ƒํ™ฉ์ผ์ˆ˜๋ก ์ด ๊ธฐ๋ฐ˜์ด ์—†์œผ๋ฉด ํ’ˆ์งˆ๊ณผ ์•ˆ์ „์„ฑ์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง„๋‹ค.
  3. 2:54
    agent์™€ ์ง€์› ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ agent๋Š” LangGraph๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ๊ทธ ์ฃผ๋ณ€์— MCP gateway, ์ปค์Šคํ…€ MCP server, ๊ฐ์‚ฌ(audit), PII ์ฐจ๋‹จ, tracking/eval, memory, context optimizer๋ฅผ ๋ถ™์ด๋Š” ๊ตฌ์กฐ๊ฐ€ ์ œ์‹œ๋œ๋‹ค. ์ฆ‰ agent ์ž์ฒด๋ณด๋‹ค ์ฃผ๋ณ€ ์šด์˜ ์ฒด๊ณ„๊ฐ€ ์ „์ฒด ์‹ ๋ขฐ์„ฑ์„ ์ขŒ์šฐํ•œ๋‹ค.
  4. 4:06
    ๋“ฑ๋ก, ๋กœ์ปฌ ๊ฐœ๋ฐœ, ํ‘œ์ค€ ๊ฒฝ๋กœ agent๋Š” ๋จผ์ € ์ค‘์•™ ์‹œ์Šคํ…œ์— ๋“ฑ๋ก๋˜์–ด ์šฉ๋„์™€ ID๊ฐ€ ๋ฐœ๊ธ‰๋˜๊ณ , ๊ฐœ๋ฐœ ํฌํ„ธ์ด LangGraph, ์–ธ์–ด, skills, prompts๋ฅผ ํฌํ•จํ•œ ํ‘œ์ค€ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ฅผ ๋กœ์ปฌ์—์„œ Docker์™€ container๋กœ ๊ฒ€์ฆํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌยทํ‰๊ฐ€ยทPII ์ฐจ๋‹จ๊นŒ์ง€ ํฌํ•จ๋œ ์ผ๊ด€๋œ ๊ณจ๊ฒฉ ์œ„์—์„œ ์ž‘์—…ํ•œ๋‹ค.
  5. 6:27
    ๋ฆฌ๋ทฐ, ์ปจํ…Œ์ด๋„ˆ, Kubernetes ๋ฐฐํฌ ๋กœ์ปฌ ๊ฒ€์ฆ ํ›„ PR๊ณผ 2์ธ ์Šน์ธ, CI/CD๋ฅผ ๊ฑฐ์ณ production ์ด๋ฏธ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ์ทจ์•ฝ์  ๊ฒ€์‚ฌ๋„ ์ˆ˜ํ–‰๋œ๋‹ค. ๋ฐฐํฌ ํ”Œ๋žซํผ์€ Kubernetes namespace์— agent๋ฅผ ์˜ฌ๋ฆฌ๋ฉด์„œ workload identity, memory DB, tracking/eval ํ…Œ์ด๋ธ”, secret ๊ด€๋ฆฌ๊นŒ์ง€ ํ•จ๊ป˜ ์ƒ์„ฑํ•ด ์‹คํ–‰ ์ค€๋น„๋ฅผ ๋๋‚ธ๋‹ค.
  6. 8:14
    ๊ฒ€ํ† ๋œ ์ปค์Šคํ…€ MCP ์„œ๋ฒ„ air-gapped ํ™˜๊ฒฝ์—์„œ๋Š” ์™ธ๋ถ€ MCP server ๋Œ€์‹  ์ž์ฒด MCP server๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋œ๋‹ค. ๋‚ด๋ถ€ ๋ณด์•ˆํŒ€์ด ๋„๊ตฌ ์ •์˜๋ฅผ ๊ฒ€ํ† ํ•ด ์Šน์ธ๋œ tool๋งŒ ๋ฐฐํฌํ•˜๊ณ , ๋ถˆํ•„์š”ํ•œ ํ•„๋“œ์™€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจ๋‹จํ•ด ํ—ˆ์šฉ๋œ ์ •๋ณด๋งŒ LLM๊ณผ ์˜ค๊ฐ€๋„๋ก ํ•œ๋‹ค.
  7. 9:47
    MCP ๊ฒŒ์ดํŠธ์›จ์ด ์ธ์ฆ๊ณผ ๋ผ์šฐํŒ… ์ฒซ ์š”์ฒญ์—์„œ MCP gateway๊ฐ€ ์„ธ์…˜์„ Redis์— ์ €์žฅํ•˜๊ณ  JWT๋ฅผ ๋ฐœ๊ธ‰ํ•œ ๋’ค, ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ ์ ˆํ•œ namespace์˜ MCP server๋กœ ๋ผ์šฐํŒ…ํ•œ๋‹ค. gateway๋Š” ์ค‘์•™ ์ธ์ฆ ํ—ˆ๋ธŒ์ด์ž ๋ผ์šฐํŒ… ํ—ˆ๋ธŒ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, endpoint์— ๋Œ€ํ•œ ์ง์ ‘ ์ ‘๊ทผ์„ ๋ง‰๊ณ  ๋ชจ๋“  ํ˜ธ์ถœ์„ ํ†ต์ œํ•œ๋‹ค.
  8. 11:48
    ๋กœ๊ทธ, ์ถ”์ , ๊ฒŒ์ดํŠธ์›จ์ด ๋ฉ”ํŠธ๋ฆญ ์šด์˜ ๋กœ๊ทธ๋Š” ELK, Loki, CloudWatch ๊ฐ™์€ ์ €์žฅ์†Œ๋กœ ๋ณด๋‚ด๊ณ , tracing๊ณผ metrics๋Š” OpenTelemetry๋ฅผ ํ†ตํ•ด Tempo์™€ Prometheus์— ๊ธฐ๋กํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ชจ์ธ ๋ฐ์ดํ„ฐ๋กœ ๋А๋ฆฐ tool, ์ธ์ฆ ์‹คํŒจ, P95 latency, ์˜ค๋ฅ˜ ์›์ธ, ํ˜ธ์ถœ ์ถœ์ฒ˜๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ด€์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.
  9. 14:01
    LangGraph ์ •์ฑ…๊ณผ ์‚ฌ๋žŒ ์Šน์ธ LangGraph๋Š” ๊ณ„ํš, ๋ถ„๊ธฐ, ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋กœ ๋ณต์žกํ•œ agent ํ๋ฆ„์„ ๊ตฌ์„ฑํ•œ๋‹ค. ์š”์ฒญ์€ ๋จผ์ € ํ•ด์„ยท๋ถ„๋ฅ˜๋œ ๋’ค read-only์ธ์ง€, ์ˆ˜์ •ยท์‚ญ์ œ์ธ์ง€, ๋ฏผ๊ฐ ์ž‘์—…์ธ์ง€์— ๋”ฐ๋ผ ์ •์ฑ…์ด ๋‹ฌ๋ผ์ง€๋ฉฐ, ๊ณ ์œ„ํ—˜ ์ž‘์—…์€ HITL ์Šน์ธ ํ›„์—๋งŒ ์‹คํ–‰๋œ๋‹ค.
  10. 16:59
    ์Šค๋ ˆ๋“œ, ์‹คํ–‰, ๋ฉ”๋ชจ๋ฆฌ ์ฒดํฌํฌ์ธํŠธ agent ๋ฉ”๋ชจ๋ฆฌ๋Š” thread์™€ run ID, checkpoint๋ฅผ ํ†ตํ•ด ๋Œ€ํ™” ์ƒํƒœ๋ฅผ ์ €์žฅยท๋ณต์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค. SQLite๋กœ ๋กœ์ปฌ์„, Cloud Spanner ๊ฐ™์€ DB๋กœ production์„ ์ง€์›ํ•˜๋ฉฐ, ์‹คํ–‰ ์ด๋ ฅ๊ณผ ๋…ธ๋“œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•ด ์žฅ๊ธฐ ๋Œ€ํ™”์—์„œ๋„ ๋งฅ๋ฝ์„ ์œ ์ง€ํ•œ๋‹ค.
  11. 19:48
    agent ์ถ”์ ๊ณผ ํ‰๊ฐ€ ๊ธฐ๋ก agent ์ˆ˜์ค€์˜ tracking/eval์€ ์ฟผ๋ฆฌ, ์‘๋‹ต, ๋ชจ๋ธ, ํ† ํฐ ๋น„์šฉ, ํ’ˆ์งˆ ์ ์ˆ˜, tool invocation, node trajectory๋ฅผ ๋ชจ๋‘ ๊ธฐ๋กํ•˜๋Š” ์ฒด๊ณ„๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋Š” ๋Œ€๊ทœ๋ชจ agent ํฌํŠธํด๋ฆฌ์˜ค์˜ ์„ฑ๊ณผ, ํ’ˆ์งˆ, ROI๋ฅผ ๋‚˜์ค‘์— ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ง‘๊ณ„ํ•˜๋Š” ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค.
  12. 23:27
    ๋ฏผ๊ฐํ•œ ์ž…๋ ฅ ํ•„ํ„ฐ๋ง ๋ฌธ์„œ ์—…๋กœ๋“œ๋‚˜ ์ž์—ฐ์–ด ์ž…๋ ฅ์— API key, ๋น„๋ฐ€์ •๋ณด, ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ž์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž…๋ ฅ ๋‹จ๊ณ„์—์„œ ์ฆ‰์‹œ ํƒ์ง€ยท๋งˆ์Šคํ‚นํ•ด์•ผ ํ•œ๋‹ค. ๋ฏผ๊ฐ๋„ ๊ธฐ์ค€์ด ์ผ์ • ์ˆ˜์ค€์„ ๋„˜์œผ๋ฉด LLM, memory DB, tracking/eval, tracing ์–ด๋””์—๋„ ์ „๋‹ฌ๋˜์ง€ ์•Š๋„๋ก ์ฐจ๋‹จํ•œ๋‹ค.
  13. 24:25
    ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”์™€ ํ† ํฐ ์ ˆ๊ฐ ์‹œ์—ฐ context optimizer๋Š” ์ž…๋ ฅ์„ pruning, rerank, dedupe, compressํ•ด์„œ LLM์— ๋ณด๋‚ผ payload๋ฅผ ์ค„์ธ๋‹ค. ๋™์ผํ•œ ์งˆ๋ฌธ์—์„œ๋„ 24,000 token์ด 2,400 token ์ˆ˜์ค€์œผ๋กœ ์ค„์–ด๋“œ๋Š” ์‹œ์—ฐ์ด ์ œ์‹œ๋˜๋ฉฐ, ๋Œ€๊ทœ๋ชจ agent ์šด์˜์—์„œ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ๊ฐ€ ํฌ๋‹ค.
  14. 27:33
    ๋ชจ๋“  agent ์ฃผ๋ณ€์— ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์ถ•ํ•˜๊ธฐ ํ•ต์‹ฌ์€ ๋น ๋ฅด๊ฒŒ agent ํ•˜๋‚˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, gatewayยท๋ณด์•ˆยท๊ด€์ธก์„ฑยท์Šน์ธยท๋ฉ”๋ชจ๋ฆฌยท์ปจํ…์ŠคํŠธ ์ ˆ๊ฐ๊นŒ์ง€ ํฌํ•จํ•œ enterprise framework๋ฅผ ํ•จ๊ป˜ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ชจ๋“  ๋„๊ตฌ ํ˜ธ์ถœ์€ ์ค‘์•™ MCP gateway๋ฅผ ๊ฑฐ์น˜๊ณ , ๊ณ ์œ„ํ—˜ ์ž‘์—…์€ ์‚ฌ๋žŒ ์Šน์ธ๊ณผ ๊ฐ์‚ฌ ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋ฉฐ, ํ† ํฐ ๋น„์šฉ์€ ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

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

  • production agent๋Š” ๋ชจ๋ธ ์„ฑ๋Šฅ๋ณด๋‹ค ์ธ์ฆ, ๋ผ์šฐํŒ…, ๊ฐ์‚ฌ, ํ‰๊ฐ€, ๋ฉ”๋ชจ๋ฆฌ ๊ฐ™์€ ์šด์˜ ๊ธฐ๋ฐ˜์ด ๋จผ์ € ๊ฐ–์ถฐ์ ธ์•ผ ์•ˆ์ •์ ์œผ๋กœ ๊ตด๋Ÿฌ๊ฐ„๋‹ค.
  • MCP gateway๋ฅผ ์ค‘์•™ ํ†ต์ œ ์ง€์ ์œผ๋กœ ๋‘๋ฉด ๋„๊ตฌ ์ ‘๊ทผ, ๊ถŒํ•œ, ๋ผ์šฐํŒ…, ๊ด€์ธก์„ฑ์„ ํ•œ๊ณณ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ๊ณผ ์šด์˜ ํšจ์œจ์ด ํ•จ๊ป˜ ์˜ฌ๋ผ๊ฐ„๋‹ค.
  • ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”์™€ ๋ฏผ๊ฐ์ •๋ณด ์ฐจ๋‹จ์€ ๋‹จ์ˆœ ๋น„์šฉ ์ ˆ๊ฐ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ, ๋Œ€๊ทœ๋ชจ agent ์šด์˜์—์„œ ์‚ฌ๊ณ ์™€ ๋น„์šฉ์„ ๋™์‹œ์— ์ค„์ด๋Š” ํ•„์ˆ˜ ์•ˆ์ „์žฅ์น˜๋‹ค.