Agent Avengers

SkillDB 作者 카라얀 v1.0.0

올인원 멀티에이전트 오케스트레이션. 복잡한 태스크를 자동으로 분해하고, 전문 에이전트들을 즉석에서 생성/스폰하여 병렬 처리 후 결과를 통합합니다. TRIGGERS: avengers assemble, 어벤저스, agent-avengers, 멀티에이전트 자동화, 에이전트 팀 구성, 자동 에이전트

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install skilldb:oozoofrog~agent-avengers
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/skilldb%3Aoozoofrog~agent-avengers/file -o agent-avengers.md
Git 仓库获取源码
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