1 스킬 기반 구조가 Agent 파편화를 줄이는 이유
일반 프롬프트 기반 Agent는 특정 태스크마다 독립적인 시스템 프롬프트를 가진다. 기능이 늘어날수록 Agent 수가 선형적으로 증가( \(O(n)\) )하며, 관리 복잡도가 비례하여 상승한다.
스킬 기반 Agent는 구조가 다르다. 하나의 핵심 LLM(Core)이 실행 가능한 스킬(Tool)을 선택하는 구조를 취하므로, Agent 인스턴스 수를 획기적으로 줄일 수 있다.
[프롬프트 기반] [스킬 기반]
Agent A (태스크 1 전용) Core Agent
Agent B (태스크 2 전용) ├── Skill 1
Agent C (태스크 3 전용) ├── Skill 2
Agent D (태스크 4 전용) ├── Skill 3
...N개 Agent └── Skill N
| 관점 | 프롬프트 기반 | 스킬 기반 |
|---|---|---|
| Agent 수 | 태스크 수에 비례 증가 | 1개 Core + N개 스킬 |
| 추론 로직 | Agent마다 독립적으로 중복 | ReAct, Planning 등 공통 로직 공유 |
| 라우팅 | 외부 라우터가 Agent를 선택 | Agent 내부에서 스킬을 선택 (Function Calling) |
| 지식 일관성 | Agent별 페르소나 차이로 정보 불일치 가능 | 단일 Agent 내 일관된 지식 체계 |
스킬 기반으로의 통합은 시스템 아키텍처를 단순화하고 유지보수 비용을 낮추지만, 무조건적인 통합이 정답은 아니다. 도메인이 완전히 다른 경우(예: 인사 관리 vs 생명공학 분석)는 Agent를 분리하되, 동일 도메인 내의 기능적 차이(예: 데이터 조회 vs 리포트 생성)는 스킬 기반으로 통합하는 하이브리드 전략이 합리적이다.
스킬 기반 Agent의 설계 원칙과 구현 방법은 Agent 스킬 설계와 생성에서, SKILL.md 명세는 SKILL.md 명세와 작성법에서 다룬다. 본 포스트는 라우팅 확장성의 수학적 분석과 한계에 초점을 맞춘다.
2 분기 복잡도 vs 추론 깊이
스킬 기반 Agent의 성능을 좌우하는 두 축은 분기 복잡도(Branching Complexity)와 추론 경로의 깊이(Reasoning Depth)이다. 이 둘은 성격이 완전히 다르며, Agent 설계 시 구별하여 관리해야 한다.
2.1 분기 복잡도: 라우팅 선택지의 수
태스크 유형이 많아지는 것은 \(O(1)\) 또는 \(O(\log n)\) 수준의 분류(Classification) 문제이다.
사용자 요청 → [Router] → Skill A / Skill B / Skill C / ... / Skill N
(N개 선택지 중 1개 선택)
최신 LLM의 Semantic Router나 Function Calling 성능은 수십 개의 선택지 중 하나를 고르는 데 높은 통계적 정확도를 보인다. 라우팅은 한 번의 판단으로 완료되므로, 선택지 수가 늘어나도 추론 비용이 선형적으로 증가하지 않는다.
라우팅 개수가 무한정 늘어나도 괜찮은 것은 아니다. 후보군이 50~100개를 넘어가면 유사 스킬 간의 충돌(Ambiguity)로 인해 잘못된 경로를 선택할 확률이 높아진다. 이 경우 계층적 라우팅으로 분산해야 한다.
2.2 추론 깊이: 시퀀셜 절차의 길이
반면, 시퀀셜 절차가 길어지는 것은 Agent 성능에 직접적인 리스크를 가한다. 절차가 길어지면 Agent는 이전 단계의 결과( \(Output_{t-1}\) )를 다음 단계의 입력( \(Input_{t}\) )으로 사용하는 자기회귀적(Autoregressive) 연쇄를 수행한다.
Step 1 → Step 2 → Step 3 → ... → Step N
│ │ │ │
└── 오차 ──┘── 오차 ──┘── 누적 ─────┘
여기서 두 가지 문제가 발생한다.
누적 오류 (Error Propagation): 각 단계의 성공 확률이 독립이라면, N단계 절차의 전체 성공률은 개별 성공률의 곱이다.
\[P_{total} = \prod_{i=1}^{n} P(Success_i)\]
예를 들어, 각 단계의 성공률이 95%라고 가정하면:
| 단계 수 | 전체 성공률 |
|---|---|
| 3단계 | \(0.95^3 = 85.7\%\) |
| 5단계 | \(0.95^5 = 77.4\%\) |
| 10단계 | \(0.95^{10} = 59.9\%\) |
| 20단계 | \(0.95^{20} = 35.8\%\) |
단계가 길어질수록 전체 성공률이 기하급수적으로 하락한다. 개별 단계의 정확도가 높더라도 긴 체인에서는 누적 오류를 피하기 어렵다.
프롬프트 인플레이션: 이전 단계의 상태(State)를 유지하기 위해 프롬프트 양이 비대해진다. 이는 모델의 어텐션(Attention)을 분산시켜 중요한 제약 조건을 망각하게 만드는 Lost in the Middle 현상을 유발한다.
2.3 분기 vs 깊이 요약
| 차원 | 분기 복잡도 (라우팅) | 추론 깊이 (시퀀셜) |
|---|---|---|
| 본질 | 분류 문제 ( \(O(1)\) ~ \(O(\log n)\) ) | 자기회귀 연쇄 ( \(O(n)\) ) |
| 확장 시 영향 | 선택지 증가 -> 분별력 저하 | 단계 증가 -> 누적 오류 + 컨텍스트 손실 |
| 임계점 | 50~100개 이상에서 Ambiguity 발생 | 10단계 이상에서 성공률 급락 |
| 해결 전략 | 계층적 라우팅 | 절차 모듈화 (State Machine) |
3 동일 도메인 내 스킬의 의미적 중첩
동일한 상위 도메인에 속하는 스킬들은 어휘 체계와 문맥적 임베딩이 유사하다. 이는 스킬 간의 상호 배반성(Mutual Exclusivity)이 낮아지는 현상을 초래한다.
3.1 수학적 근거
코사인 유사도의 수렴: 동일 도메인 내 스킬 \(A\) 와 \(B\) 의 임베딩 벡터 간 각도가 좁아질수록, LLM이 라우팅 시 계산하는 Softmax 확률 분포가 평탄(flat)해지며 변별력이 상실된다.
[다른 도메인 스킬] [동일 도메인 스킬]
Softmax 분포: Softmax 분포:
Skill A: 0.85 ← 명확 Skill A: 0.35 ← 모호
Skill B: 0.10 Skill B: 0.30
Skill C: 0.05 Skill C: 0.35 ← 모호
조건부 확률 관점: 상위 도메인 \(X\) 라는 조건하에서 스킬 \(A, B\) 가 동시에 유효할 확률이 존재한다면, Agent는 두 스킬 사이에서 결정 장애를 겪게 된다.
\[P(Skill_A | Domain_X) \cap P(Skill_B | Domain_X) \neq \emptyset\]
다중 공선성(Multicollinearity): 통계 모델에서 독립 변수 간 상관관계가 높으면 계수 추정이 불안정해지듯, Agent 프롬프트 내에 유사한 스킬 설명이 병렬로 배치되면 모델은 “가장 적합한 것”이 아닌 “가장 최근에 본 것”이나 “설명이 더 긴 것”에 편향될 수 있다.
3.2 해결 전략
배타적 기술(Exclusive Description): 각 스킬의 설명에 “이 스킬은 ~한 경우에만 사용하고, ~한 경우에는 스킬 B를 사용하라”는 부정 제약(Negative Constraint)을 명시한다.
# Bad: 유사한 설명
- name: data-query
description: 데이터를 조회하고 분석한다
- name: data-report
description: 데이터를 분석하여 보고서를 생성한다
# Good: 배타적 경계 명시
- name: data-query
description: >
데이터베이스에서 원시 데이터를 조회하고 필터링한다.
보고서 생성이 필요한 경우에는 data-report를 사용한다.
- name: data-report
description: >
조회된 데이터를 기반으로 시각화와 요약이 포함된 보고서를 생성한다.
단순 데이터 조회만 필요한 경우에는 data-query를 사용한다.Few-shot 엣지 케이스 주입: 유사한 두 스킬이 혼동될 수 있는 상황을 예시로 제공하여 결정 경계를 강제로 선명하게 만든다.
계층적 라우팅(Hierarchical Routing): 동일 도메인 내에서도 소분류를 두어 모델이 한 번에 비교해야 할 선택지 \(N\) 을 줄인다.
[1단계] 대분류 라우터
├── 데이터 관련 (3개 스킬)
├── 분석 관련 (4개 스킬)
└── 보고 관련 (3개 스킬)
[2단계] 소분류 라우터 (각 그룹 내에서 선택)
데이터 관련 → query / transform / validate
이 구조는 스킬 설계와 생성에서 다룬 마스터 스킬 -> 그룹별 스킬의 계층 구조와 동일한 원리이다. 각 단계에서 비교 대상이 3~5개로 제한되므로 Softmax 분포가 선명하게 유지된다.
4 설계 가이드라인 요약
| 상황 | 권장 전략 |
|---|---|
| 도메인이 완전히 다른 기능 | Agent를 분리한다 (예: HR Agent, 분석 Agent) |
| 동일 도메인 내 기능적 차이 | 스킬 기반으로 통합한다 (단일 Agent + 복수 스킬) |
| 스킬 수 10개 이하 | 단일 레벨 라우팅으로 충분하다 |
| 스킬 수 10~50개 | 계층적 라우팅 도입을 검토한다 |
| 스킬 수 50개 이상 | 반드시 계층적 라우팅. 대분류 -> 소분류 -> 개별 스킬 |
| 시퀀셜 절차 5단계 이하 | 단일 프롬프트 내에서 처리 가능하다 |
| 시퀀셜 절차 5~10단계 | 중간 결과를 외부 저장소에 저장하고 단계별 Agent를 분리한다 |
| 시퀀셜 절차 10단계 이상 | State Machine으로 설계. 각 단계를 독립 노드로 분리하고 중간 검증 포함 |
| 유사 스킬 간 혼동 | Negative Constraint + Few-shot 엣지 케이스 주입 |
LLM의 추론 능력은 모델 크기와 양자화 수준에 따라 비선형적으로 변한다. 위 임계값(스킬 50개, 시퀀셜 10단계)은 일반적 기준이며, 실제 프로젝트에서는 벤치마크 테스트를 통해 성능 하락 지점(Inflection Point)을 확인해야 한다.
5 관련 주제
선행 지식
- Agent 스킬 설계와 생성 – 스킬 구조, 계층적 마스터 스킬 설계
- 스킬 기반 Agent 패턴 – 프로그레시브 디스클로저, 스킬 수 관리
- 시스템 프롬프트 유형 분류와 혼합 설계 – 계층적 라우팅의 프롬프트 설계
후속 주제
- 어텐션 희석과 2-Pass 워크플로우 – 컨텍스트 과부하가 Agent 추론에 미치는 영향
- SKILL.md 명세와 작성법 – description 작성 시 배타적 기술 적용법
- Multi-Agent Design Patterns – Agent 분리 vs 통합의 설계 패턴