여러 에이전트 팀을 띄웠지만 조율에 실패할 때 /agent-teams-team-communication-protocols가 메시징 규칙을 설정합니다. — Claude Skill
Claude Code용 Claude 스킬 · 제공: Seth Hobson · 실행: /agent-teams-team-communication-protocols (Claude 내)·업데이트: 2026년 6월 11일·v1.0.0
AI 에이전트 팀을 위한 메시지 프로토콜, 계획 승인, 종료 규칙을 설정합니다.
- 메시지 유형 선택: 직접 메시지, 브로드캐스트, 팀 채널 결정 규칙
- 계획 승인 워크플로: 구현 담당자가 초안을 만들고 팀 리드가 작업 시작 전 검토 및 승인
- 모든 작업 완료 시 상태 인계가 포함된 정상 종료 프로토콜
- 에이전트가 팀 구성원과 소유 영역을 알 수 있게 하는 팀원 발견 패턴
- 안티패턴: 조용한 실패, 중복 브로드캐스트, 우회된 계획 승인
대상
기능
5개 에이전트 팀이 작업 중이고 구현 담당자 2명이 충돌하는 코드를 작성하고 있습니다. /agent-teams-team-communication-protocols가 메시지 유형 규칙과 계획 승인 게이트를 설정해 통합 지점 충돌을 멈춥니다.
구현 담당자가 4시간짜리 작업을 시작하려고 합니다. /agent-teams-team-communication-protocols가 계획 승인 워크플로를 강제합니다: 작성된 계획, 팀 리드 검토, 명시적 진행 승인, 그다음 작업 시작.
상태 업데이트가 팀 채널을 뒤덮고 있습니다. /agent-teams-team-communication-protocols가 상태 브로드캐스트를 직접 메시지로 바꾸고, 브로드캐스트는 차단 이슈와 결정에만 예약합니다.
지난 실행은 완료됐지만 다음 세션에는 무엇이 끝났는지 기억이 없습니다. /agent-teams-team-communication-protocols가 요약, 차단 이슈, 다음 세션 포인터가 포함된 정상 종료 인계를 정의합니다.
작동 방식
팀 규모, 역할 구성, 조율할 작업을 스킬에 알려줍니다
각 상황에서 직접 메시지, 브로드캐스트, 팀 채널 중 무엇을 쓸지 규칙을 받습니다
구현 담당자가 팀 리드 검토를 건너뛰지 못하도록 계획 승인 게이트를 구성합니다
다음 세션을 위한 상태 인계가 포함된 정상 종료 프로토콜을 설정합니다
안티패턴 체크리스트를 적용해 조용한 실패와 브로드캐스트 스팸을 잡습니다
예시
팀: team-lead, implementer-1, implementer-2, reviewer, integrator 작업: 3개 서비스에 걸친 인증 모듈 리팩터링 현재 문제: 구현 담당자들이 서로의 코드를 밟고 있음 목표: 통합 충돌 0건
직접: 구현 담당자와 팀 리드 사이의 상태 업데이트 브로드캐스트: 차단 이슈, 범위 변경, 모두에게 영향을 주는 결정 팀 채널: 계획 승인, 일일 요약, 종료 절대 브로드캐스트하지 말 것: 일상 진행 상황(직접 메시지 사용)
구현 담당자가 계획 작성: 범위, 건드릴 파일, 통합 지점 팀 리드 검토: 5분 SLA, 명확화 질문 2-3개 명시적 승인 메시지: '승인, 진행하세요' 승인을 받을 때까지 작업 시작 금지
통합 담당자가 수집: 완료된 PR, 진행 중 브랜치, 미해결 결정 명시적 다음 세션 포인터가 포함된 인계 문서 작성 팀 리드가 종료 확인 다음 실행을 위해 상태를 /memory에 보존
조용한 실패: 에이전트가 작업에 실패했지만 보고하지 않음(에스컬레이션) 중복 브로드캐스트: 같은 상태를 모두에게 보냄(직접 메시지 사용) 우회된 계획 승인: 구현 담당자가 승인 전에 작업 시작(차단) 응답 없는 팀원: 직접 메시지에 10분 동안 응답 없음
지원 도구
팀 커뮤니케이션 프로토콜을(를) 사용해 보시겠어요?
시작 방법을 선택하세요.
이 스킬을 컴퓨터에 로컬로 설치하고 실행합니다.
컴퓨터에서 터미널을 열고 이 명령을 붙여넣으세요:
이 명령은 스킬과 모든 파일을 컴퓨터에 다운로드합니다:
모든 프로젝트에서 사용하려면 끝에 -g를 추가하세요.
Claude Code를 시작한 다음 명령을 입력하세요:
팀 커뮤니케이션 프로토콜
에이전트 팀원 사이의 효과적인 커뮤니케이션을 위한 프로토콜입니다. 메시지 유형 선택, 계획 승인 워크플로, 종료 절차, 피해야 할 흔한 안티패턴을 포함합니다.
사용 시점
- 새 팀의 커뮤니케이션 규범 설정
- 메시지 유형 선택(message, broadcast, shutdown_request)
- 계획 승인 워크플로 처리
- 정상적인 팀 종료 관리
- 팀원 정체성과 역량 발견
메시지 유형 선택
message(직접 메시지) — 기본 선택
특정 팀원 한 명에게 보냅니다:
{
"type": "message",
"recipient": "implementer-1",
"content": "API 엔드포인트가 준비됐습니다. 이제 프런트엔드 폼을 만들 수 있습니다.",
"summary": "프런트엔드용 API 엔드포인트 준비 완료"
}
사용 대상: 작업 업데이트, 조율, 질문, 통합 알림.
broadcast — 아껴서 사용
모든 팀원에게 동시에 보냅니다:
{
"type": "broadcast",
"content": "중요: 공유 types 파일이 업데이트됐습니다. 계속하기 전에 최신 변경을 가져오세요.",
"summary": "공유 types 업데이트"
}
오직 다음에만 사용: 모두에게 영향을 주는 중요한 차단 이슈, 공유 리소스의 큰 변경.
왜 아껴야 하나요? 각 브로드캐스트는 팀원 수만큼 별도 메시지를 보내므로 팀 규모에 비례해 API 리소스를 소비합니다.
shutdown_request — 정상 종료
팀원에게 종료를 요청합니다:
{
"type": "shutdown_request",
"recipient": "reviewer-1",
"content": "검토가 완료되어 팀을 종료합니다."
}
팀원은 shutdown_response로 응답합니다(승인 또는 사유가 있는 거절).
커뮤니케이션 안티패턴
| 안티패턴 | 문제 | 더 나은 접근 |
|---|---|---|
| 일상 업데이트를 브로드캐스트 | 리소스 낭비, 소음 | 영향받는 팀원에게 직접 메시지 |
| JSON 상태 메시지 전송 | 구조화 데이터용으로 설계되지 않음 | TaskUpdate로 작업 상태 업데이트 |
| 통합 지점에서 커뮤니케이션하지 않음 | 팀원이 오래된 인터페이스를 기준으로 빌드 | 인터페이스가 준비되면 메시지 |
| 메시지로 마이크로매니징 | 팀원을 압도하고 작업 속도 저하 | 모든 단계가 아니라 마일스톤에서 확인 |
| 이름 대신 UUID 사용 | 읽기 어렵고 오류가 잦음 | 항상 팀원 이름 사용 |
| 유휴 팀원 무시 | 역량 낭비 | 새 작업을 배정하거나 종료 |
계획 승인 워크플로
팀원이 plan_mode_required로 생성된 경우:
- 팀원이 읽기 전용 탐색 도구로 계획을 만듭니다
- 팀원이
ExitPlanMode를 호출해 리드에게plan_approval_request를 보냅니다 - 리드가 계획을 검토합니다
- 리드가
plan_approval_response로 응답합니다:
승인:
{
"type": "plan_approval_response",
"request_id": "abc-123",
"recipient": "implementer-1",
"approve": true
}
피드백과 함께 거절:
{
"type": "plan_approval_response",
"request_id": "abc-123",
"recipient": "implementer-1",
"approve": false,
"content": "API 호출에 대한 오류 처리를 추가하세요"
}
종료 프로토콜
정상 종료 순서
- 리드가 각 팀원에게 shutdown_request 전송
- 팀원이 요청 수신:
type: "shutdown_request"가 있는 JSON 메시지로 받습니다 - 팀원이
shutdown_response로 응답:approve: true— 팀원이 상태를 저장하고 종료approve: false+ 사유 — 팀원이 계속 작업
- 리드가 거절 처리 — 팀원이 끝날 때까지 기다린 뒤 다시 시도
- 모든 팀원이 종료된 뒤 —
Teammatecleanup 호출
거절 처리
팀원이 종료를 거절하면:
- 사유를 확인합니다(보통 "아직 작업 중")
- 현재 작업이 완료될 때까지 기다립니다
- 종료 요청을 다시 시도합니다
- 긴급하면 사용자가 강제 종료할 수 있습니다
팀원 발견
config 파일을 읽어 팀원을 찾습니다:
위치: ~/.claude/teams/{team-name}/config.json
구조:
{
"members": [
{
"name": "security-reviewer",
"agentId": "uuid-here",
"agentType": "team-reviewer"
},
{
"name": "perf-reviewer",
"agentId": "uuid-here",
"agentType": "team-reviewer"
}
]
}
메시징과 작업 배정에는 항상 name을 사용합니다. agentId를 직접 사용하지 마세요.
문제 해결
팀원이 메시지에 응답하지 않습니다. 팀원의 작업 상태를 확인하세요. 유휴 상태라면 작업을 완료했고 새 작업 배정이나 종료를 기다리는 중일 수 있습니다. 아직 활성 상태라면 실행 중간일 수 있으며 현재 작업이 끝난 뒤 메시지를 처리합니다.
리드가 모든 상태 업데이트를 브로드캐스트합니다.
흔한 안티패턴입니다. 브로드캐스트는 비쌉니다. 하나당 N개의 메시지를 보냅니다. 지점 간 업데이트에는 직접 메시지(type: "message")를 사용하세요. 브로드캐스트는 업데이트된 인터페이스 계약처럼 중요한 공유 리소스 변경에 예약하세요.
팀원이 종료 요청을 예상과 다르게 거절했습니다.
팀원이 아직 작업 중입니다. shutdown_response content 필드의 거절 사유를 확인하고, 작업이 끝날 때까지 기다린 뒤 다시 시도하세요. 저장되지 않은 작업이 있는 팀원을 강제 종료하지 마세요.
plan_approval_request가 도착했지만 request_id가 없습니다.
팀원이 필요한 요청 맥락 없이 ExitPlanMode를 호출했습니다. 팀원에게 계획 모드에 다시 들어가 탐색을 완료하고 ExitPlanMode를 다시 호출하게 하세요. request_id는 계획 모드 시스템에서 자동으로 생성됩니다.
두 팀원이 서로를 기다리며 아무도 진행하지 못합니다. 교착 상태입니다. 둘 다 상대가 먼저 끝나기를 기다리며 막혀 있습니다. 리드는 한 팀원에게 직접 메시지로 스텁 또는 부분 결과를 보내 차단을 풀고 진행하게 해야 합니다.
관련 스킬
- team-composition-patterns — 커뮤니케이션 규범을 설정하기 전에 에이전트 유형과 팀 규모 선택
- parallel-feature-development — 병렬 구현 담당자 사이의 통합 인계를 조율하는 데 커뮤니케이션 프로토콜 사용