튜토리얼 22: 서브에이전트 위임
튜토리얼 22: 서브에이전트 위임 — 공식 문서 기반 쉬운 이해 가이드
이 글은 Hermes Agent 공식 튜토리얼 시리즈의 일부입니다. 전체 튜토리얼 보기
프로젝트의 팀장이라고 상상해 보세요. 모든 걸 혼자 할 수도 있지만, 그건 느립니다. 대신 팀원들에게 각각의 작업을 나눠 주고, 필요한 세부 정보를 알려준 뒤, 보고를 기다리죠. 바로 그게 Hermes Agent의 서브에이전트 위임(Subagent Delegation) 이 하는 일입니다 — 메인 에이전트가 백그라운드에서 작업을 처리할 임시 “작업자”를 고용하는 거죠.
1단계: 기본 개념 이해하기
delegate_task를 호출하면 Hermes는 하나 이상의 자식 에이전트(서브에이전트) 를 생성합니다. 각 자식 에이전트는:
- 완전히 새로운 대화를 시작합니다 — 여러분의 채팅 기록에 대해 전혀 알지 못합니다.
- 부모 에이전트와 동일한 도구에 접근할 수 있습니다.
- 자체 격리된 터미널 세션에서 실행됩니다.
- 부모에게 최종 요약본만 반환합니다.
동료에게 주제 조사를 맡기는 것과 같다고 생각하면 됩니다. 동료는 여러분의 회의 내내 자리를 지키지 않아요 — 그냥 작업과 맥락이 적힌 쪽지를 건네주면, 보고서를 들고 돌아오는 방식입니다.
2단계: 단일 작업 위임하기
가장 간단한 사용 사례: 작업 하나, 서브에이전트 하나.
delegate_task(
goal="테스트가 실패하는 이유를 디버깅하세요",
context="오류: test_foo.py 42번째 줄에서 assertion 실패"
)
goal은 서브에이전트에게 무엇을 할지 알려줍니다. context는 그 일을 수행하는 데 필요한 모든 것을 제공합니다.
3단계: 여러 작업을 병렬로 위임하기
여러 가지를 동시에 처리해야 하나요? 작업 목록을 전달하면 됩니다. 기본적으로 Hermes는 최대 3개의 서브에이전트를 동시에 실행합니다 (설정으로 변경 가능하며, 하드 리밋은 없습니다).
delegate_task(tasks=[
{"goal": "주제 A 조사하기", "context": "최근 1차 자료에 초점을 맞추세요"},
{"goal": "주제 B 조사하기", "context": "주요 설명들을 비교하세요"},
{"goal": "빌드 오류 수정하기", "context": "프로젝트 루트: /home/user/project"}
])
각 서브에이전트는 독립적으로 작업합니다. 부모 에이전트는 모든 작업이 끝날 때까지 기다렸다가 결과를 통합합니다.
4단계: 핵심 원칙 — 서브에이전트는 아무것도 모릅니다
이 부분이 가장 중요하니 잘 기억하세요:
서브에이전트는 여러분의 대화 내용에 대해 전혀 모른 채 시작합니다.
“오류를 수정하세요”라고 말하면서 “그 오류”가 무엇인지 설명하지 않으면, 서브에이전트는 길을 잃을 것입니다. 모든 필요한 맥락을 goal과 context 필드에 반드시 전달해야 합니다.
나쁜 예시입니다:
# 나쁨 - 서브에이전트는 "그 오류"가 무엇인지 전혀 모릅니다
delegate_task(goal="오류를 수정하세요")
좋은 예시입니다:
# 좋음 - 서브에이전트가 필요한 모든 맥락을 갖고 있습니다
delegate_task(
goal="api/handlers.py의 TypeError를 수정하세요",
context="""api/handlers.py 파일의 47번째 줄에 TypeError가 있습니다:
'NoneType' object has no attribute 'get'.
process_request() 함수는 parse_body()에서 dict를 받지만,
parse_body()는 Content-Type 헤더가 없을 때 None을 반환합니다.
프로젝트는 /home/user/myproject에 있고 Python 3.11을 사용합니다."""
)
context를 브리핑 문서라고 생각하세요. 구체적일수록 서브에이전트의 작업 품질이 좋아집니다.
5단계: 실제 업무 워크플로우에 활용하기
병렬 리서치
여러 주제에 대한 정보를 한 번에 수집하세요:
delegate_task(tasks=[
{
"goal": "2025년 WebAssembly의 현재 상태 조사하기",
"context": "초점: 브라우저 지원, 비브라우저 런타임, 언어 지원"
},
{
"goal": "2025년 RISC-V 채택 현황 조사하기",
"context": "초점: 서버 칩, 임베디드 시스템, 소프트웨어 생태계"
},
{
"goal": "2025년 양자 컴퓨팅 발전 현황 조사하기",
"context": "초점: 오류 정정 돌파구, 실용적 응용, 주요 플레이어"
}
])
코드 리뷰 + 수정
새로운 컨텍스트에 전체 리뷰 및 수정 작업을 넘겨보세요:
delegate_task(
goal="인증 모듈의 보안 문제를 검토하고 발견된 문제를 수정하세요",
context="""프로젝트 위치: /home/user/webapp.
인증 모듈 파일: src/auth/login.py, src/auth/jwt.py, src/auth/middleware.py.
프로젝트는 Flask, PyJWT, bcrypt를 사용합니다.
초점: SQL 인젝션, JWT 검증, 비밀번호 처리, 세션 관리.
발견된 모든 문제를 수정하고 테스트 스위트를 실행하세요 (pytest tests/auth/)."""
)
요약
서브에이전트 위임은 Hermes Agent에서 작업을 병렬화하는 방법입니다. 다음 핵심 사항을 기억하세요:
delegate_task를 사용하여 단일 작업 또는 작업 배치를 처리하세요.- 항상 전체 컨텍스트를 제공하세요 — 서브에이전트는 처음부터 시작합니다.
- 기본적으로 최대 3개의 동시 서브에이전트가 실행되며, 필요 시 설정으로 변경할 수 있습니다.
- 각 서브에이전트는 구조화된 요약을 반환합니다 — 수행한 작업, 발견한 사항, 변경된 파일, 발생한 문제 등.
여러분이 알려준 것만 아는 어시스턴트 팀을 두는 것과 같습니다 — 그러니 필요한 모든 것을 알려주세요.
다음 튜토리얼: 튜토리얼 23 — 칸반: 멀티 에이전트 협업을 위한 공유 지속 보드.
📖 공식 문서
この記事は Hermes Agent の공식 문서に基づいています:공식 문서 › user-guide/features/delegation