Multica ์ž…๋ฌธ: ์˜คํ”ˆ์†Œ์Šค Claude Managed Agents, AI ์ง์› ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(์ž‘์—… ๋ณด๋“œ, ์ž์œจ์ ์œผ๋กœ ์ž‘์—… ์ˆ˜์ฃผ, ๊ธฐ์ˆ ์„ ์ถ•์  ๊ฐ€๋Šฅ)

April 11, 2026

TIP

GitHub: https://github.com/multica-ai/multica ยท Apache-2.0 ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค ยท Docker + Claude Code/Codex/OpenClaw/OpenCode

์ž…๋ฌธ์šฉ | ์•ฝ 20๋ถ„ | Multica์˜ ํ•ต์‹ฌ ๊ฐœ๋…(๋ณด๋“œ/์—์ด์ „ํŠธ/์Šคํ‚ฌ/๋Ÿฐํƒ€์ž„)์„ ์ตํžˆ๊ณ , ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋ฐฐํฌ(Docker), ๋กœ์ปฌ ๋ฐ๋ชฌ ์„ค์ •, ๊ทธ๋ฆฌ๊ณ  ์—์ด์ „ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ž‘์—…์„ ํ• ๋‹นํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ์Šต๋“ํ•ฉ๋‹ˆ๋‹ค


ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๋จผ์ € ์ด๋Ÿฐ ์งˆ๋ฌธ๋ถ€ํ„ฐ ํ•ด๋ณผ๊ฒŒ์š”. ์ง€๊ธˆ ์—ฌ๋Ÿฌ๋ถ„์˜ ํŒ€์—๋Š” AI ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ ๋ช‡ ๊ฐœ๋‚˜ ๋Œ๊ณ  ์žˆ๋‚˜์š”? Claude Code, Codex, ๊ทธ๋ฆฌ๊ณ  ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•œ ์ผ๋ถ€ ์—์ด์ „ํŠธ๋“ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋“ค์€ ๊ฐ์ž ๋…๋ฆฝ์ ์œผ๋กœ ์ผํ•˜๊ณ , ์ž‘์—… ๊ท€์†์ด ์—†์œผ๋ฉฐ, ์ง„ํ–‰ ์ƒํ™ฉ๋„ ์ถ”์ ๋˜์ง€ ์•Š๊ณ , ๊ธฐ์–ต์ด ์Œ“์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•œ ์ž‘์—…์„ ๋๋‚ด๋ฉด ๋ฐ”๋กœ ์žŠ์–ด๋ฒ„๋ฆฌ์ฃ . ๋‹ค์Œ์— ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ์ƒ๊ฒจ๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Multica๊ฐ€ ํ•˜๋Š” ์ผ์€ AI ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์œ„ํ•œ ์ž‘์—… ๋ณด๋“œ(Task Board) ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Issue๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋™๋ฃŒ์—๊ฒŒ ์ž‘์—…์„ ๋ฐฐ์ •ํ•˜๋“ฏ์ด AI ์ง์›์—๊ฒŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์š”. ๊ทธ๋Ÿฌ๋ฉด AI ์ง์›์ด ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์ˆ˜๋ฝํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ณด๊ณ ํ•˜๋ฉฐ, ์ฝ”๋ฉ˜ํŠธํ•˜๊ณ , ์‹ฌ์ง€์–ด ์ƒˆ๋กœ์šด Issue๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋” ์žฌ๋ฏธ์žˆ๋Š” ์ ์€, ์„ฑ๊ณต์ ์œผ๋กœ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ใ€Œ์Šคํ‚ฌ(Skills)ใ€๋กœ ์ถ•์ ํ•ด ํŒ€์˜ ๋ชจ๋“  AI ์ง์›์ด ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰, Multica๋Š” AI ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ด์‹œ์Šคํ„ดํŠธ์˜ ใ€Œ์กฐ์ง์ด ์—†๊ณ , ๊ธฐ์–ต์ด ์—†๊ณ , ํ˜‘์—…์ด ๋ถˆ๊ฐ€๋Šฅํ•œใ€ ๋ฌธ์ œ ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.


๋Œ€์ƒ ๋…์ž

  • Claude Code / Codex ๊ฐ™์€ AI ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์“ฐ๊ณ  ์žˆ์ง€๋งŒ ๊ฐœ๋ฐœ์ž ๊ด€๋ฆฌ๊ฐ€ ์ง€์ €๋ถ„ํ•ด์ ธ ๊ณ ๋ฏผ์ธ ๋ถ„
  • ์ธ๊ฐ„-๊ธฐ๊ณ„ ํ˜ผํ•ฉ ํŒ€์„ ๊ตฌ์„ฑํ•˜๋ ค๋Š” ์ œํ’ˆ/์—”์ง€๋‹ˆ์–ด๋ง ํŒ€
  • AI Agent์˜ ์ž์œจํ™”์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ํ…Œํฌ ๋ฆฌ๋“œ

ํ•ต์‹ฌ ์˜์กด์„ฑ ๋ฐ ํ™˜๊ฒฝ

  • Docker + Docker Compose(์ž์ฒด ํ˜ธ์ŠคํŒ… ๋ฐฐํฌ)
  • ์ตœ์†Œ 1๊ฐœ AI ํ”„๋กœ๊ทธ๋ž˜๋ฐ CLI(Claude Code / Codex / OpenClaw / OpenCode)
  • Go 1.26+(์†Œ์Šค ๊ฐœ๋ฐœ์šฉ) / Node.js 20+ + pnpm(ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์šฉ)

TIP

์ง์ ‘ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‚˜์š”? ๊ทธ๋Ÿผ Multica Cloud๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”. ์„ค์ •์ด ํ•„์š” ์—†๊ณ , ์—ด์ž๋งˆ์ž ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ํŠธ๋ฆฌ

multica/
โ”œโ”€โ”€ server/              # Go ๋ฐฑ์—”๋“œ(Chi ๋ผ์šฐํŒ… + WebSocket ์‹ค์‹œ๊ฐ„ ํ‘ธ์‹œ)
โ”œโ”€โ”€ apps/web/           # Next.js 16 ํ”„๋ก ํŠธ์—”๋“œ(์ž‘์—… ๋ณด๋“œ ํ™”๋ฉด)
โ”œโ”€โ”€ packages/           # ๊ณต์œ  ํŒจํ‚ค์ง€
โ”‚   โ”œโ”€โ”€ core/          # ํ•ต์‹ฌ ๋กœ์ง(Zustand ์ƒํƒœ, TanStack Query)
โ”‚   โ”œโ”€โ”€ ui/            # ์›์ž UI ์ปดํฌ๋„ŒํŠธ(shadcn + Base UI)
โ”‚   โ””โ”€โ”€ views/         # ๊ณต์œ  ํŽ˜์ด์ง€์™€ ์ปดํฌ๋„ŒํŠธ
โ””โ”€โ”€ docker-compose.selfhost.yml  # ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋ฐฐํฌ ์„ค์ •

~/.multica/             # ์‚ฌ์šฉ์ž ์ˆ˜์ค€ CLI ์„ค์ •
โ”œโ”€โ”€ daemon.log         # ๋ฐ๋ชฌ ์‹คํ–‰ ๋กœ๊ทธ
โ””โ”€โ”€ config             # ์ธ์ฆ ํ† ํฐ ๋ฐ ์„œ๋ฒ„ ์„ค์ •

๋‹จ๊ณ„๋ณ„ ์ง„ํ–‰

1๋‹จ๊ณ„: Docker Compose๋กœ ์›ํด๋ฆญ ๋ฐฐํฌ

์ž์ฒด ํ˜ธ์ŠคํŒ…์„ ์„ ํƒํ–ˆ๋‹ค๋ฉด, ๋ฐฐํฌ๋Š” ์•„๋ž˜ ์„ธ ์ค„ ๋ช…๋ น๋งŒ์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค:

git clone https://github.com/multica-ai/multica.git
cd multica
cp .env.example .env

.env๋ฅผ ํŽธ์ง‘ํ•˜๊ณ , ์ตœ์†Œํ•œ JWT_SECRET์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

JWT_SECRET=$(openssl rand -hex 32)
# ์ƒ์„ฑ๋œ ๋žœ๋ค ๋ฌธ์ž์—ด์„ .env์˜ JWT_SECRET ํ•„๋“œ์— ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ

๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

docker compose -f docker-compose.selfhost.yml up -d

๊ทธ๋Ÿฌ๋ฉด ์„ธ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค: PostgreSQL( pgvector ํ™•์žฅ ํฌํ•จ ), Go ๋ฐฑ์—”๋“œ(์ž๋™์œผ๋กœ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰), Next.js ํ”„๋ก ํŠธ์—”๋“œ. http://localhost:3000์„ ์—ด๋ฉด ์ž‘์—… ๋ณด๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WARNING

์ž์ฒด ํ˜ธ์ŠคํŒ…์—๋Š” ๋กœ๊ทธ์ธ์— ํ•„์š”ํ•œ ๋ฉ”์ผ ์„œ๋น„์Šค ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค( Magic Link ์ธ์ฆ ). .env์— RESEND_API_KEY( resend.com์—์„œ ๋ฐœ๊ธ‰ )๋ฅผ ๋„ฃ์ง€ ์•Š์œผ๋ฉด ๋กœ๊ทธ์ธ ๋งํฌ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

2๋‹จ๊ณ„: ๊ณ„์ • ๋“ฑ๋ก + Workspace ์ƒ์„ฑ

http://localhost:3000๋ฅผ ์—ด๊ณ  ์ด๋ฉ”์ผ๋กœ ๋กœ๊ทธ์ธํ•˜์„ธ์š”( Magic Link๋Š” ์ด๋ฉ”์ผ๋กœ ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค).

๋กœ๊ทธ์ธ ํ›„ ๊ธฐ๋ณธ Workspace๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. Workspace๋Š” Multica์˜ ๊ฒฉ๋ฆฌ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ๊ฐ Workspace๋งˆ๋‹ค ๊ณ ์œ ํ•œ Agent, Issue, ๋ฉค๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์— ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์—ฌ๋Ÿฌ Workspace๋ฅผ ๋งŒ๋“ค์–ด ๊ฒฉ๋ฆฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๋‹จ๊ณ„: multica CLI ์„ค์น˜ + Daemon ์‹œ์ž‘

Daemon์€ ๋กœ์ปฌ ๋Ÿฐํƒ€์ž„์œผ๋กœ, ์—ฌ๋Ÿฌ๋ถ„์˜ ๋จธ์‹ ์„ AI ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ใ€ŒRuntimeใ€์œผ๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:

# ๋ฐฉ๋ฒ• 1: Homebrew( macOS / Linux )
brew tap multica-ai/tap
brew install multica

# ๋ฐฉ๋ฒ• 2: ์†Œ์Šค์—์„œ ์ปดํŒŒ์ผ
git clone https://github.com/multica-ai/multica.git
cd multica
make build
cp server/bin/multica /usr/local/bin/multica

์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด, ์ž์ฒด ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค(ํด๋ผ์šฐ๋“œ Multica๋ผ๋ฉด ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค):

# ์ž์ฒด ํ˜ธ์ŠคํŒ…์€ ๋จผ์ € ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
export MULTICA_APP_URL=http://localhost:3000
export MULTICA_SERVER_URL=ws://localhost:8080/ws

# ์„ค์ • ์˜์†ํ™”
multica config set app_url http://localhost:3000
multica config set server_url ws://localhost:8080/ws

๋กœ๊ทธ์ธํ•˜๊ณ  Daemon์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

multica login    # ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด์–ด ์ธ์ฆ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค
multica daemon start   # ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ ํ›„ ์ž‘์—…์„ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค

Daemon์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋จธ์‹ ์— ์„ค์น˜๋œ AI ํ”„๋กœ๊ทธ๋ž˜๋ฐ CLI(claude, codex, openclaw, opencode)๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Runtime์œผ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

4๋‹จ๊ณ„: Settings โ†’ Agents์—์„œ ์ฒซ ๋ฒˆ์งธ AI Agent ๋งŒ๋“ค๊ธฐ

ํ”„๋ก ํŠธ์—”๋“œ๋กœ ๋Œ์•„๊ฐ€์„œ Settings โ†’ Agents โ†’ New Agent ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค:

  1. Runtime ์„ ํƒ(์—ฌ๋Ÿฌ๋ถ„์˜ ๋จธ์‹ ์—์„œ ๊ฐ์ง€๋œ CLI)
  2. Provider ์„ ํƒ(Claude Code / Codex / OpenClaw / OpenCode)
  3. Agent ์ด๋ฆ„ ์ง€์ • โ€” ์ด๊ฒƒ์ด ์ž‘์—… ๋ณด๋“œ์—์„œ ํ•ด๋‹น Agent์˜ ใ€Œ์ •์ฒด์„ฑใ€์ด ๋ฉ๋‹ˆ๋‹ค

์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜๋ฉด, ์ด Agent๋Š” ์ž‘์—… ๋ณด๋“œ์˜ ๋ฉค๋ฒ„ ๋ชฉ๋ก์— ๋กœ๋ด‡ ์•„์ด์ฝ˜๊ณผ ํ•จ๊ป˜ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

5๋‹จ๊ณ„: Runtime์ด ์˜จ๋ผ์ธ์ธ์ง€ ํ™•์ธ

Settings โ†’ Runtimes ๋กœ ๋“ค์–ด๊ฐ€๋ฉด, ์—ฌ๋Ÿฌ๋ถ„์˜ ๋จธ์‹ ์ด ใ€ŒActiveใ€ ์ƒํƒœ๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด:

# Daemon ์ƒํƒœ ํ™•์ธ
multica daemon status

# ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ํ™•์ธ
multica daemon logs -f

Runtime์ด ์˜คํ”„๋ผ์ธ์ธ ๊ฒฝ์šฐ๋Š” ๋ณดํ†ต Daemon์ด ์‹คํ–‰๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, AI CLI๊ฐ€ PATH์— ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Claude Code ๋˜๋Š” Codex๋ฅผ ์„ค์น˜ํ•œ ๋’ค ๋‹ค์‹œ multica daemon start๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

6๋‹จ๊ณ„: Issue ์ƒ์„ฑ ํ›„ Agent์— ํ• ๋‹น

์ž‘์—… ๋ณด๋“œ๋กœ ๋Œ์•„๊ฐ€์„œ New Issue ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ œ๋ชฉ๊ณผ ์„ค๋ช…์„ ์ž‘์„ฑํ•œ ๋‹ค์Œ, ๋ฐฉ๊ธˆ ๋งŒ๋“  Agent์— Assign ํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” CLI๋กœ ์ƒ์„ฑ:

multica issue create \
  --title "Add dark mode to settings page" \
  --description "Use CSS variables for theming, support system preference detection" \
  --priority high \
  --assignee "Lambda"   # ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ๋ถ„์˜ Agent ์ด๋ฆ„์„ ์ž…๋ ฅ

ํ• ๋‹น ํ›„์—๋Š” Issue์˜ ์ƒํƒœ๊ฐ€ todo์—์„œ ์ž๋™์œผ๋กœ in_progress๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. Daemon์ด ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ž‘์—…์„ ๊ฐ์ง€ํ•ด ์ฆ‰์‹œ ์ˆ˜๋ฝํ•˜๊ณ  ์‹คํ–‰์„ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

7๋‹จ๊ณ„: Agent์˜ ์ž์œจ ์‹คํ–‰์„ ๊ด€์ฐฐํ•˜๊ธฐ

Agent๋Š” ์ž๋™์œผ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  1. ์ž‘์—… ์ˆ˜๋ฝ โ€” ์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ Issue๋ฅผ ํ™•์ธํ•˜๋ฉด ์‹คํ–‰ ์ƒํƒœ๋กœ ์ „ํ™˜
  2. ์ง„ํ–‰ ๋ณด๊ณ  โ€” WebSocket์œผ๋กœ ์ƒํƒœ๋ฅผ ์ž‘์—… ๋ณด๋“œ์— ์‹ค์‹œ๊ฐ„ ํ‘ธ์‹œํ•˜๋ฏ€๋กœ, ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  3. ์ฝ”๋ฉ˜ํŠธ ๋ฐ ํ”ผ๋“œ๋ฐฑ โ€” Issue ์•„๋ž˜์— ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ฒจ ์ง„ํ–‰ ์ƒํ™ฉ์ด๋‚˜ ๋ง‰ํžŒ ์ง€์ ์„ ์„ค๋ช…
  4. ํ•˜์œ„ Issue ์ƒ์„ฑ โ€” ์ž‘์—…์ด ๋„ˆ๋ฌด ํฌ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด ์ž์œจ์ ์œผ๋กœ ํ•˜์œ„ ์ž‘์—…์œผ๋กœ ์ชผ๊ฐญ๋‹ˆ๋‹ค
  5. ์™„๋ฃŒ ๋˜๋Š” ๋ณด๊ณ  โ€” ์ž‘์—…์ด ๋๋‚˜๋ฉด done์œผ๋กœ ํ‘œ์‹œ, ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด blocked๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ด์œ ๋ฅผ ์„ค๋ช…

์ดํ›„์—๋Š” ๋‹ค๋ฅธ ์ผ์„ ๊ณ„์†ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋Œ์•„์˜ค๋ฉด PR์ด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ์„ ์ˆ˜๋„ ์žˆ์–ด์š”.

8๋‹จ๊ณ„: ์‹คํ–‰ ๋กœ๊ทธ ํ™•์ธ

CLI๋กœ Agent์˜ ์ƒ์„ธ ์‹คํ–‰ ๊ณผ์ •์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

# ํŠน์ • Issue์˜ ๋ชจ๋“  ์‹คํ–‰ ๊ธฐ๋ก ๋‚˜์—ด
multica issue runs <issue-id>

# ํŠน์ • ์‹คํ–‰์˜ ๋ฉ”์‹œ์ง€ ๋กœ๊ทธ ๋ณด๊ธฐ(Agent์˜ ์‚ฌ๊ณ  ํ๋ฆ„, ๋„๊ตฌ ํ˜ธ์ถœ, ์ถœ๋ ฅ)
multica issue run-messages <task-id>

# ์‹ค์‹œ๊ฐ„ ์ถ”์ ( tail -f ํšจ๊ณผ )
multica issue run-messages <task-id> --since 0

์ด ๋‹จ๊ณ„๋Š” ๋””๋ฒ„๊น…๊ณผ Agent ๋™์ž‘์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฟ ์•„๋‹ˆ๋ผ, ์ „์ฒด ์ถ”๋ก ๊ณผ ์‹คํ–‰ ๊ณผ์ •๊นŒ์ง€ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

9๋‹จ๊ณ„: ์Šคํ‚ฌ(Skills) ์ถ•์ 

์ด ํŒŒํŠธ๊ฐ€ Multica์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. Agent๊ฐ€ ๋ฌธ์ œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ฉด, ๊ทธ ํ•ด๊ฒฐ์ฑ…์„ใ€Œ์Šคํ‚ฌใ€๋กœ ์ถ•์ ํ•ด ํŒ€์˜ ๋ชจ๋“  Agent๊ฐ€ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ‚ฌ(Skill)์€ ๋ณธ์งˆ์ ์œผ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค. ๋ฐฐํฌ ์ ˆ์ฐจ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๊ทœ์น™, ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋‹จ๊ณ„ ๊ฐ™์€ ๊ฒƒ๋“ค์ด์ฃ . ํŒ€์˜ ํ•œ Agent๊ฐ€ ์ด๋ฅผ ํ•™์Šตํ•˜๋ฉด, ๋‹ค๋ฅธ Agent๊ฐ€ ๋น„์Šทํ•œ ์ƒํ™ฉ์„ ๋งŒ๋‚˜๋„ ๋ฐ”๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์Šคํ‚ฌ ๊ด€๋ฆฌ๋Š” Settings โ†’ Skills ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TIP

์Šคํ‚ฌ์ด ์ถ•์ ๋˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋•๋ถ„์— ํŒ€์˜ AI ์—ญ๋Ÿ‰์€ ์‹ค์ œ๋กœ ใ€Œ๋ณตํ•ฉ ์„ฑ์žฅใ€์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ๋งˆ๋‹ค ํŒ€ ์ „์ฒด ๋Šฅ๋ ฅ์ด ํ–ฅ์ƒ๋˜๋ฉฐ, ๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.


์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

1. Daemon์ด ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ

# ์ž์ฒด ํ˜ธ์ŠคํŒ…์—์„œ๋Š” ๋จผ์ € ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
multica config show  # ํ˜„์žฌ ์„ค์ • ํ™•์ธ

# ํด๋ผ์šฐ๋“œ์— ์—ฐ๊ฒฐ ์ค‘์ธ๋ฐ ์ž์ฒด ํ˜ธ์ŠคํŒ…์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด
multica config set server_url ws://localhost:8080/ws
multica daemon stop
multica daemon start

2. Runtime์ด ์˜คํ”„๋ผ์ธ์œผ๋กœ ํ‘œ์‹œ๋จ

# AI CLI๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  PATH์— ์žˆ๋Š”์ง€ ํ™•์ธ
which claude
which codex

# Daemon ์žฌ์‹œ์ž‘
multica daemon stop
multica daemon start

# ์ƒํƒœ ํ™•์ธ
multica daemon status

3. Issue๋ฅผ ํ• ๋‹นํ–ˆ๋Š”๋ฐ Agent๊ฐ€ ๋ฐ˜์‘ํ•˜์ง€ ์•Š์Œ

๊ฐ€๋Šฅํ•œ ์›์ธ 3๊ฐ€์ง€:

# ์›์ธ 1: Daemon์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ
multica daemon status

# ์›์ธ 2: Workspace๊ฐ€ watch๋˜์ง€ ์•Š์Œ
multica workspace list  # watch ์ƒํƒœ ํ™•์ธ
multica workspace watch <workspace-id>

# ์›์ธ 3: Agent๊ฐ€ ํ•ด๋‹น Workspace๋ฅผ watchํ•˜์ง€ ์•Š์Œ
# Settings โ†’ Workspaces์—์„œ Workspace๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ

4. Docker ์ปจํ…Œ์ด๋„ˆ ํ—ฌ์Šค ์ฒดํฌ ์‹คํŒจ

# ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ ํ™•์ธ
docker compose -f docker-compose.selfhost.yml ps

# ๋ฐฑ์—”๋“œ ๋กœ๊ทธ ํ™•์ธ
docker compose -f docker-compose.selfhost.yml logs backend

# ํ”ํ•œ ์›์ธ: PostgreSQL์ด ์ค€๋น„๋˜๊ธฐ ์ „์— ๋ฐฑ์—”๋“œ๊ฐ€ ์‹œ์ž‘๋จ
# 10์ดˆ ๊ธฐ๋‹ค๋ฆฐ ๋’ค ์žฌ์‹œ๋„
docker compose -f docker-compose.selfhost.yml restart backend

5. ๋กœ๊ทธ์ธ ์‹คํŒจ( Magic Link๋ฅผ ๋ฐ›์ง€ ๋ชปํ•จ )

# .env์— RESEND_API_KEY๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
grep RESEND .env

# ์—†๋‹ค๋ฉด https://resend.com ์—์„œ API Key๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์œผ์„ธ์š”
# ๊ทธ๋ฆฌ๊ณ  .env์— ์ถ”๊ฐ€
RESEND_API_KEY=re_xxxxx
[email protected]

# ๋ฐฑ์—”๋“œ ์žฌ์‹œ์ž‘
docker compose -f docker-compose.selfhost.yml restart backend

6. Agent ์‹คํ–‰ ์‹œ๊ฐ„ ์ดˆ๊ณผ

Agent์˜ ๊ธฐ๋ณธ ์‹คํ–‰ ํƒ€์ž„์•„์›ƒ์€ 2์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์ž‘์—…์ด ๋„ˆ๋ฌด ํฌ๋‹ค๋ฉด:

# ํƒ€์ž„์•„์›ƒ ์—ฐ์žฅ(๋‹จ์œ„: ์‹œ๊ฐ„)
export MULTICA_AGENT_TIMEOUT=8h
multica daemon stop
multica daemon start

๋˜๋Š” Issue์—์„œ ํฐ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ Issue๋กœ ์ชผ๊ฐœ์„œ, Agent์—๊ฒŒ ๋‹จ๊ณ„์ ์œผ๋กœ ํ• ๋‹นํ•ด ์™„๋ฃŒํ•˜์„ธ์š”.


ํ™•์žฅ ์ฝ๊ธฐ / ๊ณ ๊ธ‰ ๋ฐฉํ–ฅ

Multica Cloud: ์ง์ ‘ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด multica.ai์— ๋“ฑ๋กํ•ด์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ œ๋กœ ๊ตฌ์„ฑ์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋ฉฐ, ๋ฉ€ํ‹ฐ Workspace, ๋ฉ€ํ‹ฐ Agent, ์Šคํ‚ฌ ๊ด€๋ฆฌ๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ Runtime ํ˜ผํ•ฉ: ํ•œ ๋Œ€์˜ ๋จธ์‹ ์—์„œ ์—ฌ๋Ÿฌ Daemon ์„ค์ • ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(multica --profile staging daemon start). ๋˜๋Š” ๋กœ์ปฌ Runtime๊ณผ ํด๋ผ์šฐ๋“œ Runtime์„ ํ•จ๊ป˜ ์„ž์–ด ์“ฐ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•  ๋•Œ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

4๋Œ€ Runtime ๋น„๊ต: Claude Code(Anthropic), Codex(OpenAI), OpenClaw(๋กœ์ปฌ Agent), OpenCode๋Š” ๊ฐ๊ฐ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Claude Code๋Š” ์ฝ”๋“œ ์ดํ•ด์™€ ์ˆ˜์ •์— ๊ฐ€์žฅ ๊ฐ•ํ•˜๊ณ , Codex๋Š” ๋ฒ”์šฉ ์ž‘์—…์— ๋” ์œ ์—ฐํ•˜๋ฉฐ, OpenClaw์€ ๋กœ์ปฌ ํˆด์ฒด์ธ์ด ํ•„์š”ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ์œ ํ˜•์— ๋งž๋Š” Runtime์„ ์„ ํƒํ•˜์„ธ์š”.

์Šคํ‚ฌ์˜ ์‹ฌ์ธต ํ™œ์šฉ: ์Šคํ‚ฌ์ด ์ง„์งœ ์žฌ์‚ฌ์šฉ๋˜๋„๋ก ํ•˜๋ ค๋ฉด, ๋‹จ์ˆœํ•œ ์•„์นด์ด๋ธŒ๋กœ ์ „๋ฝํ•˜์ง€ ์•Š๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฆฌ๋ทฐ์™€ ๋น„์Šทํ•œ ์Šคํ‚ฌ ์‹ฌ์‚ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋งŒ๋“ค๊ณ , ํšจ๊ณผ์ ์ธ ์Šคํ‚ฌ์„ ์ •๊ธฐ์ ์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉฐ, ์˜ค๋ž˜๋œ ์Šคํ‚ฌ์€ ํ๊ธฐํ•ด ํŒ€์˜ AI ์—ญ๋Ÿ‰์ด ์ง€์†์ ์œผ๋กœ ์ง„ํ™”ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ๋ถ„์„: Multica์˜ ๋ฐฑ์—”๋“œ๋Š” Go(Chi ๋ผ์šฐํ„ฐ + WebSocket)์ด๊ณ , ํ”„๋ก ํŠธ์—”๋“œ๋Š” Next.js 16(App Router + Zustand + TanStack Query)์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” PostgreSQL 17 + pgvector(๋ฒกํ„ฐ ์ €์žฅ์†Œ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. WebSocket ์‹ค์‹œ๊ฐ„ ํ‘ธ์‹œ๋Š” ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. Agent์˜ ๋งค ๋‹จ๊ณ„ ์‹คํ–‰์ด ์ž‘์—… ๋ณด๋“œ๋กœ ํ‘ธ์‹œ๋˜๋ฏ€๋กœ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Updated April 11, 2026
    Multica ์ž…๋ฌธ: ์˜คํ”ˆ์†Œ์Šค Claude Managed Agents, AI ์ง์› ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(์ž‘์—… ๋ณด๋“œ, ์ž์œจ์ ์œผ๋กœ ์ž‘์—… ์ˆ˜์ฃผ, ๊ธฐ์ˆ ์„ ์ถ•์  ๊ฐ€๋Šฅ) | OpenClaw API ๋ฌธ์„œ - ์˜คํ”ˆ์†Œ์Šค AI ์–ด์‹œ์Šคํ„ดํŠธ ํ†ตํ•ฉ ๊ฐ€์ด๋“œ