MasterAgent: "판단은 끝났어, 이제 실행만 해"
💡 BrainAgent가 "어떤 파이프라인을 쓸지" 결정했다면, MasterAgent는 그걸 실제로 실행하는 역할이다. 판단? 안 한다. 그냥 시킨 대로 한다.
왜 실행만 하는 컴포넌트를 따로 뒀을까?
처음에는 하나의 Agent가 모든 걸 했다. 질문 분석도 하고, 파이프라인 실행도 하고, 답변도 생성하고.
근데 문제가 생겼다.
"PK-123 관련 과거 논의 찾아줘" 같은 질문이 들어오면:
- Jira에서 티켓 정보 가져와야 하고
- RAG에서 과거 대화 검색해야 하고
- 두 결과를 조합해서 답변해야 한다
이걸 하나의 Agent가 순차적으로 하니까 느리고, 중간에 "어떤 거 먼저 하지?" 판단이 계속 필요했다.
그래서 역할을 나눴다:
- BrainAgent: 뭘 할지 결정 (빠른 판단)
- MasterAgent: 결정된 거 실행 (병렬 처리)
- CLI: 결과 받아서 최종 답변 (리랭킹)
실행 흐름: 질문이 들어오면 어떻게 되나?
사용자: "PK-123 관련 과거 논의 찾아줘"
│
▼
┌─────────────┐
│ BrainAgent │ ← "jira + rag 파이프라인 필요하겠다"
└─────────────┘
│
│ pipelines: ["jira", "rag"]
▼
┌─────────────┐
│ MasterAgent │ ← "알겠어, 병렬로 돌릴게"
└─────────────┘
│
┌─────┴─────┐
▼ ▼
[Jira API] [RAG 검색] ← 동시에 실행 (ThreadPool)
│ │
└─────┬─────┘
▼
┌─────────────┐
│ CLI │ ← 결과 받아서 리랭킹 + 답변 생성
└─────────────┘
핵심은 MasterAgent가 판단하지 않는다는 것이다. BrainAgent가 "jira, rag 써"라고 하면 그냥 둘 다 실행한다. "jira 먼저 할까 rag 먼저 할까?" 고민 안 한다. 그냥 동시에 돌린다.
Worker는 또 뭔데?
파이프라인 말고 Worker라는 개념도 있다. "기획 관점에서 분석해줘" 같은 요청이 들어오면:
BrainAgent: "PM 관점이 필요하네" → workers: ["pm"]
│
▼
┌─────────────┐
│ MasterAgent │
└─────────────┘
│
▼
┌─────────────┐
│ PM Worker │ → 자동으로 jira, notion, rag 실행
└─────────────┘
Worker는 전문가 페르소나다. PM, Dev, QA, Design 각각 자기 분야에 맞는 파이프라인을 기본으로 가지고 있다.
Worker 기본 파이프라인 관점
| PM | jira, notion, rag | 기획, 요구사항 |
| Dev | rag, jira | 기술, 구현 |
| QA | jira, rag, notion | 테스트, 품질 |
| Design | figma, notion, jira | UI/UX |
중요한 건 Worker도 LLM을 호출하지 않는다는 것이다. Worker는 그냥 "나는 PM이고, 이 파이프라인들 결과야"라는 컨텍스트만 제공한다. 최종 통합은 CLI가 한다.
왜 LLM 호출을 안 할까?
이게 핵심 설계 철학이다.
처음에는 Worker마다 LLM을 호출해서 각자 분석하게 했다. PM Agent가 분석하고, Dev Agent가 분석하고, 마지막에 Master가 통합하고...
토큰 비용이 미쳤다.
생각해봐:
- PM 분석: 1000 토큰
- Dev 분석: 1000 토큰
- QA 분석: 1000 토큰
- 통합: 2000 토큰
- 총 5000 토큰 (Worker 3개 케이스)
지금은?
- 파이프라인 실행: 0 토큰 (API 호출일 뿐)
- Worker 컨텍스트: 0 토큰 (문자열 조합일 뿐)
- CLI 최종 답변: 1500 토큰 (한 번만 호출)
- 총 1500 토큰
70% 토큰 절감. 이게 MasterAgent가 "컨텍스트 수집만 하고 판단 안 하는" 이유다.
결과는 어떻게 전달되나?
MasterAgent는 실행 결과를 태그로 감싸서 반환한다:
파이프라인 실행 결과:
<context>
<rag>과거 대화 3건 검색됨...</rag>
<jira>PK-123: 로그인 기능 구현...</jira>
</context>
Worker 실행 결과:
<worker-contexts>
<worker role="pm">
<persona>PM 관점에서 분석...</persona>
<pipelines>jira, notion 결과...</pipelines>
</worker>
</worker-contexts>
CLI(Claude/Gemini)는 이 태그를 받아서:
- 결과 리랭킹 (중요도 정렬)
- 통합 (중복 제거, 요약)
- 최종 답변 생성
정리하면
컴포넌트 역할 LLM 호출
| BrainAgent | 뭘 할지 결정 | Flash (가벼운 모델) |
| MasterAgent | 결정된 거 실행 | 없음 |
| Worker | 페르소나 + 파이프라인 | 없음 |
| CLI | 리랭킹 + 최종 답변 | Opus/Sonnet |
MasterAgent의 철학은 단순하다: "판단은 BrainAgent가 했어. 난 그냥 빠르게 실행만 할게."
이 분리 덕분에:
- 파이프라인 병렬 실행으로 속도 향상
- LLM 호출 최소화로 비용 절감
- 각 컴포넌트가 한 가지만 해서 유지보수 용이
'AI > Ai Agent' 카테고리의 다른 글
| Self-Reflection: AI가 스스로 실수를 잡아내는 시스템 (0) | 2026.01.08 |
|---|---|
| BrainAgent(라우터): AI가 0.01초 만에 질문을 분석하는 교통경찰 (0) | 2026.01.08 |
| Hook: AI가 알아서 다 해주는 마법의 비밀 (0) | 2026.01.07 |
| Setup 시스템: 새 컴퓨터에서 5분 안에 AI 환경 완성하기 (0) | 2026.01.07 |
| AI Agent, 왜 지금 배워야 할까? (0) | 2026.01.07 |