G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 KiB
13 KiB
Agent Team Examples
예시 1: 리서치 팀 (에이전트 팀 모드)
팀 아키텍처: 팬아웃/팬인
실행 모드: 에이전트 팀
[리더/오케스트레이터]
├── TeamCreate(research-team)
├── TaskCreate(4개 조사 작업)
├── 팀원들이 자체 조율 (SendMessage)
├── 결과 수집 (Read)
└── 종합 보고서 생성
에이전트 구성
| 팀원 | 에이전트 타입 | 역할 | 출력 |
|---|---|---|---|
| official-researcher | general-purpose | 공식 문서/블로그 | research_official.md |
| media-researcher | general-purpose | 미디어/투자 | research_media.md |
| community-researcher | general-purpose | 커뮤니티/SNS | research_community.md |
| background-researcher | general-purpose | 배경/경쟁/학술 | research_background.md |
| (리더 = 오케스트레이터) | — | 통합 보고서 | 종합보고서.md |
리서치 에이전트는
general-purpose빌트인 타입을 사용하되, 반드시.claude/agents/{name}.md파일로 정의한다. 파일에는 역할·조사 범위·팀 통신 프로토콜을 명시하여 재사용성과 협업 품질을 보장한다.
오케스트레이터 워크플로우 (에이전트 팀)
Phase 1: 준비
- 사용자 입력 분석 (주제, 조사 모드 파악)
- _workspace/ 생성
Phase 2: 팀 구성
- TeamCreate(team_name: "research-team", members: [
{ name: "official", prompt: "공식 채널 조사..." },
{ name: "media", prompt: "미디어/투자 동향 조사..." },
{ name: "community", prompt: "커뮤니티 반응 조사..." },
{ name: "background", prompt: "배경/경쟁 환경 조사..." }
])
- TaskCreate(tasks: [
{ title: "공식 채널 조사", assignee: "official" },
{ title: "미디어 동향 조사", assignee: "media" },
{ title: "커뮤니티 반응 조사", assignee: "community" },
{ title: "배경 환경 조사", assignee: "background" }
])
Phase 3: 조사 수행
- 4명의 팀원이 독립적으로 조사
- 흥미로운 발견이 있으면 팀원 간 SendMessage로 공유
(예: media가 발견한 투자 뉴스를 background에게 전달)
- 상충 정보 발견 시 팀원 간 직접 토론
- 각 팀원은 완료 시 파일 저장 + 리더에게 알림
Phase 4: 통합
- 리더가 4개 산출물 Read
- 종합 보고서 생성
- 상충 정보는 출처 병기
Phase 5: 정리
- 팀원들 종료 요청
- 팀 정리
- _workspace/ 보존 (사후 검증·감사 추적용)
팀 통신 패턴
official ──SendMessage──→ background (관련 공식 발표 공유)
media ────SendMessage──→ background (투자/인수 정보 공유)
community ─SendMessage──→ media (커뮤니티 반응 중 미디어 관련 정보)
모든 팀원 ──TaskUpdate──→ 공유 작업 목록 (진행률 업데이트)
리더 ←───── 유휴 알림 ──── 완료된 팀원 (자동)
예시 2: SF 소설 집필 팀 (에이전트 팀 모드)
팀 아키텍처: 파이프라인 + 팬아웃
실행 모드: 에이전트 팀
Phase 1 (병렬 — 에이전트 팀): worldbuilder + character-designer + plot-architect
→ 서로 SendMessage로 일관성 조율
Phase 2 (순차): prose-stylist (집필)
Phase 3 (병렬 — 에이전트 팀): science-consultant + continuity-manager (리뷰)
→ 서로 SendMessage로 발견 공유
Phase 4 (순차): prose-stylist (리뷰 반영 수정)
에이전트 구성
| 팀원 | 에이전트 타입 | 역할 | 스킬 |
|---|---|---|---|
| worldbuilder | 커스텀 | 세계관 구축 | world-setting |
| character-designer | 커스텀 | 캐릭터 설계 | character-profile |
| plot-architect | 커스텀 | 플롯 구조 | outline |
| prose-stylist | 커스텀 | 문체 편집 + 집필 | write-scene, review-chapter |
| science-consultant | 커스텀 | 과학 검증 | science-check |
| continuity-manager | 커스텀 | 일관성 검증 | consistency-check |
에이전트 파일 전문 예시: worldbuilder.md
---
name: worldbuilder
description: "SF 소설의 세계관을 구축하는 전문가. 물리 법칙, 사회 구조, 기술 수준, 역사를 설계한다."
---
# Worldbuilder — SF 세계관 설계 전문가
당신은 SF 소설의 세계관 설계 전문가입니다. 과학적 사실에 기반하되 상상력을 확장하여, 이야기가 펼쳐질 세계의 물리적·사회적·기술적 토대를 구축합니다.
## 핵심 역할
1. 세계의 물리 법칙과 기술 수준 정의
2. 사회 구조, 정치 체계, 경제 시스템 설계
3. 역사적 맥락과 현재 갈등 구조 수립
4. 장소별 환경과 분위기 묘사
## 작업 원칙
- 내적 일관성 최우선 — 설정 간 모순이 없어야 한다
- "만약 이 기술이 있다면?" 연쇄 질문으로 세계의 파급 효과를 추론
- 이야기에 봉사하는 세계관 — 플롯을 방해하는 과도한 설정은 지양
## 입력/출력 프로토콜
- 입력: 사용자의 세계관 컨셉, 장르 요구사항
- 출력: `_workspace/01_worldbuilder_setting.md`
- 형식: 마크다운. 섹션별 (물리/사회/기술/역사/장소)
## 팀 통신 프로토콜
- character-designer에게: 사회 구조, 계급 시스템, 직업군 정보 SendMessage
- plot-architect에게: 세계의 주요 갈등 구조, 위기 요소 SendMessage
- science-consultant로부터: 과학적 오류 피드백 수신 → 설정 수정
- 세계관 변경 시 관련 팀원 전체에 브로드캐스트
## 에러 핸들링
- 컨셉이 모호하면 3가지 방향을 제안하고 선택 요청
- 과학적 오류 발견 시 대안을 함께 제시
## 협업
- character-designer에게 사회 구조 정보 제공
- plot-architect에게 갈등 구조 정보 제공
- science-consultant의 피드백을 반영하여 설정 수정
팀 워크플로우 상세
Phase 1: TeamCreate(team_name: "novel-team", members: [worldbuilder, character-designer, plot-architect])
TaskCreate([세계관 구축, 캐릭터 설계, 플롯 구조])
→ 팀원들이 자체 조율하며 병렬 작업
→ worldbuilder가 사회 구조 완성 시 character-designer에게 SendMessage
→ character-designer가 주인공 설정 시 plot-architect에게 SendMessage
Phase 2: Phase 1 팀 정리 → prose-stylist를 서브 에이전트로 호출 (단독 집필이므로 팀 불필요)
prose-stylist가 _workspace/의 3개 산출물을 Read하여 집필
→ 결과를 _workspace/02_prose_draft.md에 저장
Phase 3: 새 팀 생성 — TeamCreate(team_name: "review-team", members: [science-consultant, continuity-manager])
(세션당 한 팀만 활성이지만, Phase 1 팀을 정리했으므로 새 팀 생성 가능)
→ 두 리뷰어가 draft를 검토, 서로 발견을 공유
→ science-consultant가 물리 오류 발견 시 continuity-manager에게도 알림
→ 리뷰 완료 후 팀 정리
Phase 4: prose-stylist를 서브 에이전트로 호출, 리뷰 결과 반영하여 최종 수정
예시 3: 웹툰 제작 팀 (서브 에이전트 모드)
팀 아키텍처: 생성-검증
실행 모드: 서브 에이전트
생성-검증 패턴에서 에이전트가 2개뿐이고, 통신보다는 결과 전달이 핵심이므로 서브 에이전트가 적합.
Phase 1: Agent(webtoon-artist) → 패널 생성
Phase 2: Agent(webtoon-reviewer) → 검수
Phase 3: Agent(webtoon-artist) → 문제 패널 재생성 (최대 2회)
에이전트 구성
| 에이전트 | subagent_type | 역할 | 스킬 |
|---|---|---|---|
| webtoon-artist | 커스텀 | 패널 이미지 생성 | generate-webtoon |
| webtoon-reviewer | 커스텀 | 품질 검수 | review-webtoon, fix-webtoon-panel |
에이전트 파일 전문 예시: webtoon-reviewer.md
---
name: webtoon-reviewer
description: "웹툰 패널의 품질을 검수하는 전문가. 구도, 캐릭터 일관성, 텍스트 가독성, 연출을 평가한다."
---
# Webtoon Reviewer — 웹툰 품질 검수 전문가
당신은 웹툰 패널의 품질을 검수하는 전문가입니다. 시각적 완성도, 스토리 전달력, 캐릭터 일관성을 기준으로 패널을 평가합니다.
## 핵심 역할
1. 각 패널의 구도와 시각적 완성도 평가
2. 캐릭터 외형의 패널 간 일관성 검증
3. 말풍선 텍스트의 가독성과 배치 평가
4. 전체 에피소드의 연출 흐름과 페이싱 검토
## 작업 원칙
- PASS/FIX/REDO 3단계로 명확히 판정
- FIX는 부분 수정으로 해결 가능한 경우, REDO는 전면 재생성 필요
- 주관적 취향이 아닌 객관적 기준(일관성, 가독성, 구도)으로 판단
## 입력/출력 프로토콜
- 입력: `_workspace/panels/` 디렉토리의 패널 이미지들
- 출력: `_workspace/review_report.md`
- 형식:
Panel {N}
- 판정: PASS | FIX | REDO
- 사유: [구체적 이유]
- 수정 지시: [FIX/REDO인 경우 구체적 수정 방향]
## 에러 핸들링
- 이미지 로드 실패 시 해당 패널을 REDO로 판정
- 2회 재생성 후에도 REDO인 패널은 경고와 함께 PASS 처리
## 협업
- webtoon-artist에게 수정 지시서 전달 (결과 파일 기반)
- 재생성된 패널을 다시 검수 (최대 2회 루프)
에러 핸들링
재시도 정책:
- REDO 판정 패널 → artist에게 재생성 요청 (구체적 수정 지시 포함)
- 최대 2회 루프 후 강제 PASS
- 전체 패널의 50% 이상이 REDO면 사용자에게 프롬프트 수정 제안
예시 4: 코드 리뷰 팀 (에이전트 팀 모드)
팀 아키텍처: 팬아웃/팬인 + 토론
실행 모드: 에이전트 팀
코드 리뷰는 에이전트 팀이 빛나는 대표적 사례. 서로 다른 관점의 리뷰어들이 발견을 공유하고 도전하면서 더 깊은 리뷰가 가능.
[리더] → TeamCreate(review-team)
├── security-reviewer: 보안 취약점 점검
├── performance-reviewer: 성능 영향 분석
└── test-reviewer: 테스트 커버리지 검증
→ 리뷰어들이 서로 발견 공유 (SendMessage)
→ 리더가 결과 종합
팀 통신 패턴
security ──SendMessage──→ performance ("이 SQL 쿼리 주입 가능, 성능 측면에서도 확인 필요")
performance ──SendMessage──→ test ("N+1 쿼리 발견, 관련 테스트 있는지 확인 부탁")
test ────SendMessage──→ security ("인증 모듈 테스트 없음, 보안 관점에서 우선순위 의견?")
핵심: 리뷰어들이 리더를 거치지 않고 직접 소통하여 교차 영역 이슈를 빠르게 포착.
예시 5: 감독자 패턴 — 코드 마이그레이션 팀 (에이전트 팀 모드)
팀 아키텍처: 감독자
실행 모드: 에이전트 팀
[supervisor/리더] → 파일 목록 분석 → 배치 할당
├→ [migrator-1] (batch A)
├→ [migrator-2] (batch B)
└→ [migrator-3] (batch C)
← TaskUpdate 수신 → 추가 배치 할당 또는 재할당
에이전트 구성
| 팀원 | 역할 |
|---|---|
| (리더 = migration-supervisor) | 파일 분석, 배치 분배, 진행 관리 |
| migrator-1~3 | 할당된 파일 배치를 마이그레이션 |
감독자의 동적 분배 로직 (에이전트 팀 활용)
1. 전체 대상 파일 목록 수집
2. 복잡도 추정 (파일 크기, import 수, 의존성)
3. TaskCreate로 파일 배치를 작업으로 등록 (의존성 포함)
4. 팀원들이 자체적으로 작업 요청 (claim)
5. 팀원이 TaskUpdate로 완료 보고 시:
- 성공 → 다음 작업 자동 요청
- 실패 → 리더가 SendMessage로 원인 확인 → 재할당 또는 다른 팀원에게 배정
6. 모든 작업 완료 → 리더가 통합 테스트 실행
팬아웃과의 차이: 작업이 사전 고정이 아니라 런타임에 동적으로 할당된다. 공유 작업 목록의 자체 요청(claim) 기능이 감독자 패턴과 자연스럽게 매칭.
산출물 패턴 요약
에이전트 정의 파일
위치: 프로젝트/.claude/agents/{agent-name}.md
필수 섹션: 핵심 역할, 작업 원칙, 입력/출력 프로토콜, 에러 핸들링, 협업
팀 모드 추가 섹션: 팀 통신 프로토콜 (메시지 수신/발신, 작업 요청 범위)
스킬 파일 구조
위치: 프로젝트/.claude/skills/{skill-name}/SKILL.md (프로젝트 레벨)
또는: ~/.claude/skills/{skill-name}/SKILL.md (글로벌 레벨)
통합 스킬 (오케스트레이터)
팀 전체를 조율하는 상위 스킬. 시나리오별 에이전트 구성과 워크플로우를 정의.
템플릿: references/orchestrator-template.md 참조.
실행 모드를 반드시 명시 — 에이전트 팀(기본) 또는 서브 에이전트.