AI ์ฝ๋ฉ ์์ด์ ํธ๊ฐ ์ผํ ์์ ๊ณต๊ฐ์, ๋ฏธ๋ฆฌ ์ ๋ํด ๋ ์ค์บํด๋.
Claude Code๋ Codex ๊ฐ์ AI ์ฝ๋ฉ ๋๊ตฌ๋ฅผ ์ฐ๋ค ๋ณด๋ฉด, ๋๊ตฌ๋ง๋ค ๊ท์น ํ์ผ ์์น๋ ๋ค๋ฅด๊ณ "์ด ๋ฌธ์๋ ๊ณต๊ฐํด๋ ๋๋์ง", "์คํฌ์ ์ด๋์ ๋๋์ง"๊ฐ ์ ๊ฐ๊ฐ์ ๋๋ค. Naia ADK๋ ๊ทธ ๋ผ๋๋ฅผ ๋ฏธ๋ฆฌ ๊น์ ๋ ์ํฌ์คํ์ด์ค์ ๋๋ค. ์ ๋ ธํธ๋ถ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธํ ํ๋ฏ, AI ์์ด์ ํธ์๊ฒ๋ ์ ๋๋ ์ฑ ์์ ๋จผ์ ๋ด์ฃผ๋ ์ ์ ๋๋ค. ์ฌ๊ธฐ์ ์ํฌ์คํ์ด์ค ์ํ๋ฅผ ๋์ผ๋ก ํ์ธํ ์ ์๋ ๋์๋ณด๋๊ฐ ํจ๊ป ๋ค์ด ์์ต๋๋ค.
Node 22 ์ด์, pnpm 9 ์ด์์ด ํ์ํฉ๋๋ค.
pnpm install # ์ํฌ์คํ์ด์ค ์์กด์ฑ ์ค์น
pnpm dev # API ์๋ฒ(:3141) + ๋์๋ณด๋(:3142) ๋์ ์คํ๋ธ๋ผ์ฐ์ ์์ http://localhost:3142๋ฅผ ์ด๋ฉด ๋์๋ณด๋๊ฐ ๋น๋๋ค. ์ฌ๊ธฐ์ ์ธ ๊ฐ์ง๋ฅผ ๋ฐ๋ก ๋ณผ ์ ์์ต๋๋ค.
- ์ํฌ์คํ์ด์ค โ ํ๋ก์ ํธ์ ์๋ธ๋ชจ๋, ํ์ผ ํธ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๊ฐ ํญ๋ชฉ์ ๊ณต๊ฐ ๋ฑ๊ธ.
- ์คํฌ ์นดํ๋ก๊ทธ โ ์ด ์ํฌ์คํ์ด์ค์ ๋ฑ๋ก๋ ์คํฌ ๋ชฉ๋ก๊ณผ ๋ด์ฉ.
- ์ค์ / ๋ชจ๋ํฐ๋ง โ ์๋ฒ ์ค์ , ํด๋ผ์ด์ธํธ ์ํ, ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ.
๋์๋ณด๋๋ /api/* ์์ฒญ์ 3141 ํฌํธ์ API ์๋ฒ๋ก ๋๊ฒจ์ค๋๋ค. ์๋ฒ๋ง, ๋๋ ๋์๋ณด๋๋ง
๋์ฐ๊ณ ์ถ๋ค๋ฉด ๊ฐ๊ฐ pnpm dev:server(โ 3141), pnpm dev:dashboard(โ 3142)๋ฅผ ์ฐ๋ฉด ๋ฉ๋๋ค.
๋ฐ์ฒ ์คํฌ๋ฆฝํธ ./start.sh(Linux/macOS)์ start.bat(Windows)๋ ๊ฒฐ๊ตญ pnpm dev๋ฅผ ์คํํฉ๋๋ค.
์๋ฒ CLI๋ --port, --host, --root ์ต์
์ ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค๋ฅธ ์ํฌ์คํ์ด์ค๋ฅผ
๊ฐ๋ฆฌํค๋ ค๋ฉด pnpm serve -- --root /path/to/workspace์ฒ๋ผ ์๋๋ค.
AI ์์ด์ ํธ๊ฐ ๊ณง๋ฐ๋ก ์ผํ ์ ์๋๋ก, ์๋ฆฌ๊ฐ ์ ํด์ง ๋๋ ํฐ๋ฆฌ ๋ฌถ์์ ์ ๊ณตํฉ๋๋ค. AI๊ฐ ์ฝ์
์ปจํ
์คํธ๋ .agents/(์์ด, JSON/YAML)์ ๋๊ณ , ์ฌ๋์ด ์ฝ์ ๋ฏธ๋ฌ๋ .users/(ํ๊ตญ์ด, Markdown)์
๋ก๋๋ค. ์ด ๋ฏธ๋ฌ๋ ์ ์ฒด๋ฅผ ๊ทธ๋๋ก ๋ณต์ ํ ๊ฒ์ด ์๋๋ผ ์ฌ๋์ด ์ฝ์ด์ผ ํ ํต์ฌ ๋ฌธ์ ์์ฃผ๋ก ๋๋
๋ถ๋ถ ๋ฏธ๋ฌ์
๋๋ค(์์ปจ๋ ์คํฌ์ .agents/skills/ ์ชฝ์ด ์๋ณธ์ด๊ณ .users/skills/์๋ ์ผ๋ถ๋ง
์์ต๋๋ค). ์คํฌ, ๋ฐ์ดํฐ, ํ๋ก์ ํธ๋ ๋ชจ๋ ์ ํด์ง ์์น๊ฐ ์์ด์, ์ด๋ค ๋๊ตฌ๋ก ์ด์ด๋ ๊ฐ์
๋ชจ์์ผ๋ก ๋ณด์
๋๋ค.
์ํฌ์คํ์ด์ค๋ฅผ ๋์ผ๋ก ๊ด๋ฆฌํ๋ Next.js ๋์๋ณด๋์, ๊ทธ ๋ค๋ฅผ ๋ฐ์น๋ Fastify API ์๋ฒ๊ฐ
ํฌํจ๋ฉ๋๋ค. API๋ ์ํฌ์คํ์ด์ค ๋ฉํ๋ฐ์ดํฐ(/api/workspace), ์คํฌ ์นดํ๋ก๊ทธ(/api/skills),
ํ์ผ ์ฝ๊ธฐยท์ฐ๊ธฐ(/api/files), ๊ทธ๋ฆฌ๊ณ ํ์ผ ๋ณ๊ฒฝ์ ์ค์๊ฐ์ผ๋ก ์๋ฆฌ๋ WebSocket(/api/ws)์
์ ๊ณตํฉ๋๋ค. ์ด API ๋๋ถ์ ๋์๋ณด๋๋ฟ ์๋๋ผ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ ์ํฌ์คํ์ด์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฐ๋ณต ์์
์ ์คํฌ๋ก ๋ฌถ์ด ์ฌ์ฌ์ฉํฉ๋๋ค. ๊ฐ ์คํฌ์ SKILL.md ํ ํ์ผ๋ก ์ ์๋๊ณ , API ์๋ฒ๊ฐ
skills/ ์๋๋ฅผ ํ์ด ์นดํ๋ก๊ทธ๋ก ๋ง๋ญ๋๋ค. ์ด๋ ์คํฌ ํ๋๋ผ๋ ๊ท๊ฒฉ์ ์ด๊ธฐ๋ฉด ์นดํ๋ก๊ทธ ์ ์ฒด๊ฐ
์๋ฌ๋ฅผ ๋ด๋๋ก ์ค๊ณํ์ต๋๋ค(fail-closed). ๊นจ์ง ์คํฌ์ ์กฐ์ฉํ ๋นผ๊ณ ๋๋จธ์ง๋ง ๋ด๋ณด๋ด๋ ๋์ ,
์ด์์๊ฐ ๊ทธ ์๋ฆฌ์์ ๊ณ ์น๋๋ก ๋ง๋ ๊ฒ์
๋๋ค. ์๋ชป๋ ๋ชฉ๋ก์ ๋ชจ๋ฅด๊ณ ์๋น์คํ๋ ์ฌ๊ณ ๋ฅผ ๋ง๊ธฐ ์ํ
์ ํ์
๋๋ค.
์คํฌ์ ๋ค ๊ฐ๋๋ก ๋๋ฉ๋๋ค. ์ด๋ค ์คํฌ์ด ์๋์ง ์ ์ฒด๋ฅผ ๋ค์ ์ฝ์ง ์์๋ ๋๋๋ก
.agents/context/skills-index.yaml์ ๋ฌด์์ ์ธ์ ์ฐ๋์ง ํ ์ค์ฉ ์ ๋ฆฌํด ๋์๊ณ ,
์๋๋ ๊ทธ ๋ชฉ์ฐจ์
๋๋ค.
๋ฌธ์์ ๋์ธ ์ฐ์ถ๋ฌผ โ ์ฌ๋์ด ์ฝ์ ๊ฒ์ ๋ง๋๋ ์ผ์
๋๋ค.
doc-coauthoring(์คํยท์ค๊ณ ๋ฌธ์), proposal-writing(์ ์์), read-doc,
translate-doc, press-release, weekly-report, document-generation(๋ธ๋๋
PDF์ ์ ์์๋ช
), copyright-reg(์ ์๊ถ ๋ฑ๋ก ์๋ฅ), patent-draft์
patent-pipeline(ํนํ ๋ช
์ธ), youtube-upload(์์๊ณผ ์๋ง ๊ฒ์).
์ํฌ์คํ์ด์ค๋ฅผ ๊ตด๋ฆฌ๋ ์ผ โ ์ ์ฅ์ ์์ฒด๋ฅผ ๋ค๋ฃจ๋ ์์
๋๋ค.
project-create, project-migration, merge-worktree, migrate-ctx,
session-resume, sync-upstream(์
์คํธ๋ฆผ ๋๊ธฐํ), manage-skills,
secret-vault(์ํธํ ์ํฌ๋ฆฟ ๋ณผํธ).
๊ฒ์ฆ ๊ฒ์ดํธ โ ํต๊ณผํ๋ค๋ ๋ง ๋์ ์ฆ๊ฑฐ๋ฅผ ์๊ตฌํ๋ ์๋ฆฌ์
๋๋ค.
verify-implementation, verify-contract-conformance, verify-request-contract,
verify-product-preservation, verify-benchmark-contract, verify-review-gate,
verify-build(๋น๋๊ฐ ์ค์ ๋ก ๋๋๊ฐ), verify-conflict-markers(์ถฉ๋ ๋ง์ปค๊ฐ ๋จ์๋๊ฐ),
verify-i18n๊ณผ verify-hardcoded-strings(๋ฌธ์์ด์ด ์ ์๋ฆฌ์ ์๋๊ฐ), webapp-testing,
๊ทธ๋ฆฌ๊ณ ์ ๋์ ๊ฒํ ๋ฅผ ๋ถ์ด๋ review-pass.
์ด์๊ณผ ์คํ โ ๋ฐ๊นฅ๊ณผ ๋ฟ๊ฑฐ๋ ๋ชจ๋ธ์ ๋ค๋ฃจ๋ ์ผ์
๋๋ค.
manage-discord-sessions(๋์ค์ฝ๋ ๊ฒ์ดํธ์จ์ด ์ด์), channel-management,
service-management(๊ฐ๋๊ณผ ๋น์ฉ, ์ฅ์ ๋์), web-monitoring, email, sms,
upstream-pr-review(์คํ์์ค์ ๋ด๋ณด๋ด๊ธฐ ์ ์ ๊ฒ), payroll,
finetune-persona(์บ๋ฆญํฐ LoRA ํ์ต).
์คํฌ์ ์๋ก ๋ง๋ค ๋๋ SKILL_TEMPLATE.md์์ ์์ํ๊ณ , ๋ง๋ ๋ค์๋ ์์ธ์๋
ํ ์ค์ ๋จ๊น๋๋ค. ์์ธ์ด ์ค์ ์ ์ด๊ธ๋๋ฉด ๋ค์ ์ธ์
์ด ์๋ ์ค๋ ๋ชจ๋ฅด๋ ์คํฌ์
๋ค์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค.
ํผ์ ์ฐ๋ ์ํฌ์คํ์ด์ค๋ผ๋, AI์ ์๋ํ๊ฐ ์์ ๋๋ ์๊ฐ ์ต์ํ์ ๊ท์น์ด ํ์ํฉ๋๋ค. Naia
ADK๋ read, write, execute, publish๋ฅผ ์๋ก ๋ค๋ฅธ ๊ด์ฌ์ฌ๋ก ๋๋ ๋๊ณ , ๋ฌธ์๋ง๋ค ๊ณต๊ฐ
๋ฑ๊ธ์ ๋ถ์
๋๋ค. ํ๋ก๋์
๋ณ๊ฒฝ์ด๋ ์ํฌ๋ฆฟ ์ทจ๊ธ, ๋์ธ ๊ณต๊ฐ์ฒ๋ผ ๋๋๋ฆฌ๊ธฐ ์ด๋ ค์ด ์์
์ ์ผ๋ฐ
๋ก์ปฌ ํธ์ง๊ณผ ๋ถ๋ฆฌํด ์น์ธ ๊ฒ์ดํธ๋ฅผ ๊ฑฐ์น๊ฒ ํฉ๋๋ค.
๊ณต๊ฐ ๋ฑ๊ธ์ ๋ค ๋จ๊ณ์
๋๋ค. public์ ๊ณต๊ฐ ์น์ฌ์ดํธ๋ ์คํ์์ค ๋ ํฌ์ ๊ทธ๋๋ก ๋๊ฐ๋ ๋๋
๊ฒ, controlled์ ๊ฒํ ๋ฅผ ๊ฑฐ์น๋ฉด ์ธ๋ถ์ ๊ณต์ ํ ์ ์๋ ๊ฒ, internal์ ์ํฌ์คํ์ด์ค ์์์๋ง
์ฐ๋ ๊ฒ, confidential์ ๊ณ์ฝ์ยทํฌ๋ฆฌ๋ด์
ยท๊ฐ์ธ์ ๋ณด์ฒ๋ผ ๋ฏผ๊ฐํ ๊ฒ์
๋๋ค. ํฌ๋ฆฌ๋ด์
์ ๋ณดํต git
๋ฐ์ ๋์ง๋ง, ๋ฑ๊ธ์ผ๋ก๋ ์ฌ์ ํ confidential์
๋๋ค.
์ด๋ฒ ๋ฆด๋ฆฌ์ค์์ ์ธ์ ๊ณ์ฝ ๊ฐ์ ๋ ๊บผ์ ธ ์์ต๋๋ค.
.claude/no-harness๋ง์ปค๊ฐ ์ ์ฅ์์ ๋ค์ด ์์ด ์ธ์ ๊ณ์ฝ ๊ฒ์ดํธ๊ฐ ์๋ฌด๊ฒ๋ ๋ง์ง ์์ต๋๋ค. ์ผ๋ฉด ๊ณ์ฝ ์๋ ์ธ์ ์ดnpm test๋ฅผ ํฌํจํ ๋ชจ๋ ๋ณ๊ฒฝ์ฑ ์ ธ ๋ช ๋ น์์ ๋งํ ์๋ก ํด๋ก ํ ์ฌ๋์ด ํ ์คํธ์กฐ์ฐจ ๋๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ผ ํธ์ง ๊ฒฝ๋ก๋ ๊ฐ์ ์ด์ ๋ก ์ด๋ฏธ ์ด์ด๋์ง๋ง ์ ธ ๊ฒฝ๋ก๋ ์์ง ๊ทธ๋๋ก์ ๋๋ค. force push, ํ๊ดด์ git ๋ช ๋ น, ๋ฐฐํฌ, ์ธ๋ถ ๋ฐ์ก ๊ฐ๋๋ ์ด์ ๋ฌด๊ดํ๊ฒ ๊ณ์ ์๋ํฉ๋๋ค. ์งํ ์ํฉ์ #34, ์์ธํ ๋ด์ฉ์.claude/no-harness์ ์ ์ด ๋์ต๋๋ค.AGENTS.md์ ์ธ์ ๊ฒฝ๊ณ ์ ์ ์๋ํ ์ค๊ณ๋ฅผ ์์ ํ ๊ฒ์ด๋ฉฐ ํ์ฌ ๋ฐํ์ ๋์๊ณผ ๋ค๋ฆ ๋๋ค.
API ํค๋ ์ธ์ฆ์๋ฅผ git์ ๊ทธ๋ฅ ์ฌ๋ฆด ์๋ ์์ต๋๋ค. ๊ทธ๋ ๋ค๊ณ ๊ฐ์ ๋ ธํธ๋ถ์๋ง ๋๋ฉด ๊ธฐ๊ณ๋ฅผ ๋ฐ๊ฟ ๋๋ง๋ค ์ฌ๋ผ์ง๊ณ , ๋๊ฐ ๋ฌด์์ ๊ฐ๊ณ ์๋์ง๋ ์ ์ ์๊ฒ ๋ฉ๋๋ค. Naia ADK๋ ๊ทธ ์ฌ์ด๋ฅผ ์ด๋ ๊ฒ ์ง๋ฉ๋๋ค. ์ํฌ๋ฆฟ์ ๋ด์ ํด๋ ํ๋๋ฅผ ํต์งธ๋ก ๋ฌถ์ด ์ํธํํ ํ์ผ ํ๋๋ง git์ ์ฌ๋ฆฌ๊ณ , ํผ ๋ด์ฉ์ git์ด ์์ ๋ณด์ง ์๊ฒ ํฉ๋๋ค.
๊ตฌ์ฒด์ ์ผ๋ก๋ key/ ํด๋๋ฅผ tar๋ก ๋ฌถ๊ณ age๋ก
์ํธํํด key.age ํ๋๋ฅผ ๋ง๋ญ๋๋ค. key/๋ .gitignore์ ์์ด ์ค์๋ก๋ ์ฌ๋ผ๊ฐ์ง
์์ต๋๋ค. ์ปค๋ฐ๋๋ ๊ฒ์ ์ธ์ ๋ key.age ํ๋๋ฟ์
๋๋ค.
๋น๋ฐ๋ฒํธ๋ ์ฌ๋์ด ์ง์ ์ ๋ ฅํฉ๋๋ค. AI๊ฐ ๋์ ๋ฐ์ง๋, ๋์ ๋ฃ์ง๋ ์์ต๋๋ค. ๊ทธ๋์ ์ฌ๋ ์ผ๊ณผ ์ ๊ทธ๋ ์ผ์ ์ฌ์ฉ์๊ฐ ์๊ธฐ ํฐ๋ฏธ๋์์ ํ๊ณ , ๋น๋ฐ๋ฒํธ๊ฐ ํ์ ์๋ ์ ๊ฒ๊ณผ ๋ฐฑ์ ์ AI๊ฐ ๋์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ๊ณ๊ฐ ์คํฌ ์์ ๋ช ๋ น ๋จ์๋ก ๋๋์ด ์์ต๋๋ค.
bash .agents/skills/secret-vault/scripts/vault.sh init # ์ repo์ ๋ณผํธ ๋ง๋ค๊ธฐ
bash .agents/skills/secret-vault/scripts/vault.sh unlock # ์ด๊ธฐ (๋น๋ฐ๋ฒํธ ํ์)
bash .agents/skills/secret-vault/scripts/vault.sh lock # ๋ค์ ์ ๊ทธ๊ธฐ (๋น๋ฐ๋ฒํธ ํ์)
bash .agents/skills/secret-vault/scripts/vault.sh status # ๋ฐฑ์
์ด ์ต์ ์ธ์ง ์ ๊ฒ
bash .agents/skills/secret-vault/scripts/vault.sh sync # key.age๋ง ์ปค๋ฐํ๊ณ pushstatus๊ฐ ์๋ ์ด์ ๋ ์ค์์ ๋ชจ์์ด ์ ํด์ ธ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ํค๋ฅผ ์ถ๊ฐํ๊ณ ๋ค์
์ ๊ทธ๋ ๊ฒ์ ์๊ฑฐ๋, ์ ๊ฐ๋๋ฐ push๋ฅผ ์๊ฑฐ๋, ์์ ํ์ผ์ด ๋จ๋ ์ผ์ด ๋ฐ๋ณต๋ฉ๋๋ค.
status๋ ๊ทธ ์
์ ํ ๋ฒ์ ๋ด
๋๋ค. "ํค๊ฐ ๋ค ๋ฐฑ์
๋ผ ์๋?"๋ผ๋ ์ง๋ฌธ์๋ ๊ธฐ์ต์ด
์๋๋ผ ์ด ๋ช
๋ น์ผ๋ก ๋ตํฉ๋๋ค.
lock์ ์ ์ํธ๋ฌธ์ ๋ง๋ ๋ค ๋ค์ ํ์ด ๋ณด๊ณ ์ฑ๊ณตํ์ ๋๋ง ๊ธฐ์กด ํ์ผ์ ๋ฐ๊ฟ๋๋ค.
์ค๊ฐ์ ์คํจํด์ ๋ณผํธ๊ฐ ๊นจ์ง ์ฑ ๋จ๋ ์ผ์ ๋ง๊ธฐ ์ํด์์
๋๋ค.
์ด ํจํด์ data-private ๊ฐ์ ๊ฐ์ธ ์ ์ฅ์๋ฅผ ํ์ค ์๋น์๋ก ์ผ์ง๋ง, key.age ํ๋์
gitignore๋ key/๋ฅผ ๋๋ ์ด๋ค ์ ์ฅ์์๋ ๊ทธ๋๋ก ์ธ ์ ์์ต๋๋ค. ์ด๋ฆ์ ๋ฐ๊พธ๊ณ
์ถ์ผ๋ฉด VAULT์ PLAIN_DIR ํ๊ฒฝ ๋ณ์๋ก ๋ฎ์ด์๋๋ค.
LLM์ ์ฐ๊ฒฐํด์ผ ํ๋ ๊ธฐ๋ฅ์ ์ํด naia-anyllm ์ด๋ํฐ๋ฅผ ๋ด์ฅํฉ๋๋ค. any-llm
๊ฒ์ดํธ์จ์ด๋ฅผ ๊ฑฐ์น๊ฑฐ๋, OpenAIยทAnthropicยทGoogle ๊ฐ์ ํ๋ก๋ฐ์ด๋์ ์ง์ ๋ถ์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์
Naia ๊ณ์ ์ด๋ฉฐ, naia.nextain.io์์ ๋ฐ๊ธํ ํค๋ฅผ
NAIA_KEY ํ๊ฒฝ ๋ณ์์ ๋ฃ์ผ๋ฉด ๊ณ์ ํฌ๋ ๋ง์ผ๋ก ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ํค๊ฐ ์์ผ๋ฉด
์ ๋ฃ ํธ์ถ ์ ์ ์ค๋ฅ๋ฅผ ๋
๋๋ค. ํ๋ก๋ฐ์ด๋๋ ๋ชจ๋ธ์ ๋ฐ๊พธ๊ณ ์ถ์ผ๋ฉด
.agents/context/llm-config.yaml.example์ ๋ณต์ฌํด ์ฐ๊ณ ,
API ํค๋ ์ค์ ํ์ผ์ด ์๋๋ผ ํ๊ฒฝ ๋ณ์๋ ์ด์์ฒด์ ํค ์ ์ฅ์์ ๋ก๋๋ค. naia-settings/llm.json์๋
ํค ๊ฐ ๋์ apiKeyRef: "NAIA_KEY"๋ง ๊ธฐ๋กํฉ๋๋ค. ๊ฐ์ธ ํฌํฌ์์ ์ฅ๊ธฐ ๋ฐฑ์
์ด ํ์ํ๋ฉด
data-private/key/์ age ์ํธํ ๋ณผํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค(.env.example ์ฐธ๊ณ ).
์ง์ ๋ชจ๋ธ๊ณผ ํ์ฌ ๊ฐ๊ฒฉ ์กฐํ, ๊ธด PDF ๋ฒ์ญ์ translate-doc ์คํฌ์ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ธยท๊ฐ๊ฒฉ ์กฐํ๋
ํค ์์ด ๊ฐ๋ฅํ๊ณ , ๋ฒ์ญ์ ์์ ๋น์ฉ์ ๋จผ์ ์ ์ํ ๋ค ์ค๋จ ์ง์ ๋ถํฐ ์ฌ๊ฐํ ์ ์์ต๋๋ค.
Naia ADK์ ํต์ฌ์ ํน์ ๋๊ตฌ๊ฐ ์๋๋ผ ํฌ๋งท์
๋๋ค. ๋๋ ํฐ๋ฆฌ ๋ ์ด์์(.agents/, .users/,
skills/, data-*/)๊ณผ ํ์ผ ์คํค๋ง(agents-rules.json, SKILL.md)๊ฐ ์ ํด์ง ์ฝ์์ด๊ณ , ์ด
์ฝ์์ ์ฝ์ ์ ์๋ ๋๊ตฌ๋ผ๋ฉด ๋ฌด์์ด๋ ๊ฐ์ ์ํฌ์คํ์ด์ค๋ฅผ ์๋นํ ์ ์์ต๋๋ค. Claude Code,
opencode, Codex, naia-agent๊ฐ ์๋ก์ ์ฝ๋๋ฅผ ๋ด์ฅํ์ง ์๊ณ ๋ ๊ฐ์ ์ํฌ์คํ์ด์ค๋ฅผ ๊ฐ์ ์ฝ์ต๋๋ค.
๊ทธ๋์ ๋๊ตฌ๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ์์ด ์จ๋, ์ํฌ์คํ์ด์ค๋ ๊ทธ๋๋ก ๋์ํฉ๋๋ค.
์ด ๊ท์น ๊ฐ์ (enforcement) ์์ฒด๋ ๋๊ตฌ์ ๋งค์ด์ง ์์ต๋๋ค. ํธ์คํธ ์ค๋ฆฝ ์ฝ์ด(.agents/hooks/core/)์
์ ์ฑ
(.agents/hooks/policies/)์ด Claude Code ํ
๊ณผ pi ์ต์คํ
์
์์ชฝ์ ๊ฐ์ ๊ท์น์ผ๋ก ๊ตฌ๋ํฉ๋๋ค.
Naia ADK๋ ์ด๋๊น์ง๋ 1์ธ, ๊ฐ์ธ์ฉ์ ๋๋ค. ํ์ฌ ์กฐ์ง๋๋ ํ ๋ํธ ๊ท์น, ์์ ์น์ธ ์ฒด์ธ ๊ฐ์ ๊ฒ์ ์์ ๋ ์ด์ด์ ๋ชซ์ ๋๋ค. ๋์ ์ํฌ์คํ์ด์ค๊ฐ ํ์ด๋ ํ์ฌ ๊ท๋ชจ๋ก ์ปค์ง๊ธฐ ์ ์, ์ปจํ ์คํธ๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃฐ์ง์ ๋ํ ๊ท์จ์ ๋ฏธ๋ฆฌ ํ๊ณณ์ ์ ์ด ๋ ์๋ฆฌ๋ฅผ ์ค๋๋ค.
ํ ํ์ ๊ณผ ๊ณต์ ์ง์์ด ํ์ํด์ง๋ฉด Naia Business ADK๋ก ํ์ฅํฉ๋๋ค. ์ด ํ์ฅ์ ๋ฒ ์ด์ค๋ผ์ธ์ ์์ฐยทํ๋ก์ธ์คยท๊ถํ ๊ฑฐ๋ฒ๋์ค๋ก ๋ํ๊ณ , ํ ์์ ๊ถ๊ณผ ์์ ์น์ธ์ ๋ํฉ๋๋ค.
Naia ADK๋ ํฌํฌํด์ ์๊ธฐ ๊ฒ์ผ๋ก ๋ง๋๋ ๊ฒ์ ์ ์ ๋ก ํฉ๋๋ค. ๊ฐ์ธ์ naia-adk๋ฅผ ์ง์ ํฌํฌํ๊ณ ,
์กฐ์ง์ naia-business-adk๋ฅผ ๊ฑฐ์ณ ํ์ฌยท๋ฉค๋ฒ ์ํฌ์คํ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค.
naia-adk โ ๊ฐ์ธ์ฉ ๋ฒ ์ด์ค (๊ณต๊ฐ, Apache 2.0)
โโโ {org}-adk โ ์กฐ์ง ํฌํฌ: ํ์ฌ ๋ฐ์ดํฐ + ๋น์ฆ๋์ค ์๋ธ๋ชจ๋
โโโ {user}-adk โ ๊ฐ์ธ ํฌํฌ: ๊ฐ์ธ ๋ฐ์ดํฐ + ํ๋ก์ ํธ ์๋ธ๋ชจ๋
Nextain์ ์ค์ ์ฒด์ธ์ naia-adk โ naia-business-adk โ nextain-adk โ alpha-adk์ฒ๋ผ ์ด์ด์ง๋๋ค.
์ ์ฅ์๋ ํฌ๊ฒ ๋ฐํ์ ์ฝ๋(packages/), ๊ท์น๊ณผ ์ปจํ
์คํธ(.agents/, .users/), ์คํฌ(skills/,
.agents/skills/), ๊ทธ๋ฆฌ๊ณ ํฌํฌ๋ง๋ค ์ฑ์ ๋ฃ๋ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ๋ก ๋๋ฉ๋๋ค.
| ๋๋ ํฐ๋ฆฌ | ์ฉ๋ |
|---|---|
.agents/ |
AI์ฉ ์ปจํ ์คํธ (์์ด, JSON/YAML) โ ๊ท์น์ ๋จ์ผ ์ง์ค ๊ณต๊ธ์ |
.users/ |
์ฌ๋์ด ์ฝ๋ ๋ฏธ๋ฌ (ํ๊ตญ์ด, Markdown) |
.claude/ |
Claude Code ์ค์ , ํ , ์คํฌ ์ฌ๋งํฌ |
skills/ |
์ด์/๋ฐํ์ ์คํฌ (๋์๋ณด๋ API๊ฐ ์ ๊ณต) |
scripts/ |
์ ํธ๋ฆฌํฐ ์คํฌ๋ฆฝํธ |
templates/ |
๋ฌธ์ ํ ํ๋ฆฟ |
docs/ |
์ํคํ ์ฒ ๋ฌธ์, ์ค๊ณ ์คํ |
packages/ |
๋ฐํ์ ํจํค์ง (pnpm ์ํฌ์คํ์ด์ค) |
์ธ ๊ฐ๋ ์ค์ ๋ก ๋๋ ํ๋ก๊ทธ๋จ์ด๊ณ , ๋๋จธ์ง๋ ํฌ๋งท๊ณผ ๊ท๊ฒฉ์ ์ ์ํ๋ ์์ ํจํค์ง์ ๋๋ค.
coreโ ์ํฌ์คํ์ด์ค์ ์คํฌ์ ํ์ฑํ๋ ์์ง.serverโ Fastify ๊ธฐ๋ฐ REST/WebSocket API.dashboardโ Next.js ๋์๋ณด๋ UI.skill-specโ ๋๊ตฌ ๋น์ข ์ ์คํฌ ํฌ๋งท ๊ณ์ฝ(SkillDescriptor,SkillLoader).skills-builtinโ ์ผ๋ฐ ์คํฌ ์นดํ๋ก๊ทธ.openclaw-compatโ OpenClaw ์คํฌ์ naia ํฌ๋งท์ผ๋ก ์ฎ๊ธฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ๋๊ตฌ.personaโ ์์คํ ํ๋กฌํํธ ์ปจ๋ฒค์ ์คํ.processโ ์ํฌํ๋ก์ฐ ํจํด ์คํ(๋ฆฌ๋ทฐ โ ๊ฒฐ์ โ ์คํ, ์ด์ ๊ธฐ๋ฐ ๊ฐ๋ฐ ๋ฑ).naia-anyllmโ any-llm ๊ฒ์ดํธ์จ์ด / ์ง์ ํ๋ก๋ฐ์ด๋ LLM ์ด๋ํฐ.artifacts-specโ ๊ถํ(RBAC)๊ณผ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(SDLC) ์ฐ์ถ๋ฌผ์ ํ์ค ์คํค๋ง. 15์ข ์ฐ์ถ๋ฌผ์ JSON Schema๋ก ์ ์ํ๊ณ , ๊ฐ ์ฐ์ถ๋ฌผ์ด git์ผ๋ก ์ถ์ ๋๋์ง ์ธ์ ํ์ ์ธ์ง๊น์ง ๊ท์ ํฉ๋๋ค.
์ด ๋ค ๋๋ ํฐ๋ฆฌ๋ ์ ์ฅ์์ ์ฌ๋ผ๊ฐ์ง ์์ต๋๋ค. ํฌํฌํ ์ฌ๋์ด ์๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ต๋๋ค.
| ๋๋ ํฐ๋ฆฌ | ๋ฒ์ | ๋ด์ฉ |
|---|---|---|
data-company/ |
ํ์ฌ | ํ์ฌ ์ ์ฒด ๋ฌธ์, ๊ณต์ ๋ฆฌ์์ค |
data-teams/ |
ํ | ํ๋ณ ๋ฌธ์ (์ ๋ต, ํ๊ณ ๋ฑ) |
data-private/ |
๊ฐ์ธ | ๊ฐ์ธ ๋ฐ์ดํฐ, env ํ์ผ, ๋น๊ณต๊ฐ ๋ฌธ์ |
projects/ |
๊ฐ์ธ | ํ๋ก์ ํธ ๋ ํฌ (์๋ธ๋ชจ๋) |
์คํฌ์ ๋ ๊ณณ์ ๋๋์ด ์๊ณ , ์๋นํ๋ ์ฃผ์ฒด๊ฐ ๋ค๋ฆ ๋๋ค.
.agents/skills/โ AI ๋ณด์กฐ์ ์ํฌํ๋ก์ฐ ์คํฌ. Claude Code๊ฐ.claude/skills/์ฌ๋งํฌ๋ฅผ ํตํด ์ฌ์ฉํฉ๋๋ค. ๋ฆฌ๋ทฐ(review-pass), ๊ฒ์ฆ(verify-implementation), ์ํฌํธ๋ฆฌ ๋จธ์ง (merge-worktree), ๋ฌธ์ ์ถ์ถ(read-doc), ํนํยท์ ์๊ถยท๊ธ์ฌ ๊ฐ์ ์ ๋ฌด ์คํฌ, ๊ทธ๋ฆฌ๊ณfinetune-persona,secret-vault,youtube-upload๋ฑ์ด ๋ค์ด ์์ต๋๋ค.skills/โ ์ด์/๋ฐํ์ ์คํฌ. API ์๋ฒ๊ฐskills/**/SKILL.md๋ฅผ ํ์ด ๋์๋ณด๋์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฉ์ผยทSMSยท์๋ฆผ ๋ฐ์ก, ์ฑ๋ ๊ด๋ฆฌ, ์๋น์คยท์น ๋ชจ๋ํฐ๋ง, ๋ฌธ์ ์์ฑ ๊ฐ์ ๊ฒ๋ค์ด ์๊ณ ,skills/business/์๋ ์กฐ์ง์ฉ ์คํฌ(์:press-release)์ด ๋ด๊น๋๋ค.
์ ์ฒด ๋ชฉ๋ก์ ๋์๋ณด๋์ ์คํฌ ์นดํ๋ก๊ทธ์์ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค. ํ ์คํธ๋ก ์ ๋ฆฌ๋ ํ๋ AGENTS.md์ ์์ต๋๋ค.
naia-adk๋ฅผ ๋ณธ์ธ ๊ณ์ ์ผ๋ก ํฌํฌํฉ๋๋ค(๊ฐ๋ฅํ๋ฉด ๋น๊ณต๊ฐ๋ก).- ํด๋ก ํฉ๋๋ค:
git clone https://github.com/YOUR-USER/your-adk.git && cd your-adk - upstream์ ์ถ๊ฐํฉ๋๋ค:
git remote add upstream https://github.com/nextain/naia-adk.git - ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค:
mkdir -p data-private projects - ํ๋ก์ ํธ๋ฅผ ์ถ๊ฐํ๊ณ
.agents/๋ฅผ ์ค์ ํ ๋ค ์์ ์ ์์ํฉ๋๋ค. - Naia ๊ณ์ ์์์ ์ธ ๊ฒฝ์ฐ
NAIA_KEY๋ฅผ ํ๊ฒฝ ๋ณ์๋ก ์ค์ ํฉ๋๋ค. - ์ฃผ๊ธฐ์ ์ผ๋ก ๋๊ธฐํํฉ๋๋ค:
git fetch upstream && git merge upstream/main
naia-business-adk์ ๊ทผ์ ์ํด ๋ฌธ์ํฉ๋๋ค.naia-business-adk๋ฅผ ์กฐ์ง ๊ณ์ ์ผ๋ก ๋น๊ณต๊ฐ ํฌํฌํ ๋ค ํด๋ก ํฉ๋๋ค.- upstream์ ์ถ๊ฐํฉ๋๋ค:
git remote add upstream https://github.com/nextain/naia-business-adk.git - ํ์ฌ ๋ฐ์ดํฐ์ ํ๋ก์ ํธ ์๋ธ๋ชจ๋์ ์ฑ์๋๋ค:
mkdir -p data-company projects,git submodule add <repo> projects/<name> - ๊ฐ ๋ฉค๋ฒ๋ ์กฐ์ง ADK๋ฅผ ๋ค์ ํฌํฌํด ๊ฐ์ธ ์ํฌ์คํ์ด์ค๋ก ์๋๋ค.
Naia OS ๋ฐ์คํฌํฑ ์ฑ์ ์ด๋ค๋ฉด ์ํฌ์คํ์ด์ค ๊ฒฝ๋ก๋ฅผ ๋ณธ์ธ์ ADK ๋๋ ํฐ๋ฆฌ๋ก ์ง์ ํ์ธ์. ์คํฌ๊ณผ ๋ฐ์ดํฐ๊ฐ API๋ก ์ ๊ณต๋ฉ๋๋ค.
์ด์, PR, ํ ๋ก ์ ํธํ ์ธ์ด๋ก ์จ๋ ๋ฉ๋๋ค. AI๊ฐ ์ํต์ ์ค๊ฐํฉ๋๋ค. ๋ค๋ง git ๊ธฐ๋ก(์ปค๋ฐ, ์ปจํ
์คํธ,
๊ณต์ ์ฐ์ถ๋ฌผ)์ ์์ด๋ก ๋จ๊น๋๋ค. ์์ธํ ์ ์ฐจ์ ๊ท์น์ CONTRIBUTING.md๋ฅผ
์ฐธ๊ณ ํ์ธ์. ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ ์ด์ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ, ์์ธ ํ๋ฆ์ AGENTS.md์
.agents/workflows/์ ์ ๋ฆฌ๋ผ ์์ต๋๋ค.
์๋๋ ์์ง ๊ตฌํ๋์ง ์์ ๊ณํ์ผ๋ก, ํ์ฌ ๋์ํ๋ ๊ธฐ๋ฅ์ด ์๋๋๋ค.
- ์ง์ ์์(Knowledge atoms) โ ์ง๊ธ์ ์ปจํ ์คํธ๋ ํ์ผ ๋จ์๋ผ, ์ ๋ณด ํ ์กฐ๊ฐ์ ์ฐพ์ผ๋ ค ํด๋ ํ์ผ ์ ์ฒด๋ฅผ ๋ก๋ํด ํ ํฐ์ ๋ญ๋นํฉ๋๋ค. ์ด๋ฅผ ์๋ฏธ๋ฅผ ๊ฐ์ง ๊ฐ์ฅ ์์ ์ง์ ๋จ์๋ก ์ชผ๊ฐ๊ณ ํ๊ทธ์ ๋งํฌ๋ก ์ฐ๊ฒฐํด, ํ์ํ ์กฐ๊ฐ๋ง ์ ํํ ๊บผ๋ด ์ฐ๋ ๋ฐฉํฅ์ ๊ฒํ ์ค์ ๋๋ค. CLI๋ MCP๋ก ์ ๊ทผํด ๋๊ตฌ์ ๋งค์ด์ง ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
Apache License 2.0. ์์ธํ ๋ด์ฉ์ LICENSE๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Copyright 2026 Nextain Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
- Naia OS โ github.com/nextain/naia-os
- Nextain โ nextain.io
- Naia Dashboard โ naia.nextain.io