전지전능한 AI라는 환상, 그게 바로 함정입니다
지난 포스팅에서 Gemini CLI에 "서브에이전트"라는 새 기능이 추가되었다는 소식을 전해드렸습니다. 이번 편에서는 "그래서 정확히 뭔데? 어떻게 작동하는 건데?"를 기술을 전혀 모르는 분도 이해할 수 있게 풀어보겠습니다.
1. 지금까지의 AI는 "혼자 다 하는 인턴"이었습니다
ChatGPT든, Gemini든, Claude든 — 우리가 지금까지 써온 AI는 기본적으로 1명이었습니다. 이 1명에게 우리는 이런 식으로 일을 시켰습니다.
💬 "어제 회의 내용 정리해줘"
💬 "아, 그리고 경쟁사 가격도 좀 조사해줘"
💬 "참, 아까 그 코드에서 에러 났는데 원인 좀 봐줘"
💬 "그거 끝나면 블로그 글도 하나 써줘"
문제는, 이 모든 대화가 하나의 대화창 안에서 쌓인다는 겁니다.
비유하자면 이런 상황입니다. 회사에 인턴이 딱 한 명 있는데, 이 인턴의 책상 위에 회의록, 경쟁사 자료, 에러 로그, 블로그 초안이 전부 뒤섞여 쌓여 있는 겁니다. 처음엔 괜찮지만, 자료가 쌓일수록 이 인턴은 "아까 그거"가 회의록인지 경쟁사 자료인지 헷갈리기 시작합니다.
이걸 전문 용어로 "컨텍스트 오염(Context Pollution)"이라고 합니다.
AI와 오래 대화할수록, 이전 대화 내용이 뒤엉켜서 답변 품질이 떨어지는 현상입니다. 여러분도 경험해 본 적 있을 겁니다 — AI에게 여러 가지를 물어보다 보면 갑자기 엉뚱한 답변이 나오거나, 아까 분명히 말한 내용을 까먹는 것처럼 보이는 경우요.
2. 서브에이전트는 "전문 팀원"입니다
서브에이전트가 도입되면, 구조가 완전히 달라집니다.
인턴 1명 → 팀장 1명 + 전문 팀원 여러 명
👤 여러분(사장)
↓ 일을 시킨다
🤖 메인 AI (팀장) — 전체 방향 잡고, 누구한테 시킬지 판단
├── 🔧 개발 전문가 — "코드 짜고, 버그 고쳐"
├── 📝 마케팅 전문가 — "블로그 쓰고, 광고 문구 만들어"
├── 💬 CS 전문가 — "고객 문의 답변 만들어"
└── 📋 행정 전문가 — "계약서 쓰고, 세무 일정 정리해"
핵심은 이겁니다: 각 팀원이 자기만의 독립된 사무실에서 일한다는 것.
개발 전문가가 코드를 100번 뒤져도, 그 중간 과정은 팀장의 책상에 올라가지 않습니다. 최종 결과 보고서 한 장만 올라옵니다. 덕분에 팀장(메인 AI)의 머릿속은 항상 깔끔하게 유지됩니다.
3. 여섯 가지 핵심 개념, 하나씩 쉽게
서브에이전트의 상세 기능을 여섯 가지 핵심 개념으로 나눠서 설명하겠습니다. 각 개념마다 일상 비유 → 실제 작동 방식 → 왜 중요한지 순서로 풀어갑니다.
개념 ① 격리된 작업 공간 — "각자 자기 방에서 일한다"
🏠 일상 비유
카페에서 4명이 한 테이블에 앉아 각자 다른 일을 하는 상황을 상상해 보세요. 한 사람이 펼쳐놓은 서류가 옆 사람의 노트북을 가리고, 전화 통화 소리가 다른 사람의 집중을 깨뜨립니다.
서브에이전트는 다릅니다. 4명에게 각자 독립된 사무실을 줍니다. 각자 자기 방에서 문을 닫고 일한 뒤, 결과물만 팀장 방에 가져다 놓습니다.
⚙️ 실제 작동 방식
Gemini CLI 공식 문서에 따르면, 각 서브에이전트는 다음 네 가지를 독립적으로 가집니다.
| 기술 용어 | 쉬운 표현 | 비유 |
|---|---|---|
| 전용 컨텍스트 윈도우 | 자기만의 기억 공간 | 각자의 메모장이 따로 있음 |
| 커스텀 시스템 인스트럭션 | 자기만의 업무 매뉴얼 | "넌 마케터야, 이 원칙대로 일해" |
| 자체 도구(tools) 세트 | 자기만의 도구함 | 마케터에겐 펜만, 개발자에겐 공구함 전체 |
| 개별 실행 흐름 | 자기만의 업무 순서 | 각자 알아서 일하고 결과만 보고 |
💡 왜 중요한가요?
서브에이전트가 파일 20개를 읽고, 검색을 5번 하고, 테스트를 10번 돌려도, 메인 AI에게는 "결과 요약 1개"만 전달됩니다. 메인 대화창이 더러워지지 않으니, 10번째 질문의 답변 품질이 1번째와 동일하게 유지됩니다.
출처: Gemini CLI 공식 문서 — What are subagents?
개념 ② 전문 도구 제한 — "마케터에게 서버 열쇠를 주지 마라"
🏠 일상 비유
회사에서 경리 직원에게 서버실 마스터 키를 주지는 않습니다. 경리에게는 회계 프로그램 접근 권한만 주면 됩니다. 마찬가지로, 마케팅 담당 AI에게 서버 명령어 실행 권한을 줄 필요가 없습니다.
⚙️ 실제 작동 방식
Gemini CLI에는 AI가 사용할 수 있는 여러 가지 "도구(tools)"가 있습니다. 서브에이전트를 만들 때, 이 에이전트에게는 어떤 도구만 줄 것인지 명시할 수 있습니다.
| 도구 이름 | 쉬운 설명 | 비유 |
|---|---|---|
read_file | 파일을 읽는다 | 📖 서류를 열어본다 |
write_file | 새 파일을 만든다 | 📝 새 문서를 작성한다 |
replace | 기존 파일을 수정한다 | ✏️ 기존 문서를 고친다 |
run_shell_command | 컴퓨터에 명령을 내린다 | ⌨️ 서버를 직접 조작한다 |
google_web_search | 구글 검색을 한다 | 🔍 인터넷에서 정보를 찾는다 |
web_fetch | 웹페이지 내용을 가져온다 | 📄 웹사이트를 읽어온다 |
grep_search | 파일 내용에서 텍스트를 검색한다 | 🔎 문서 안에서 특정 단어를 찾는다 |
glob | 파일 목록을 찾는다 | 📂 폴더에서 파일 이름을 훑는다 |
💡 이걸 어떻게 활용하나요?
역할별로 도구를 나누면 이렇게 됩니다.
| 에이전트 역할 | 주는 도구 | 안 주는 도구 | 이유 |
|---|---|---|---|
| 🔧 개발 전문가 | 거의 전부 | — | 개발은 다양한 도구가 필요 |
| 📝 마케팅 전문가 | 읽기, 쓰기, 검색 | run_shell_command, replace | 마케터가 서버를 건드릴 일 없음 |
| 💬 CS 전문가 | 읽기, 쓰기, 검색 | run_shell_command, replace | 고객 응대 문서만 만들면 됨 |
| 📋 행정 전문가 | 읽기, 쓰기, 검색 | run_shell_command, replace | 계약서/서류만 다루면 됨 |
도구를 제한하면 AI가 역할 밖의 행동을 하는 것을 구조적으로 차단할 수 있습니다. "마케터에게 시켰더니 코드를 건드려서 서비스가 멈췄다" 같은 사고를 원천적으로 막는 것입니다.
출처: Gemini CLI 공식 문서 — Subagent Tool Isolation
개념 ③ 자동 위임 — "팀장이 알아서 적임자에게 넘긴다"
🏠 일상 비유
여러분이 팀장에게 "고객이 결제 문제로 연락왔어"라고 말하면, 팀장이 알아서 CS 담당자에게 넘기지, 개발자에게 넘기지는 않겠죠? 메인 AI도 같은 판단을 합니다.
⚙️ 실제 작동 방식
각 서브에이전트를 만들 때 "이 에이전트가 무엇을 잘하는지"를 설명하는
description을 적습니다. 메인 AI는 여러분의 요청과 각 서브에이전트의 description을 비교하여,
가장 적합한 전문가에게 자동으로 일을 넘깁니다.
예시:
👤 여러분: "블로그 글 하나 써줘"
🤖 메인 AI: (각 에이전트의 description을 확인한다)
→ 마케팅 전문가의 description에 "블로그 작성"이 있네?
→ 마케팅 전문가에게 자동 위임!
💡 자동 위임이 잘 되려면?
description을 구체적으로 적는 것이 핵심입니다.
| 판정 | description 예시 |
|---|---|
| ❌ 나쁜 예 | "마케팅을 도와주는 에이전트" |
| ✅ 좋은 예 | "콘텐츠 마케팅 전문가. 블로그 작성, SNS 콘텐츠 기획, 뉴스레터 초안, 상세페이지 카피라이팅, 광고 문구, SEO 최적화를 담당. 예: '블로그 글 써줘', '인스타 카피 만들어줘'" |
좋은 description의 공식: "무엇을 하는 전문가인지 + 구체적인 업무 목록 + 예시 요청 2~3개"
출처: Gemini CLI 공식 문서 — Optimizing your subagent

