Agent Avengers
์ฌ์ธ์ ๋ฉํฐ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์ . ๋ณต์กํ ํ์คํฌ๋ฅผ ์๋์ผ๋ก ๋ถํดํ๊ณ , ์ ๋ฌธ ์์ด์ ํธ๋ค์ ์ฆ์์์ ์์ฑ/์คํฐํ์ฌ ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํฉ๋๋ค. TRIGGERS: avengers assemble, ์ด๋ฒค์ ์ค, agent-avengers, ๋ฉํฐ์์ด์ ํธ ์๋ํ, ์์ด์ ํธ ํ ๊ตฌ์ฑ, ์๋ ์์ด์ ํธ
ๆ่ฝ่ฏดๆ
name: agent-avengers description: | ์ฌ์ธ์ ๋ฉํฐ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์ . ๋ณต์กํ ํ์คํฌ๋ฅผ ์๋์ผ๋ก ๋ถํดํ๊ณ , ์ ๋ฌธ ์์ด์ ํธ๋ค์ ์ฆ์์์ ์์ฑ/์คํฐํ์ฌ ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํฉ๋๋ค.
TRIGGERS: avengers assemble, ์ด๋ฒค์ ์ค, agent-avengers, ๋ฉํฐ์์ด์ ํธ ์๋ํ, ์์ด์ ํธ ํ ๊ตฌ์ฑ, ์๋ ์์ด์ ํธ version: 1.0.0 author: ์นด๋ผ์
๐ฆธ Agent Avengers
"์ด๋ฒค์ ์ค, ์ด์ ๋ธ!" โ ๋ณต์กํ ํ์คํฌ๋ฅผ ์๋์ผ๋ก ์์ด์ ํธ ํ์ด ์ฒ๋ฆฌ
ํต์ฌ ๊ธฐ๋ฅ
- ์๋ ํ์คํฌ ๋ถํด โ ํฐ ์์ ์ ๋ ๋ฆฝ์ ์๋ธํ์คํฌ๋ก ๋ถํ
- ๋์ ์์ด์ ํธ ์์ฑ โ ๊ฐ ํ์คํฌ์ ๋ง๋ ์ ๋ฌธ ์์ด์ ํธ ์ฆ์ ์์ฑ
- ๋ณ๋ ฌ ์คํ โ ๋ ๋ฆฝ ํ์คํฌ๋ ๋์ ์ฒ๋ฆฌ
- ์๋ ํตํฉ โ ๊ฒฐ๊ณผ ์์ง, ๊ฒ์ฆ, ๋ณํฉ
- ์๋ฃ ํ ์ ๋ฆฌ โ ์์ ์์ด์ ํธ ์๋ ํด์
์ฌ์ฉ๋ฒ
๊ธฐ๋ณธ ์ฌ์ฉ
์ฌ์ฉ์: "์ด๋ฒค์ ์ค ์ด์
๋ธ! [๋ณต์กํ ํ์คํฌ ์ค๋ช
]"
์์
"์ด๋ฒค์ ์ค ์ด์
๋ธ! ๊ฒฝ์์ฌ A, B, C ๋ถ์ํด์ ๋น๊ต ๋ฆฌํฌํธ ๋ง๋ค์ด์ค"
โ ์๋์ผ๋ก:
1. ํ์คํฌ ๋ถํด (3๊ฐ ๋ฆฌ์์น + 1๊ฐ ํตํฉ)
2. ์์ด์ ํธ 3๊ฐ ์คํฐ (๊ฐ ํ์ฌ ๋ด๋น)
3. ๋ณ๋ ฌ ๋ฆฌ์์น ์คํ
4. ๊ฒฐ๊ณผ ํตํฉ ์์ด์ ํธ๊ฐ ์ต์ข
๋ฆฌํฌํธ ์์ฑ
5. ์๋ฃ ๋ณด๊ณ
์ํฌํ๋ก์ฐ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฆธ AVENGERS ASSEMBLE โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 1๏ธโฃ ANALYZE โ ํ์คํฌ ๋ถ์ ๋ฐ ๋ถํด โ
โ โโ ๋ชฉํ ํ์
โ ์๋ธํ์คํฌ ๋์ถ โ ์์กด์ฑ ๋งคํ โ
โ โ
โ 2๏ธโฃ RECRUIT โ ์์ด์ ํธ ํ ๊ตฌ์ฑ โ
โ โโ ๊ฐ ์๋ธํ์คํฌ์ ์ต์ ์์ด์ ํธ ํ๋กํ ์์ฑ โ
โ โโ ์์ด์ ํธ ์ญํ : ๐ฌ์ฐ๊ตฌ ๐๏ธ์์ฑ ๐๋ถ์ โ
๊ฒํ ๐งํตํฉ โ
โ โ
โ 3๏ธโฃ DEPLOY โ ์์ด์ ํธ ์คํฐ ๋ฐ ํ์คํฌ ํ ๋น โ
โ โโ sessions_spawn์ผ๋ก ๋ณ๋ ฌ ์คํ โ
โ โโ ๊ฐ ์์ด์ ํธ์ ๋ช
ํํ ์
๋ ฅ/์ถ๋ ฅ ์ง์ โ
โ โ
โ 4๏ธโฃ MONITOR โ ์งํ ์ํฉ ์ถ์ โ
โ โโ ์๋ฃ ๋๊ธฐ, ์คํจ ์ ์ฌ์๋ ๋๋ ๋์ฒด โ
โ โ
โ 5๏ธโฃ ASSEMBLE โ ๊ฒฐ๊ณผ ํตํฉ โ
โ โโ ๋ชจ๋ ์ฐ์ถ๋ฌผ ์์ง โ ๊ฒ์ฆ โ ๋ณํฉ โ
โ โ
โ 6๏ธโฃ REPORT โ ์ต์ข
๋ณด๊ณ ๋ฐ ์ ๋ฆฌ โ
โ โโ ์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ ์ ๋ฌ, ์์ ๋ฆฌ์์ค ์ ๋ฆฌ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
์์ด์ ํธ ๋ชจ๋
๐ท Mode 1: ๊ธฐ์กด ์์ด์ ํธ ํ์ฉ
Gateway์ ๋ฑ๋ก๋ ์์ด์ ํธ๋ค์ ์กฐํฉํ์ฌ ์ฌ์ฉ
// ๊ธฐ์กด ์์ด์ ํธ์๊ฒ ํ์คํฌ ์ ๋ฌ
sessions_send({
label: "watson", // ๊ธฐ์กด ์์ด์ ํธ ID
message: "X ๋ฆฌ์์นํด์ค",
timeoutSeconds: 300
})
์ฅ์ :
- ์์ด์ ํธ๋ณ ์ ๋ฌธ์ฑ/๊ธฐ์ต ์ ์ง
- Discord ์ฑ๋ ๋ฐ์ธ๋ฉ ํ์ฉ ๊ฐ๋ฅ
- ์ง์์ ์ธ ์ปจํ ์คํธ
๐ถ Mode 2: ์์ ์์ด์ ํธ ์คํฐ
ํ์คํฌ๋ณ๋ก ์ผํ์ฑ ์์ด์ ํธ ์์ฑ
// ์์ ์๋ธ์์ด์ ํธ ์คํฐ
sessions_spawn({
task: "X ๋ถ์ํด์ค",
model: "sonnet",
runTimeoutSeconds: 1800,
cleanup: "delete"
})
์ฅ์ :
- ๊ฒฉ๋ฆฌ๋ ์คํ
- ์๋ฃ ํ ์๋ ์ ๋ฆฌ
- ์ ์ฐํ ๋ชจ๋ธ ์ ํ
๐ฃ Mode 3: ๋ฉํฐ ํ๋กํ (๋ด ์ธ์คํด์ค)
๋ค๋ฅธ OpenClaw ํ๋กํ/๋ด์ ํ์ ์ฐธ์ฌ์ํด
# ํ๋กํ ๋ชฉ๋ก ์์
profiles:
- name: "main" # ๋ฉ์ธ ๋ด (์นด๋ผ์)
specialty: ["์กฐ์จ", "ํตํฉ"]
- name: "research-bot" # ๋ฆฌ์์น ์ ์ฉ ๋ด
specialty: ["์ฌ์ธต์กฐ์ฌ", "๋ฐ์ดํฐ์์ง"]
model: opus
- name: "code-bot" # ์ฝ๋ฉ ์ ์ฉ ๋ด
specialty: ["๊ฐ๋ฐ", "ํ
์คํธ"]
model: opus
- name: "creative-bot" # ํฌ๋ฆฌ์์ดํฐ๋ธ ๋ด
specialty: ["๋์์ธ", "์ฝํ
์ธ "]
model: gemini
๋ด ๊ฐ ํต์ :
// ๋ค๋ฅธ ํ๋กํ์ ๋ด์๊ฒ ํ์คํฌ ์ ๋ฌ
sessions_send({
sessionKey: "research-bot:main", // ํ๋กํ:์ธ์
message: "์ฌ์ธต ๋ฆฌ์์น ์์ฒญ: X",
timeoutSeconds: 600
})
์ฅ์ :
- ๋ด๋ณ ์ ์ฉ ๋ชจ๋ธ/์ค์
- ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฅ๋ ฅ ๊ทน๋ํ
- ๊ฐ ๋ด์ ์ ๋ฌธ ์คํฌ ํ์ฉ
- ๋ถํ ๋ถ์ฐ
๐ท๐ถ๐ฃ Mode 4: ํ ํ์ด๋ธ๋ฆฌ๋ (๊ถ์ฅ)
๊ธฐ์กด ์์ด์ ํธ + ์์ ์คํฐ + ๋ฉํฐ ํ๋กํ ํตํฉ
์์: "๋๊ท๋ชจ ๊ฒฝ์ ๋ถ์ ํ๋ก์ ํธ"
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฃ research-bot (๋ณ๋ ๋ด) โ
โ โโโ ๐ฌ watson (์์ด์ ํธ) โ A์ฌ ์กฐ์ฌ โ
โ โโโ ๐ถ temp-1 (์คํฐ) โ B์ฌ ์กฐ์ฌ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ฃ code-bot (๋ณ๋ ๋ด) โ
โ โโโ ๐ป ๋ถ์ ์คํฌ๋ฆฝํธ ์์ฑ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ท main (์นด๋ผ์) โ
โ โโโ ๐ง ๊ฒฐ๊ณผ ํตํฉ + ๋ฆฌํฌํธ ์์ฑ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ํ๋กํ ์ค์
avengers.yaml ํ๋กํ ์น์
profiles:
# ๋ฉ์ธ ๋ด (์ค์ผ์คํธ๋ ์ดํฐ ์ญํ )
main:
role: orchestrator
canSpawn: true
canDelegate: true
# ๋ฆฌ์์น ์ ์ฉ ๋ด
research-bot:
role: specialist
specialty: ["research", "analysis", "data"]
model: "anthropic/claude-opus-4-5"
gateway: "localhost:3001" # ๋ณ๋ ํฌํธ
# ์ฝ๋ฉ ์ ์ฉ ๋ด
code-bot:
role: specialist
specialty: ["coding", "testing", "debugging"]
model: "anthropic/claude-opus-4-5"
gateway: "localhost:3002"
# ํฌ๋ฆฌ์์ดํฐ๋ธ ๋ด
creative-bot:
role: specialist
specialty: ["design", "image", "content"]
model: "google/gemini-2.5-pro"
gateway: "localhost:3003"
ํ๋กํ ๊ฐ ํต์ ํ๋กํ ์ฝ
// 1. ํ๋กํ ์ํ ํ์ธ
const profiles = await checkProfileStatus([
"research-bot",
"code-bot",
"creative-bot"
])
// 2. ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋กํ์ ํ์คํฌ ๋ถ๋ฐฐ
for (const task of tasks) {
const bestProfile = matchProfileToTask(task, profiles)
if (bestProfile.type === "external") {
// ๋ค๋ฅธ ๋ด์๊ฒ ์ ๋ฌ
await sendToProfile(bestProfile.name, task)
} else if (bestProfile.type === "agent") {
// ํ์ฌ ๋ด์ ์์ด์ ํธ์๊ฒ
await sessions_send({ label: bestProfile.agentId, message: task })
} else {
// ์์ ์คํฐ
await sessions_spawn({ task: task.description })
}
}
// 3. ๋ชจ๋ ํ๋กํ ์๋ฃ ๋๊ธฐ
await waitForAllProfiles(assignedTasks)
// 4. ๊ฒฐ๊ณผ ์์ง ๋ฐ ํตํฉ
const results = await collectFromProfiles(assignedTasks)
์์ด์ ํธ ํ์
| ํ์ | ์ด๋ชจ์ง | ์ญํ | ๋ชจ๋ธ ์ถ์ฒ |
|---|---|---|---|
| Researcher | ๐ฌ | ์น ๊ฒ์, ๋ฐ์ดํฐ ์์ง | sonnet |
| Analyst | ๐ | ๋ฐ์ดํฐ ๋ถ์, ํจํด ๋ฐ๊ฒฌ | opus |
| Writer | ๐๏ธ | ์ฝํ ์ธ ์์ฑ, ๋ฌธ์ํ | sonnet |
| Coder | ๐ป | ์ฝ๋ ๊ตฌํ, ํ ์คํธ | opus |
| Reviewer | โ | ํ์ง ๊ฒํ , ํผ๋๋ฐฑ | opus |
| Integrator | ๐ง | ๊ฒฐ๊ณผ ๋ณํฉ, ์ต์ข ์ฐ์ถ๋ฌผ | sonnet |
๊ธฐ์กด ์์ด์ ํธ ์ฐ๋
์์ด์ ํธ ๋ชฉ๋ก ํ์ธ
// ํ์ฑ ์์ด์ ํธ ์กฐํ
sessions_list({ kinds: ["agent"], limit: 10 })
// ๋๋ agents_list()๋ก ๋ฑ๋ก๋ ์์ด์ ํธ ID ํ์ธ
agents_list()
์์ด์ ํธ๋ณ ์ ๋ฌธ ๋ถ์ผ ๋งคํ
avengers.yaml์ ์ ์:
agents:
watson:
type: researcher
specialty: "์ฌ์ธต ๋ฆฌ์์น, ๊ฒฝ์ ๋ถ์"
priority: high
picasso:
type: creator
specialty: "์ด๋ฏธ์ง ์์ฑ, ๋์์ธ"
priority: medium
coder-bot:
type: coder
specialty: "์ฝ๋ ๊ตฌํ, ๋๋ฒ๊น
"
priority: high
์๋ ์์ด์ ํธ ์ ํ
ํ์คํฌ ๋ถ์ ์ ์ ํฉํ ๊ธฐ์กด ์์ด์ ํธ ์๋ ๋งค์นญ:
ํ์คํฌ: "A์ฌ ๊ฒฝ์ ๋ถ์"
โ watson (researcher, ์ฌ์ธต ๋ฆฌ์์น) โ
๋งค์นญ
ํ์คํฌ: "์ธํฌ๊ทธ๋ํฝ ๋ง๋ค๊ธฐ"
โ picasso (creator, ๋์์ธ) โ
๋งค์นญ
ํ์คํฌ: "API ์ฐ๋ ์ฝ๋ ์์ฑ"
โ coder-bot (coder) โ
๋งค์นญ
ํ์คํฌ: "B์ฌ ์กฐ์ฌ" (์ ๋ฌธ ์์ด์ ํธ ์์)
โ temp-researcher ์คํฐ ๐ถ
์คํ ๋ฐฉ๋ฒ
Phase 1: ํ์คํฌ ๋ถ์
์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ์ผ๋ฉด:
## ํ์คํฌ ๋ถ์
**์๋ณธ ์์ฒญ:** [์ฌ์ฉ์ ์์ฒญ ์ ๋ฌธ]
**๋ชฉํ:** [์ต์ข
์ฐ์ถ๋ฌผ]
**์๋ธํ์คํฌ:**
1. [ํ์คํฌ1] - ๋ด๋น: [์์ด์ ํธํ์
] - ์์กด์ฑ: ์์
2. [ํ์คํฌ2] - ๋ด๋น: [์์ด์ ํธํ์
] - ์์กด์ฑ: ์์
3. [ํ์คํฌ3] - ๋ด๋น: [์์ด์ ํธํ์
] - ์์กด์ฑ: 1,2
**๋ณ๋ ฌ ์คํ ๊ฐ๋ฅ:** 1, 2
**์์ฐจ ์คํ ํ์:** 3 (1,2 ์๋ฃ ํ)
Phase 2: ์์ด์ ํธ ๊ตฌ์ฑ
Step 2a: ๊ธฐ์กด ์์ด์ ํธ ํ์ธ
// ์ฌ์ฉ ๊ฐ๋ฅํ ์์ด์ ํธ ๋ชฉ๋ก
const availableAgents = agents_list()
const activeAgents = sessions_list({ kinds: ["agent"] })
Step 2b: ํ์คํฌ-์์ด์ ํธ ๋งค์นญ
## ์์ด์ ํธ ๋ฐฐ์
| ์๋ธํ์คํฌ | ๋ฐฐ์ | ๋ชจ๋ | ์ด์ |
|------------|------|------|------|
| A์ฌ ๋ฆฌ์์น | watson | ๊ธฐ์กด | ๋ฆฌ์์น ์ ๋ฌธ๊ฐ |
| B์ฌ ๋ฆฌ์์น | temp-1 | ์คํฐ | ์ถ๊ฐ ๋ฆฌ์์ค ํ์ |
| C์ฌ ๋ฆฌ์์น | temp-2 | ์คํฐ | ์ถ๊ฐ ๋ฆฌ์์ค ํ์ |
| ํตํฉ ๋ฆฌํฌํธ | temp-integ | ์คํฐ | ์ผํ์ฑ ์์
|
Step 2c: ์คํ ๊ณํ
## ์คํ ์์
**Phase A (๋ณ๋ ฌ):**
- watson โ A์ฌ ๋ฆฌ์์น
- temp-1 โ B์ฌ ๋ฆฌ์์น
- temp-2 โ C์ฌ ๋ฆฌ์์น
**Phase B (์์ฐจ, Phase A ์๋ฃ ํ):**
- temp-integrator โ ๊ฒฐ๊ณผ ํตํฉ
Phase 3: ์์ด์ ํธ ๋์คํจ์น
๊ธฐ์กด ์์ด์ ํธ ํ์ฉ
// ๊ธฐ์กด ์์ด์ ํธ์๊ฒ ํ์คํฌ ์ ๋ฌ
sessions_send({
label: "watson",
message: `
## ํ์คํฌ: A์ฌ ๊ฒฝ์ ๋ถ์
### ์์ฒญ
- ํ์ฌ ๊ฐ์
- ์ฃผ์ ์ ํ/์๋น์ค
- ์์ฅ ํฌ์ง์
- ๊ฐ์ /์ฝ์
### ์ถ๋ ฅ ํ์
๋งํฌ๋ค์ด ๋ฆฌํฌํธ
### ์๋ฃ ํ
"A์ฌ ๋ถ์ ์๋ฃ" ๋ผ๊ณ ์๋ ค์ค
`,
timeoutSeconds: 600
})
์์ ์์ด์ ํธ ์คํฐ
sessions_spawn({
task: `
[์์ด์ ํธ ์ญํ ์ค๋ช
]
## ํ์คํฌ
${subtask.description}
## ์
๋ ฅ
${subtask.inputs}
## ๊ธฐ๋ ์ถ๋ ฅ
${subtask.expectedOutput}
## ์๋ฃ ์กฐ๊ฑด
${subtask.successCriteria}
`,
model: subtask.recommendedModel,
runTimeoutSeconds: 1800,
cleanup: "delete"
})
Phase 3: ๊ฒฐ๊ณผ ํตํฉ
๋ชจ๋ ์์ด์ ํธ ์๋ฃ ํ:
- ๊ฐ ์์ด์ ํธ์ ์ฐ์ถ๋ฌผ ์์ง
- ํ์ง ๊ฒ์ฆ (์ฑ๊ณต ๊ธฐ์ค ์ถฉ์กฑ ์ฌ๋ถ)
- ์ถฉ๋ ํด๊ฒฐ (๊ฒน์น๋ ๋ด์ฉ)
- ์ต์ข ์ฐ์ถ๋ฌผ ์์ฑ
- ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
์์ ์๋๋ฆฌ์ค
์๋๋ฆฌ์ค 1: ๊ฒฝ์์ฌ ๋ถ์ (ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋)
์
๋ ฅ: "์ด๋ฒค์ ์ค ์ด์
๋ธ! A์ฌ, B์ฌ, C์ฌ ๊ฒฝ์ ๋ถ์ ๋ฆฌํฌํธ"
์์ด์ ํธ ๊ตฌ์ฑ:
โโโ ๐ฌ watson (๊ธฐ์กด) โ A์ฌ ์กฐ์ฌ (์ ๋ฌธ์ฑ ํ์ฉ)
โโโ ๐ฌ temp-researcher-1 (์คํฐ) โ B์ฌ ์กฐ์ฌ
โโโ ๐ฌ temp-researcher-2 (์คํฐ) โ C์ฌ ์กฐ์ฌ
โโโ ๐ง temp-integrator (์คํฐ) โ ๋น๊ต ๋ฆฌํฌํธ ์์ฑ
์คํ:
1. watson์๊ฒ sessions_send๋ก A์ฌ ํ์คํฌ ์ ๋ฌ
2. temp-1, temp-2 ๋ณ๋ ฌ ์คํฐ
3. 3๊ฐ ๋ชจ๋ ์๋ฃ ๋๊ธฐ
4. temp-integrator ์คํฐ, ๊ฒฐ๊ณผ ํตํฉ
5. ์ต์ข
๋ฆฌํฌํธ ์ ๋ฌ
์๋๋ฆฌ์ค 2: ์ฑ ๊ฐ๋ฐ (์ ์ฒด ์คํฐ)
์
๋ ฅ: "์ด๋ฒค์ ์ค ์ด์
๋ธ! ๋ ์จ ์ฑ ๋ง๋ค์ด์ค"
์์ด์ ํธ ๊ตฌ์ฑ:
โโโ ๐ temp-analyst โ ์๊ตฌ์ฌํญ ์ ์
โโโ ๐ป temp-frontend โ UI ๊ตฌํ
โโโ ๐ป temp-backend โ API ์ฐ๋
โโโ โ
temp-reviewer โ ์ฝ๋ ๋ฆฌ๋ทฐ
โโโ ๐ง temp-integrator โ ํตํฉ ๋ฐ ํ
์คํธ
์คํ:
1. Analyst ๋จผ์ (์๊ตฌ์ฌํญ ๋์ถ)
2. Frontend/Backend 2๋ช
๋ณ๋ ฌ
3. Reviewer๊ฐ ๊ฒํ
4. Integrator๊ฐ ํตํฉ ํ
์คํธ
5. ์์ฑ๋ ์ฑ ์ ๋ฌ
์๋๋ฆฌ์ค 3: ๊ธฐ์กด ์์ด์ ํธ ํ ํ์ฉ
์
๋ ฅ: "์ด๋ฒค์ ์ค ์ด์
๋ธ! watson์ด๋ picasso ์จ์ ๋ฆฌ์์น + ์ธํฌ๊ทธ๋ํฝ"
์์ด์ ํธ ๊ตฌ์ฑ:
โโโ ๐ฌ watson (๊ธฐ์กด) โ ์ฌ์ธต ๋ฆฌ์์น
โโโ ๐จ picasso (๊ธฐ์กด) โ ์ธํฌ๊ทธ๋ํฝ ์ ์ (watson ์๋ฃ ํ)
์คํ:
1. sessions_send(watson, "๋ฆฌ์์น ํ์คํฌ")
2. watson ์๋ฃ ๋๊ธฐ
3. sessions_send(picasso, "์ธํฌ๊ทธ๋ํฝ ํ์คํฌ + watson ๊ฒฐ๊ณผ")
4. ์ต์ข
์ ๋ฌ
์๋๋ฆฌ์ค 4: ๋ฉํฐ ํ๋กํ ๋๊ท๋ชจ ํ๋ก์ ํธ
์
๋ ฅ: "์ด๋ฒค์ ์ค ์ด์
๋ธ! ์ ์ฒด ๋ด ๋์ํด์ ์ ๊ท ์๋น์ค ๊ธฐํ๋ถํฐ ๊ฐ๋ฐ๊น์ง"
ํ๋กํ ๊ตฌ์ฑ:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฃ research-bot โ
โ โโโ ์์ฅ ์กฐ์ฌ + ๊ฒฝ์์ฌ ๋ถ์ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ฃ creative-bot โ
โ โโโ UI/UX ๋์์ธ + ๋ธ๋๋ฉ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ฃ code-bot โ
โ โโโ ํ๋ก ํธ์๋ + ๋ฐฑ์๋ ๊ฐ๋ฐ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ท main (์นด๋ผ์) โ
โ โโโ ์ค์ผ์คํธ๋ ์ด์
+ ์ต์ข
ํตํฉ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
์คํ:
1. research-bot์ ์์ฅ ์กฐ์ฌ ์์ฒญ
2. ์กฐ์ฌ ์๋ฃ โ creative-bot์ ๋์์ธ ์์ฒญ
3. ๋์์ธ ์๋ฃ โ code-bot์ ๊ฐ๋ฐ ์์ฒญ
4. main์ด ์ ์ฒด ํตํฉ ๋ฐ QA
5. ์ต์ข
์ฐ์ถ๋ฌผ ์ ๋ฌ
๊ฐ๋๋ ์ผ
์๋ ์ค๋จ ์กฐ๊ฑด
- ์์ด์ ํธ ์คํจ 3ํ ์ฐ์
- ์ ์ฒด ํ์์์ ์ด๊ณผ (๊ธฐ๋ณธ 2์๊ฐ)
- ์ฌ์ฉ์ ์ทจ์ ์์ฒญ
์์ ์ฅ์น
- ๊ฐ ์์ด์ ํธ๋ ๊ฒฉ๋ฆฌ๋ ์ธ์ ์์ ์คํ
- ํ์ผ ์์ ์ ์ง์ ๋ ์ถ๋ ฅ ๊ฒฝ๋ก๋ง ํ์ฉ
- ์ธ๋ถ API ํธ์ถ์ ์น์ธ๋ ๊ฒ๋ง
์ค์
๊ธฐ๋ณธ๊ฐ
avengers:
maxAgents: 5 # ๋์ ์์ด์ ํธ ์ (๊ธฐ์กด+์คํฐ ํฉ์ฐ)
maxProfiles: 4 # ๋์ ์ฌ์ฉ ํ๋กํ ์
timeoutMinutes: 120 # ์ ์ฒด ํ์์์
retryCount: 2 # ์คํจ ์ ์ฌ์๋
defaultModel: "sonnet" # ์คํฐ ์์ด์ ํธ ๊ธฐ๋ณธ ๋ชจ๋ธ
cleanupOnComplete: true # ์๋ฃ ํ ์์ ์์ด์ ํธ ์ ๋ฆฌ
preferExisting: true # ๊ธฐ์กด ์์ด์ ํธ ์ฐ์ ์ฌ์ฉ
useMultiProfile: true # ๋ฉํฐ ํ๋กํ ๋ชจ๋ ํ์ฑํ
ํ๋กํ ์ค์
profiles:
main:
role: orchestrator
gateway: "localhost:3000"
research-bot:
role: specialist
specialty: ["research", "analysis"]
model: opus
gateway: "localhost:3001"
code-bot:
role: specialist
specialty: ["coding", "testing"]
model: opus
gateway: "localhost:3002"
creative-bot:
role: specialist
specialty: ["design", "content"]
model: gemini
gateway: "localhost:3003"
์์ด์ ํธ ๋งคํ
agents:
# ๊ธฐ์กด ์์ด์ ํธ ์ ์
watson:
type: researcher
specialty: ["๋ฆฌ์์น", "๊ฒฝ์๋ถ์", "์์ฅ์กฐ์ฌ"]
model: opus
picasso:
type: creator
specialty: ["์ด๋ฏธ์ง", "๋์์ธ", "์ธํฌ๊ทธ๋ํฝ"]
model: gemini-flash
coder-bot:
type: coder
specialty: ["์ฝ๋ฉ", "API", "๋ฐฑ์๋", "ํ๋ก ํธ์๋"]
model: opus
# ์คํฐ ์์ด์ ํธ ํ
ํ๋ฆฟ
templates:
researcher:
model: sonnet
timeout: 1800
analyst:
model: opus
timeout: 1200
writer:
model: sonnet
timeout: 900
coder:
model: opus
timeout: 2400
๐ ์ฐฝ๋ฐ์ ํ์ ํจํด
1. ๐ณ๏ธ ๊ฒฝ์ ๋๋ํํธ (Competitive Draft)
๋์ผ ํ์คํฌ๋ฅผ ์ฌ๋ฌ ์์ด์ ํธ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ํ โ ๊ฒฐ๊ณผ ๋น๊ต โ ์ต๊ณ ์ ์ ํ
ํ์คํฌ: "๋ง์ผํ
์ ๋ต ์๋ฆฝ"
โโโ ๐ท watson โ ์ ๋ต A (๋ฐ์ดํฐ ๊ธฐ๋ฐ)
โโโ ๐ถ temp-strategist-1 โ ์ ๋ต B (์ฐฝ์์ )
โโโ ๐ฃ creative-bot โ ์ ๋ต C (๊ฐ์ฑ์ )
โโโ ๐ณ๏ธ ํฌํ/ํ๊ฐ โ ์ต๊ณ ์ ์ ํ ๋๋ ํ์ด๋ธ๋ฆฌ๋
์ฅ์ : ๋ค์ํ ๊ด์ , ์ต์ ํด ๋์ถ
2. ๐ญ ์ญํ ์ํ (Role Rotation)
์งํ ์ค ์ญํ ์ ๋ฐ๊ฟ์ ์ ์ ํ ์๊ฐ ํ๋ณด
Round 1:
โโโ Agent A: ์์ด๋์ด ์ ์
โโโ Agent B: ๋นํ
โโโ Agent C: ๊ฐ์
Round 2 (์ํ):
โโโ Agent B: ์์ด๋์ด ์ ์
โโโ Agent C: ๋นํ
โโโ Agent A: ๊ฐ์
โ ๊ณ ์ฐฉํ ๋ฐฉ์ง, ๋ค๊ฐ์ ๊ฒํ
3. โ๏ธ ์ ๋์ ํ๋ ฅ (Adversarial Collaboration)
ํ ์์ด์ ํธ๊ฐ ๋ง๋ค๋ฉด ๋ค๋ฅธ ์์ด์ ํธ๊ฐ ๊ณต๊ฒฉ์ ์ผ๋ก ๋นํ โ ๋ฐ๋ณต
Creator โโโ ์ด์ ์์ฑ
โ
Critic โโโ "์ด๊ฑด ์ ํ๋ ธ๋๊ฐ" ๊ณต๊ฒฉ
โ
Creator โโโ ๋ฐฉ์ด ๋ฐ ๊ฐ์
โ
Critic โโโ ์ฌ๊ณต๊ฒฉ
โ
(3๋ผ์ด๋ ๋ฐ๋ณต)
โ
Arbiter โโโ ์ต์ข
ํ์
๊ฒฐ๊ณผ: ํจ์ฌ ๊ฒฌ๊ณ ํ ์ฐ์ถ๋ฌผ
4. ๐งฌ ์งํ์ ์ ํ (Evolutionary Selection)
์ฌ๋ฌ ์๋ฃจ์ ์์ฑ โ ํ๊ฐ โ ์์๊ถ ๊ต๋ฐฐ โ ๋ฐ๋ณต
Generation 1:
โโโ Solution A (์ ์: 7)
โโโ Solution B (์ ์: 8) โ
โโโ Solution C (์ ์: 5)
โโโ Solution D (์ ์: 9) โ
Generation 2:
โโโ B + D ํ์ด๋ธ๋ฆฌ๋ โ E
โโโ D ๋ณํ โ F
โโโ B ๋ณํ โ G
... 3์ธ๋ ๋ฐ๋ณต โ ์ต์ ํด
5. ๐ ์ค์ ์ธํ ๋ฆฌ์ ์ค (Swarm Intelligence)
๋ง์ ๋ง์ดํฌ๋ก ์์ด์ ํธ๊ฐ ์์ ์กฐ๊ฐ ์ฒ๋ฆฌ โ ์ฐฝ๋ฐ์ ๊ฒฐ๊ณผ
ํ์คํฌ: "100๊ฐ ๊ธฐ์
๋ถ์"
Swarm:
โโโ micro-1 โ ๊ธฐ์
1-10
โโโ micro-2 โ ๊ธฐ์
11-20
โโโ micro-3 โ ๊ธฐ์
21-30
...
โโโ micro-10 โ ๊ธฐ์
91-100
Aggregator โ ํจํด ๋ฐ๊ฒฌ, ํตํฉ ์ธ์ฌ์ดํธ
6. ๐ ์ฒด์ธ ๋ฆด๋ ์ด (Chain Relay)
ํ ์์ด์ ํธ์ ์ถ๋ ฅ์ด ๋ค์ ์์ด์ ํธ์ ์ ๋ ฅ (๋ณํ ์ ๋ฌ)
Agent A: ์์ ๋ฐ์ดํฐ ์์ง
โ (๋ฐ์ดํฐ)
Agent B: ํจํด ์ถ์ถ
โ (ํจํด)
Agent C: ์ธ์ฌ์ดํธ ๋์ถ
โ (์ธ์ฌ์ดํธ)
Agent D: ์ก์
์์ดํ
์์ฑ
โ (๊ณํ)
Agent E: ์คํ
๊ฐ ๋จ๊ณ์์ ๊ฐ์น ์ฆํญ
7. ๐ญ ํฉ์ ํ๋กํ ์ฝ (Consensus Protocol)
๋ชจ๋ ์์ด์ ํธ๊ฐ ๋์ํด์ผ ์งํ
Proposal: "์ด ๋ฐฉํฅ์ผ๋ก ๊ฐ์"
โโโ Agent A: ๋์ โ
โโโ Agent B: ๋ฐ๋ โ (์ด์ : X)
โโโ Agent C: ๋์ โ
โโโ Agent D: ์กฐ๊ฑด๋ถ ๋์
โ ๋ฐ๋ ์๊ฒฌ ํด์ ํ ์ฌํฌํ
โ ๋ง์ฅ์ผ์น โ ์งํ
์ํํ ๊ฒฐ์ ์ ์์ ์ฅ์น
8. ๐ช ํฌ๋ก์ค ๋๋ฉ์ธ ์ผ (Cross-Domain Jam)
์์ ํ ๋ค๋ฅธ ๋ถ์ผ์ ์์ด์ ํธ๊ฐ ํ์
ํ์คํฌ: "ํ์ ์ ์ธ ์ฑ ์์ด๋์ด"
โโโ ๐จ Art-Agent: ์์ ์ ๊ด์
โโโ ๐ฌ Science-Agent: ๊ธฐ์ ์ ๊ด์
โโโ ๐ History-Agent: ์ญ์ฌ์ ํจํด
โโโ ๐ฎ Game-Agent: ๊ฒ์ด๋ฏธํผ์ผ์ด์
โโโ ๐ง Philosophy-Agent: ์ค๋ฆฌ์ ๊ณ ๋ ค
โ ์์์น ๋ชปํ ์กฐํฉ์์ ํ์ ํ์
9. ๐ช ๋ฉํ ๊ด์ฐฐ์ (Meta Observer)
๋ค๋ฅธ ์์ด์ ํธ๋ค์ ๊ด์ฐฐํ๊ณ ์ฝ์นญํ๋ ์์ด์ ํธ
Working Agents:
โโโ Agent A (์์
์ค)
โโโ Agent B (์์
์ค)
โโโ Agent C (์์
์ค)
Meta-Observer:
โโโ ํจํด ๊ฐ์ง: "A์ B๊ฐ ์ค๋ณต ์์
์ค"
โโโ ๊ฐ์
: "B๋ ๋ค๋ฅธ ๋ฐฉํฅ ์๋ํด๋ด"
โโโ ์กฐ์ธ: "C์ ์ ๊ทผ๋ฒ์ A๋ ์ฐธ๊ณ ํด"
โโโ ํ์ต: ์ฑ๊ณต ํจํด ๊ธฐ๋ก
ํ ์ ์ฒด ํจ์จ์ฑ ํฅ์
10. โฐ ์๊ฐ ๋ถ๋ฆฌ ํ์ (Time-Horizon Split)
๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ค๋ฅธ ์๊ฐ ๊ด์ ์ผ๋ก ์ ๊ทผ
ํ์คํฌ: "๋น์ฆ๋์ค ์ ๋ต"
โโโ ๐ Sprint-Agent: ๋ค์ ์ฃผ ํ ์ผ
โโโ ๐ถ Quarter-Agent: ๋ถ๊ธฐ ๊ณํ
โโโ ๐ง Year-Agent: ์ฐ๊ฐ ๋น์
โโโ ๐ฎ Decade-Agent: ์ฅ๊ธฐ ํธ๋ ๋
โ ๋จ๊ธฐ-์ฅ๊ธฐ ๊ท ํ ์กํ ์ ๋ต
11. ๐ฐ ํ์คํฌ ๊ฒฝ๋งค (Task Auction)
์์ด์ ํธ๊ฐ ์์ ๊ฐ ๊ธฐ๋ฐ์ผ๋ก ํ์คํฌ์ ์ ์ฐฐ
Task: "๋ณต์กํ API ์ค๊ณ"
Bids:
โโโ code-bot: ์ ๋ขฐ๋ 92%, ์์ ์๊ฐ 2h
โโโ watson: ์ ๋ขฐ๋ 65%, ์์ ์๊ฐ 4h
โโโ temp-agent: ์ ๋ขฐ๋ 78%, ์์ ์๊ฐ 3h
โ code-bot ๋์ฐฐ (์ต๊ณ ์ ๋ขฐ๋)
โ ์คํจ ์ ์ฐจ์์ ์๋
12. ๐ง ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ค์๊ฐ ๋๊ธฐํ
Shared Memory Pool:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ discoveries/ โ
โ โโโ agent-a-finding-1.md โ
โ โโโ agent-b-insight-2.md โ
โ โโโ agent-c-connection-3.md โ
โ โ
โ ๋ชจ๋ ์์ด์ ํธ๊ฐ ์ค์๊ฐ ์ฝ๊ธฐ/์ฐ๊ธฐ โ
โ โ ๋ฐ๊ฒฌ ์ฆ์ ๊ณต์ โ ์๋์ง โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ํตํฉ
์ด ์คํฌ์ ๋ค์ ์คํฌ๋ค์ ๊ธฐ๋ฅ์ ํตํฉ:
- agent-council โ ์์ด์ ํธ ์์ฑ ํจํด
- agent-orchestrator โ ํ์คํฌ ๋ถํด ๋ฐ ์กฐ์จ ํจํด
๊ธฐ์กด ์คํฌ๋ค๊ณผ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ.
ํธ๋ฆฌ๊ฑฐ ํค์๋
์ด๋ฒค์ ์ค ์ด์ ๋ธavengers assembleagent-avengers๋ฉํฐ์์ด์ ํธ ์๋ํ์์ด์ ํธ ํ ๊ตฌ์ฑ
์์ ํ๋กฌํํธ
"์ด๋ฒค์ ์ค ์ด์
๋ธ! ๋ค์ ์์
์ ํ์ผ๋ก ์ฒ๋ฆฌํด์ค: [์์
์ค๋ช
]"
"avengers assemble - ์ด ํ๋ก์ ํธ๋ฅผ ๋ณ๋ ฌ๋ก ์งํํด์ค"
"๋ฉํฐ์์ด์ ํธ๋ก ์๋ ์ฒ๋ฆฌํด์ค: [๋ณต์กํ ์์ฒญ]"
ๅฆไฝไฝฟ็จใAgent Avengersใ๏ผ
- ๆๅผๅฐ้พ่พAI๏ผWeb ๆ iOS App๏ผ
- ็นๅปไธๆนใ็ซๅณไฝฟ็จใๆ้ฎ๏ผๆๅจๅฏน่ฏๆกไธญ่พๅ ฅไปปๅกๆ่ฟฐ
- ๅฐ้พ่พAI ไผ่ชๅจๅน้ ๅนถ่ฐ็จใAgent Avengersใๆ่ฝๅฎๆไปปๅก
- ็ปๆๅณๆถๅ็ฐ๏ผๆฏๆ็ปง็ปญๅฏน่ฏไผๅ