CLI 기반 AI Agent 아키텍처 정리 (Skills, MCP, Sub-Agent)
이 글은 AI가 작성했습니다.
CLI 기반 AI Agent 아키텍처 정리
최근 Codex CLI, Claude Code, Gemini CLI 같은 도구들이 등장하면서 터미널 환경에서 동작하는 AI Agent 구조가 빠르게 발전하고 있다.
이 글에서는 다음 개념들을 정리한다.
- MCP
- Skills
- Sub-Agent
- Handoff
이 네 가지는 현재 코딩 에이전트 아키텍처를 이해하는 핵심 구성 요소다.
MCP (Model Context Protocol)
MCP는 LLM이 외부 시스템과 상호작용할 수 있도록 하는 연결 계층이다.
예를 들어 다음과 같은 시스템들을 연결할 수 있다.
- filesystem
- github
- database
- slack
Agent는 MCP를 통해 다음과 같은 기능을 사용할 수 있다.
- 파일 읽기
- 데이터베이스 조회
- GitHub PR 조회
- 외부 API 호출
즉 MCP의 역할은 다음과 같다.
LLM → 외부 시스템 접근
하지만 MCP는 무엇을 해야 하는지에 대한 지식은 제공하지 않는다.
Skills
Skills는 특정 작업을 수행하는 방법을 정의한 워크플로 패키지다.
일반적으로 다음과 같은 구조를 가진다.
my-skill/
├ SKILL.md
├ scripts/
└ references/
SKILL.md에는 다음 내용이 들어간다.
- 언제 사용하는지
- 작업 절차
- 필요한 명령
- 참고 자료
예를 들어 PR 리뷰 Skill은 다음과 같은 절차를 포함할 수 있다.
- repository clone
- diff 분석
- 테스트 실행
- 스타일 가이드 확인
- 리뷰 작성
Skills는 tool을 직접 실행하지 않는다.
대신 workflow를 제공하고 내부에서 MCP tool을 호출한다.
구조적으로 보면 다음과 같다.
Skill ↓ Tool ↓ System
즉 Skills는 작업 방법을 제공하는 레이어다.
Skills가 중요한 이유
Agent가 tool만 가지고 있으면 어떤 순서로 어떤 tool을 사용해야 하는지 매번 추론해야 한다.
예를 들어 PR 리뷰 작업을 tool만으로 수행하면 다음과 같은 문제가 발생한다.
- 잘못된 tool 선택
- 잘못된 실행 순서
- 불완전한 분석
Skills는 이 문제를 해결한다.
workflow를 명시적으로 정의하기 때문이다.
예
PR 리뷰 Skill
- PR diff 가져오기
- 변경된 파일 분석
- 테스트 실행
- 코드 스타일 확인
- 리뷰 작성
이렇게 하면 Agent의 안정성이 크게 증가한다.
Sub-Agent
Sub-Agent는 복잡한 작업을 여러 에이전트로 분리해 처리하는 구조다.
예를 들어 다음 작업을 생각해보자.
repo에서 버그를 수정하고 테스트를 추가하라
이 작업은 여러 단계로 나눌 수 있다.
- 버그 분석
- 코드 수정
- 테스트 작성
- 코드 리뷰
이를 다음과 같은 에이전트로 분리할 수 있다.
Planner Agent
- Bug Finder Agent
- Code Fix Agent
- Test Writer Agent
- Review Agent
각 에이전트는 자신의 역할에 집중한다.
이 방식의 장점은 다음과 같다.
- context 감소
- reasoning 안정성 증가
- 역할 분리
Handoff
Handoff는 한 Agent의 결과를 다음 Agent에게 전달하는 과정이다.
예를 들어 Bug Finder Agent가 다음과 같은 결과를 찾았다고 가정하자.
file: auth/token.py
line: 83
issue: expiry check incorrect
이 정보는 Code Fix Agent에게 전달된다.
handoff 데이터 예시는 다음과 같다.
{
"bug_location": "auth/token.py:83",
"analysis": "expiry comparison reversed"
}
Code Fix Agent는 이 정보를 기반으로 패치를 생성한다.
그 다음 결과는 Test Writer Agent에게 전달된다.
이 과정을 통해 작업이 단계적으로 진행된다.
전체 구조
현재 CLI 코딩 에이전트의 구조는 대략 다음과 같다.
LLM
↑
Skills
↑
Tools
↑
MCP
↑
External Systems
그리고 복잡한 작업은 Sub-Agent 구조로 분해된다.
Planner Agent
↓
Sub Agents
├ Repo Search
├ Code Edit
├ Test Generation
└ Documentation
정리
MCP는 외부 시스템에 접근하는 기능을 제공한다.
Skills는 작업을 수행하는 방법을 정의한다.
Sub-Agent는 복잡한 작업을 분할해 처리한다.
Handoff는 Agent 사이에서 상태와 결과를 전달한다.
이 네 가지 개념을 이해하면 현재 CLI 기반 코딩 에이전트의 구조를 대부분 이해할 수 있다.