EP7. Cocrates Harness ๊ตฌ์กฐ
๐๏ธ ํ๋์ ๊ฑฐ๋ํ ํ๋กฌํํธ๊ฐ ํ์ ์ ์๋ 'AI ์ฃผ๋ฐฉ'์ ๋น๋ฐโ
"๋ฌธ์๋ ์ฐ๊ณ , ์ฝ๋๋ ์ง๊ณ , ๊ณต๋ถ๋ ์์ผ์ฃผ๊ณ , ๋ฐํ ์๋ฃ๋ ํ ๋ฒ์ ๋ค ๋ง๋ค์ด์ค!"
๋๊ตฌ๋ AI๋ฅผ ์ฌ์ฉํ ๋ ํ ๋ฒ์ฏค ๊ฟ๊ฟ๋ณด๋ ๋ง๋ฅ ์นํธํค ๊ฐ์ ์์ฒญ์ ๋๋ค. ํ์ง๋ง Cocrates๋ ๋์ ํ๊ฒ "๊ทธ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค"๋ผ๋ ๊ฒฐ๋ก ์์ ์ถ๋ฐํฉ๋๋ค.
๋ธ๋ก๊ทธ ๊ธ์ ์ฐ๋ ๋ฐฉ๋ฒ๊ณผ ๊ณ ๋์ ์ํํธ์จ์ด ์ฝ๋๋ฅผ ์ง๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ธ๊ฐ์ ๋ฉํ์ธ์ง๋ฅผ ์๊ทนํ๋ ํ์ต ํ๋์ ๊ตฌ์กฐ(Architecture) ์์ฒด๊ฐ ์์ ํ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ํ๋์ ๊ฑฐ๋ํ ํ๋กฌํํธ์ ๋ชฐ์๋ฃ์ผ๋ฉด, ์ด๊ฒ๋ ์ ๊ฒ๋ ์ ๋ฐ๋ง ์ํ๋ ์ด์ค๊ฐํ '๋ง๋ฅ ์นผ์ ๋๋ ๋ง'์ ๋น ์ง๊ฒ ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์ ๋ Cocrates์ ํต์ฌ ๋ผ๋๊ฐ ๋ฐ๋ก Agent + Skills ์ํคํ ์ฒ์ ๋๋ค.
๐ณ ์ Agent + Skills ๊ตฌ์กฐ์ธ๊ฐ? (๋ง๋ฅ ์นผ์ ํจ์ )โ
๋น์ ์ด ์ ๋ฌธ ์ฃผ๋ฐฉ์ ์ด๊ด ์ ฐํ๋ผ๊ณ ์์ํด ๋ณด์ธ์. ์์ ํ๋ฅผ ๋ฐ ๋, ์คํ ์ดํฌ๋ฅผ ๊ตฌ์ธ ๋, ๋์ ํธ๋ฅผ ํ๋ ์ดํ ํ ๋ ์ฌ์ฉํ๋ ์นผ๊ณผ ์กฐ๋ฆฌ ์์๋ ์์ ํ ๋ค๋ฆ ๋๋ค. ๋ง์ฝ ๋จ ํ๋์ ๋ง๋ฅ ์นผ๋ก ํต์กฐ๋ฆผ๋ ๋ฐ๊ณ ์์ ๋ ๋จ๋ ค๊ณ ํ๋ค๋ฉด ์๋ฆฌ์ ํ๋ฆฌํฐ๋ ํํธ์์ด์ง ๊ฒ์ ๋๋ค.
AI๊ฐ ๋ง์ฃผํ๋ ์ฐ์ถ๋ฌผ ์ ํ๋ณ ๊ตฌ์กฐ์ ์ ๊ทผ ์ญ์ ์๋ฒฝํ๊ฒ ๋ค๋ฆ ๋๋ค.
- ๋ณด๊ณ ์/๋ฌธ์: ๋ชฉ์ฐจ, ์น์ , ๋จ๋ฝ์ด๋ผ๋ ์ด์ดํ ๋ ผ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ํต์ฌ์ ๋๋ค.
- ๋ฐํ ์๋ฃ/์ฌ๋ผ์ด๋: ํ์ด์ง ๋จ์ ๋ ์ด์์๊ณผ ์๋จ ๊ฒฐ๋ก ์ ํ๋จ์ด ๋ฐ์ณ์ฃผ๋ ๊ฑฐ๋ฒ๋ ๋ฉ์์ง ๊ตฌ์กฐ๊ฐ ํ์ํฉ๋๋ค.
- ํ์ต ํ๋: ์ ๋ต์ ์ฃผ๋ ๊ฒ์ด ์๋๋ผ ํด์ ๋ฏธ์ ์ ํตํด ์ค์ค๋ก ๊นจ๋ซ๊ฒ ๋ง๋๋ ์ง๋ฌธ-ํผ๋๋ฐฑ ํ๋ฆ์ด ํ์ํฉ๋๋ค.
Cocrates๋ ๊ณตํต์ ํ๋ฒ๊ณผ ์์น์ ์ค์ฌ์ถ(Agent)์ ๋ฌถ์ด๋๊ณ , ์ฐ์ถ๋ฌผ๋ณ ์ ๋ฌธ ์ํฌํ๋ก์ฐ๋ ์ฒ ์ ํ ๋ ๋ฆฝ๋ ์ ๋ฌธ๊ฐ ํ(Skills)์ ์์ํ๋ ๊ตฌ์กฐ ๋ถ๋ฆฌ๋ฅผ ์ ํํ์ต๋๋ค. ๋๋ถ์ ์ ์ฒด ์์คํ ์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ ์๋ก์ด ์คํฌ์ ์ธ์ ๋ ๋ผ๊ณ ๋ถ์ด๋ฉฐ ์งํํ ์ ์์ต๋๋ค.
๐๏ธ Cocrates Harness์ ๋ ๊ฐ์ง ๊ธฐ๋ฅโ
1๏ธโฃ Cocrates Agent (cocrates.md) โ ๊ณตํต ์์น๊ณผ ์ปจํธ๋กค ํ์โ
์ ์ฒด ์์คํ ์ ์ต์์ ํ๋ฒ์ ๋๋ค. ์ฌ์ฉ์์ ๊ทผ๋ณธ ์๋๋ฅผ ํ์ ํ๊ณ , ์ ์ ํ ๋ถ๋(์คํฌ)๋ฅผ ํฌ์ ํ๋ฉฐ, ์ ๋ฐ์ ์ธ ๊ฐ๋๋ ์ผ๊ณผ ๋ํ ์ํ๋ฅผ ์ ์ดํฉ๋๋ค.
2๏ธโฃ Skills (.opencode/skills/*/SKILL.md) โ ๋
๋ฆฝ๋ ์ ๋ฌธ๊ฐ ํโ
ํน์ ์ฐ์ถ๋ฌผ์ด๋ ํ๋์ ์ต์ ํ๋ ์์ธํ ํ๋ ์ง์นจ์์
๋๋ค. ์ง๋ ์ํผ์๋์์ ์ฐ๋ฆฌ๊ฐ ์ง์ ์ค๊ณํ document-authoring ํ์ผ์ด๋, ์ํฌ๋ผํ
์ค์ ํ์ต์ ๊ด์ฅํ๋ education ๋ฑ์ด ์ฌ๊ธฐ์ ํด๋นํฉ๋๋ค. ๊ฐ ์คํฌ์ ์์ ํ ๋
๋ฆฝ๋์ด ์์ด ์๋ก ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
๐ Cocrates Agent Prompt์ 6๋ ํต์ฌ ๊ตฌ์กฐโ
์ปจํธ๋กค ํ์ ์ญํ ์ ํ๋ cocrates.md ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ ์ ๊ตํ 6๊ฐ ์น์
์ผ๋ก ๋น๋์
๋์ด ์์ต๋๋ค.
1. ์ ์ฒด์ฑ (Persona)โ
"๋ถํ์ค์ฑ์ ์ฒด๊ณ์ ์ธ ํ๊ตฌ๋ก ์ ํํ๊ณ , ์ฌ์ฉ์๊ฐ ๊ฒฐ๊ณผ๋ฌผ์ ์์ ํ ์ดํดํ ๋๊น์ง ๊ตฌ์กฐ ๊ธฐ๋ฐ ์ค๊ณ, ๊ฒํ , ์น์ธ์ ๊ณผ์ ์ ์๋ดํ๋ ์กด์ฌ"
Cocrates๋ ์ ๋ต์ ๋ณต์ฌยท๋ถ์ฌ๋ฃ๊ธฐ ํด์ฃผ๋ ์ํ๊ธฐ๊ฐ ์๋๋ผ, ์ฌ์ฉ์๊ฐ ๊ฒฐ๊ณผ๋ฌผ์ ์ฃผ๊ถ์ ์ก๋๋ก ๋๋ ์๊ฒฉํ ํ์ด์ค๋ฉ์ด์ปค์์ ๋ช ์ํฉ๋๋ค.
2. ํต์ฌ ์์น (Principle)โ
๊ฐ์ฅ ์ค์ํ ํ๋ฒ์ Harness Ignorance(๋ฌด์ง์ ํต์ )์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฐ์ถ๋ฌผ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๊ฑฐ๋(๋ธ๋๋ฐ์ค), ์๋ฒฝํ ๊ฒํ (Examine)ํ์ง ์์ ์ํ์์๋ ์ ๋๋ก ๋ค์ ์์ฑ ๋จ๊ณ๋ก ๋ ๋ฆผ ์งํ์ ํ์ง ๋ชปํ๋๋ก ๋ชป ๋ฐ์ ๋ก๋๋ค.
3. ๊ตฌ์กฐ (Harness Architecture)โ
๊ณตํต ์์น๊ณผ ์๋ ์ธ์์ Agent๊ฐ ์ฅ๊ณ , ๊ตฌ์ฒด์ ์ธ ํ ํ๋ฆฟ๊ณผ ์ ์ฐจ์ ๋ฃฐ์ ํ์ฅ ๊ฐ๋ฅํ Skills ํ์ผ์ ์์ํ๋ ๋ถ๋ฆฌ ์์น์ ์ ์ธํฉ๋๋ค.
4. ์์ฒญ ์ฒ๋ฆฌ (Request Handling: ์๋ ๊ธฐ๋ฐ ๋ผ์ฐํ )โ
์ฌ์ฉ์๊ฐ ํ๋ง๋๋ฅผ ๋์ก์ ๋, ๋จ์ ํค์๋ ๋งค์นญ์ด ์๋๋ผ '๊ทผ๋ณธ ์๋'๋ฅผ ์ถ๋ก ํ์ฌ ์ ํฉํ ์คํฌ๋ก ์ปค๋ฅํ ํด์ฃผ๋ ๋งคํ ํ ์ด๋ธ(Intent-To-Skill Routing)์ด ์๋ํฉ๋๋ค.
| ์ฌ์ฉ์์ ์จ์ ์๋ | ๋งคํ๋์ด ๋ฐ๋ํ๋ ์คํฌ |
|---|---|
| ์ด๋ค ๊ฐ๋ ์ ๊ธฐ์ด๋ถํฐ ์ ๋๋ก ๋ฐฐ์ฐ๊ณ ์ถ๋ค | education |
| ๋ด๊ฐ ์ ํ์ง๋ค์ ๋น๊ตํ๊ณ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์ถ๋ค | adr-writing |
| ๋ช ์ธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด์ดํ๊ฒ ์ฐ์ถ๋ฌผ์ ๋ฝ๊ณ ์ถ๋ค | spec-driven-generation |
| ์๋ก์ด ์ ํ์ ๋ฌธ์ ์์ฑ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ๋ฅด์น๊ณ ์ถ๋ค | generating-skill-creation |
5. ํต์ฌ ํ๋ (Core Activities)โ
์์คํ ์ด ๊ตด๋ฆฌ๋ ๋ ๊ฐ์ง ํต์ฌ ํ์ดํ๋ผ์ธ์ ์ ์ํฉ๋๋ค.
- ์ฐ์ถ๋ฌผ ์์ฑ: ์ค๊ณ(ADR โ Spec) โ Spec ๊ธฐ๋ฐ ์์ฑ โ ๊ฒ์ฆ
- ํ์ต ์์ญ: ์๋์ผ์ด์ โ ์ง์ ์บก์ฒ โ ๋ฆฌํ๋ ์
6. ์ฑ๊ณต ๊ธฐ์ค (Success Criteria)โ
"๋ํ๊ฐ ๋๋ฌ์ ๋ ์ฌ์ฉ์๊ฐ ์ฐ์ถ๋ฌผ์ ๊ตฌ์กฐ์ ๋ด์ฉ์ ์๊ธฐ ์ ์ผ๋ก ์ง์ ํ์ธ์๊ฒ ์ค๋ช ํ ์ ์๋๊ฐ?" ์ด ์ง๋ฌธ์ Yes๋ผ๊ณ ๋ตํ ์ ์์ ๋๋ง Cocrates๋ ๋น๋ก์ ์ธ์ ์ ์ฑ๊ณต์ ์ผ๋ก ๋ง์ณค๋ค๊ณ ํ๋จํฉ๋๋ค.
๐ ์ธ ์ค ์์ฝโ
- ๋ง๋ฅ ํ๋กฌํํธ๋ ๋ง๋ฅ ์นผ์ฒ๋ผ ๋ฌด๋์ง๋๋ค. ์ฐ์ถ๋ฌผ ์ ํ๋ง๋ค ๊ตฌ์กฐ์ ์ ๊ทผ๋ฒ์ด ์์ ํ ๋ฌ๋ผ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- Cocrates๋ Agent(ํ๋ฒ)์ Skills(์ ๋ฌธ ๋ถ๋)๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. ๊ณตํต์ ํต์ ์ฒด๊ณ๋ ์ ์งํ๋, ๊ฐ๋ณ ์ํฌํ๋ก์ฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ๊ธฐ ์ํจ์ ๋๋ค.
- Intent-To-Skill Routing์ด ์๋๋ฅผ ์ฝ์ด๋ ๋๋ค. ๋จ์ ํ ์คํธ ๋งค์นญ์ด ์๋๋ผ, ์ ์ ์ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์ ํด์ํด ์ต์ ์ ํ๋ ์คํฌ์ ๋ก๋ํฉ๋๋ค.
๐ฌ ๋ค์ ํธ ์๊ณ โ
Cocrates Harness๊ฐ ์ ์ดํ ๋ก ๊ฒฌ๊ณ ํ ์ด์ค ๊ตฌ์กฐ๋ฅผ ์ทจํ๊ฒ ๋์๋์ง ์ํคํ ์ฒ์ ๋น๋ฐ์ ํ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด ๊ตฌ์กฐ ์์์ ๋์๊ฐ๋ ์ฒซ ๋ฒ์งธ ์ถ, ๋ฐ๋ก '์ํฌ๋ผํ ์ค์ ํ์ต ํ๋'์ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์๋ฆฌ์ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ธ๊ฐ์ ๋๋ฅผ ์๊ทนํ๋ ๊ฑธ๊น์? Cocrates๋ ์ ์๊พธ "๋ต์ ๊ฐ๋ฅด์ณ๋ฌ๋ผ"๋ ์ ์ ์ ์ ์์ ์ง๋ฌธ์ผ๋ก ๋๋ฐ์์น๋์ง, ๊ทธ ์ง๊ถ์ง๋ง ์ ๊ตํ ๊ต์ก ํ์ดํ๋ผ์ธ์ ์๋ด๋ฅผ ๋ค์ ์ํผ์๋์์ ๋ฑ๋ฑ์ด ํํค์ณ ๋ณด๊ฒ ์ต๋๋ค!
"์ง์์ ์๋์ ์ผ๋ก ์ฃผ์ ๋ด๋ ์ธํ๋ฒ ์ดํฐ์์ ๋ฒ์ด๋, ์ง๋ฌธ์ ์ฃผ์ธ์ด ๋์ญ์์ค."
์ด ์๋ฆฌ์ฆ๋ Cocrates Harness ํ๋ ์์ํฌ๋ฅผ ์๊ฐํฉ๋๋ค. Cocrates๋ ์ํฌ๋ผํ ์ค์ ๋ํ๋ก ์ฌ์ฉ์๊ฐ ์ฃผ๋๊ถ์ ์ก๊ณ ์ฑ์ฅํ๋๋ก ์ค๊ณ๋ ์์ด์ ํธ ํ๋ค์ค์ ๋๋ค.