8๋จ๊ณ Pipeline๊ณผ 3๊ณ์ธต Memory ๊ธฐ๋ฐ Multi-tenant AI Gateway ์ค๊ณ
๐ฆGoClaw Deep Dive ๐ค โ A Builder's Guide to a Multi-Tenant AI Agent Platform ๐
AI ์์ฝ
Context
๋จ์ LLM Wrapper์ ํ๊ณ๋ฅผ ๋์ด ๋ค์์ ์ ๊ณต์์ ์ฑ๋์ ํตํฉ ๊ด๋ฆฌํ๋ ํ์ฅ ๊ฐ๋ฅํ Agent Gateway ํ์์ฑ ๋๋. ๊ธฐ์กด ๋จ์ผ ๋ฃจํ ๊ตฌ์กฐ์ ๋ณต์ก๋ ์ฆ๊ฐ๋ก ์ธํ ์ ์ง๋ณด์ ์ด๋ ค์๊ณผ ๋ฉํฐํ ๋์ ๋ณด์ ๊ฒฉ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํจ.
Technical Solution
- Monolithic Loop๋ฅผ 8๊ฐ์ ๋ ๋ฆฝ์ ์ธ Stage ์ธํฐํ์ด์ค๋ก ๋ถ๋ฆฌํ์ฌ ๊ธฐ๋ฅ ํ์ฅ์ฑ๊ณผ ๊ฐ๋ณ ํ ์คํธ ๊ฐ๋ฅ์ฑ์ ํ๋ณดํ Pluggable Pipeline ๊ตฌ์กฐ ์ค๊ณ
- 20๊ฐ ์ด์์ LLM Provider๋ฅผ ๋จ์ผ Interface๋ก ์ถ์ํํ์ฌ ๋ฒค๋ ์ข ์์ฑ์ ์ ๊ฑฐํ๊ณ ๋ฐํ์ ๊ต์ฒด๊ฐ ๊ฐ๋ฅํ ๊ตฌ์กฐ ๊ตฌํ
- Working/Episodic/Semantic์ 3-tier Memory ์ํคํ ์ฒ์ BM25+Vector ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์์ ํตํ ์ปจํ ์คํธ ์ต์ ํ
- DB ๋ ๋ฒจ์ tenant_id ๊ฐ์ ์ ์ฉ๊ณผ context.Context ๊ธฐ๋ฐ์ ํ ๋ํธ ์ ํ๋ฅผ ํตํ ๊ธฐ๋ณธ ๊ฒฉ๋ฆฌ(Isolation by Default) ์ ๋ต ์ฑํ
- Parallel Tool Execution์ ํตํ ๋ค์ค ๋๊ตฌ ํธ์ถ ์์ Latency ๊ฐ์ ๋ฐ context window 75% ๋๋ฌ ์ ์๋ ์์ฝ(Compaction) ๋ก์ง ์ ์ฉ
- 5๊ณ์ธต Defense-in-Depth ๋ณด์ ๋ชจ๋ธ์ ํตํด Credential Scrubbing ๋ฐ SSRF/Shell-deny ๊ฐ๋๋ ์ผ ๊ตฌ์ถ
์ค์ฒ ํฌ์ธํธ
- ๋ณต์กํ ์กฐ๊ฑด ๋ถ๊ธฐ๊ฐ 3๊ฐ ์ด์์ธ ๋ฃจํ๋ Stage ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ํ์ดํ๋ผ์ธ์ผ๋ก ๋ถ๋ฆฌํ ๊ฒ - ๋ชจ๋ ์ธ๋ถ ์ฐ๋ ๋ชจ๋(Provider, Store, Channel)์ ์ธํฐํ์ด์ค๋ก ์ถ์ํํ์ฌ Mock ํ ์คํธ ํ๊ฒฝ์ ๊ตฌ์ถํ ๊ฒ - ๋ฉํฐํ ๋์ ๊ตฌํ ์ ๋ชจ๋ ์ฟผ๋ฆฌ์ tenant_id๋ฅผ ํฌํจํ๋ ๊ฐ์ ๋ฉ์ปค๋์ฆ์ ์ ์ฉํ ๊ฒ - LLM ์ปจํ ์คํธ ์ค๋ฒํ๋ก์ฐ ๋ฐฉ์ง๋ฅผ ์ํด ์๋์ฐ ์ฌ์ฉ๋์ ๋ฐ๋ฅธ ๋จ๊ณ์ Pruning ์ ๋ต์ ์๋ฆฝํ ๊ฒ