Agent Avengers
올인원 멀티에이전트 오케스트레이션. 복잡한 태스크를 자동으로 분해하고, 전문 에이전트들을 즉석에서 생성/스폰하여 병렬 처리 후 결과를 통합합니다. TRIGGERS: avengers assemble, 어벤저스, agent-avengers, 멀티에이전트 자동화, 에이전트 팀 구성, 자동 에이전트
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install skilldb:oozoofrog~agent-avengerscURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/skilldb%3Aoozoofrog~agent-avengers/file -o agent-avengers.mdGit 仓库获取源码
git clone https://github.com/openclaw/skills/commit/445e2a15d6a58857c3187296e05e08e2cecec095# 🦸 Agent Avengers
> "어벤저스, 어셈블!" — 복잡한 태스크를 자동으로 에이전트 팀이 처리
## 핵심 기능
1. **자동 태스크 분해** — 큰 작업을 독립적 서브태스크로 분할
2. **동적 에이전트 생성** — 각 태스크에 맞는 전문 에이전트 즉석 생성
3. **병렬 실행** — 독립 태스크는 동시 처리
4. **자동 통합** — 결과 수집, 검증, 병합
5. **완료 후 정리** — 임시 에이전트 자동 해제
## 사용법
### 기본 사용
```
사용자: "어벤저스 어셈블! [복잡한 태스크 설명]"
```
### 예시
```
"어벤저스 어셈블! 경쟁사 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에 등록된 에이전트들을 조합하여 사용
```javascript
// 기존 에이전트에게 태스크 전달
sessions_send({
label: "watson", // 기존 에이전트 ID
message: "X 리서치해줘",
timeoutSeconds: 300
})
```
**장점:**
- 에이전트별 전문성/기억 유지
- Discord 채널 바인딩 활용 가능
- 지속적인 컨텍스트
### 🔶 Mode 2: 임시 에이전트 스폰
태스크별로 일회성 에이전트 생성
```javascript
// 임시 서브에이전트 스폰
sessions_spawn({
task: "X 분석해줘",
model: "sonnet",
runTimeoutSeconds: 1800,
cleanup: "delete"
})
```
**장점:**
- 격리된 실행
- 완료 후 자동 정리
- 유연한 모델 선택
### 🟣 Mode 3: 멀티 프로필 (봇 인스턴스)
다른 OpenClaw 프로필/봇을 팀에 참여시킴
```yaml
# 프로필 목록 예시
profiles:
- name: "main" # 메인 봇 (카라얀)
specialty: ["조율", "통합"]
- name: "research-bot" # 리서치 전용 봇
specialty: ["심층조사", "데이터수집"]
model: opus
- name: "code-bot" # 코딩 전용 봇
specialty: ["개발", "테스트"]
model: opus
- name: "creative-bot" # 크리에이티브 봇
specialty: ["디자인", "콘텐츠"]
model: gemini
```
**봇 간 통신:**
```javascript
// 다른 프로필의 봇에게 태스크 전달
sessions_send({
sessionKey: "research-bot:main", // 프로필:세션
message: "심층 리서치 요청: X",
timeoutSeconds: 600
})
```
**장점:**
- 봇별 전용 모델/설정
- 병렬 처리 능력 극대화
- 각 봇의 전문 스킬 활용
- 부하 분산
### 🔷🔶🟣 Mode 4: 풀 하이브리드 (권장)
기존 에이전트 + 임시 스폰 + 멀티 프로필 통합
```
예시: "대규모 경쟁 분석 프로젝트"
┌─────────────────────────────────────────┐
│ 🟣 research-bot (별도 봇) │
│ └── 🔬 watson (에이전트) → A사 조사 │
│ └── 🔶 temp-1 (스폰) → B사 조사 │
├─────────────────────────────────────────┤
│ 🟣 code-bot (별도 봇) │
│ └── 💻 분석 스크립트 작성 │
├─────────────────────────────────────────┤
│ 🔷 main (카라얀) │
│ └── 🔧 결과 통합 + 리포트 생성 │
└─────────────────────────────────────────┘
```
---
## 프로필 설정
### `avengers.yaml` 프로필 섹션
```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"
```
### 프로필 간 통신 프로토콜
```javascript
// 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 |
---
## 기존 에이전트 연동
### 에이전트 목록 확인
```javascript
// 활성 에이전트 조회
sessions_list({ kinds: ["agent"], limit: 10 })
// 또는 agents_list()로 등록된 에이전트 ID 확인
agents_list()
```
### 에이전트별 전문 분야 매핑
`avengers.yaml`에 정의:
```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: 태스크 분석
사용자의 요청을 받으면:
```markdown
## 태스크 분석
**원본 요청:** [사용자 요청 전문]
**목표:** [최종 산출물]
**서브태스크:**
1. [태스크1] - 담당: [에이전트타입] - 의존성: 없음
2. [태스크2] - 담당: [에이전트타입] - 의존성: 없음
3. [태스크3] - 담당: [에이전트타입] - 의존성: 1,2
**병렬 실행 가능:** 1, 2
**순차 실행 필요:** 3 (1,2 완료 후)
```
### Phase 2: 에이전트 구성
#### Step 2a: 기존 에이전트 확인
```javascript
// 사용 가능한 에이전트 목록
const availableAgents = agents_list()
const activeAgents = sessions_list({ kinds: ["agent"] })
```
#### Step 2b: 태스크-에이전트 매칭
```markdown
## 에이전트 배정
| 서브태스크 | 배정 | 모드 | 이유 |
|------------|------|------|------|
| A사 리서치 | watson | 기존 | 리서치 전문가 |
| B사 리서치 | temp-1 | 스폰 | 추가 리소스 필요 |
| C사 리서치 | temp-2 | 스폰 | 추가 리소스 필요 |
| 통합 리포트 | temp-integ | 스폰 | 일회성 작업 |
```
#### Step 2c: 실행 계획
```markdown
## 실행 순서
**Phase A (병렬):**
- watson → A사 리서치
- temp-1 → B사 리서치
- temp-2 → C사 리서치
**Phase B (순차, Phase A 완료 후):**
- temp-integrator → 결과 통합
```
### Phase 3: 에이전트 디스패치
#### 기존 에이전트 활용
```javascript
// 기존 에이전트에게 태스크 전달
sessions_send({
label: "watson",
message: `
## 태스크: A사 경쟁 분석
### 요청
- 회사 개요
- 주요 제품/서비스
- 시장 포지션
- 강점/약점
### 출력 형식
마크다운 리포트
### 완료 후
"A사 분석 완료" 라고 알려줘
`,
timeoutSeconds: 600
})
```
#### 임시 에이전트 스폰
```javascript
sessions_spawn({
task: `
[에이전트 역할 설명]
## 태스크
${subtask.description}
## 입력
${subtask.inputs}
## 기대 출력
${subtask.expectedOutput}
## 완료 조건
${subtask.successCriteria}
`,
model: subtask.recommendedModel,
runTimeoutSeconds: 1800,
cleanup: "delete"
})
```
### Phase 3: 결과 통합
모든 에이전트 완료 후:
1. 각 에이전트의 산출물 수집
2. 품질 검증 (성공 기준 충족 여부)
3. 충돌 해결 (겹치는 내용)
4. 최종 산출물 생성
5. 사용자에게 전달
---
## 예시 시나리오
### 시나리오 1: 경쟁사 분석 (하이브리드 모드)
```
입력: "어벤저스 어셈블! A사, B사, C사 경쟁 분석 리포트"
에이전트 구성:
├── 🔬 watson