ADK(Agent Development Kit)에 대해서 보다가 알게된 것을 정리해봤습니다.
ADK 에서 알아보다가 표준화된 공통 규격의 인터페이스로 어댑팅하는 구조라는 것을 알게 되었고,
그 구조에서 페르소나가 있다는 것을 알게 되었습니다.
대부분의 최신 LLM은 대화 기록을 보낼 때 다음과 같은 공통 구조를 사용합니다.
- System: AI의 역할 설정 (너는 전문가야)
- User: 사용자의 질문
- Assistant: AI의 답변
- Tool/Function: 도구 실행 결과
그래서 물어봤습니다.
기본적으로 LLM은 페르소나를 주입하는구나.. 이렇게 해야 하는 특별한 이유가 있나? 주입하지 않은 상태에서 하는 것과 어떤 차이가 있어?
맞습니다. LLM에게 페르소나(Persona)를 주입하는 것은 단순히 "재미"를 위한 것이 아니라, 모델의 출력 품질과 일관성을 높이기 위한 공학적인 장치에 가깝습니다.
페르소나를 주입했을 때와 주입하지 않았을 때(기본 상태)의 차이를 핵심적인 이유와 함께 정리해 드릴게요.
1. 확률의 범위를 좁히기 (Constraint)
LLM은 다음에 올 가장 확률 높은 단어를 선택합니다. 페르소나가 없으면 모델은 인터넷상의 방대한 데이터(초등학생의 일기부터 박사 학위 논문까지) 전체를 대상으로 단어를 찾습니다.
- 주입 전: 답변이 평이하고 애매모호할 수 있습니다. (예: "그건 상황에 따라 다릅니다.")
- 주입 후: "너는 20년 경력의 시니어 개발자야"라고 지정하면, 답변에 사용되는 단어의 선택지가 '기술적', '전문적', '경험 중심적'인 범위로 확 좁혀집니다. 결과적으로 더 정확하고 깊이 있는 답변이 나옵니다.
2. 맥락과 의도의 명확화 (Contextualization)
같은 질문이라도 누구에게 하느냐에 따라 정답이 달라집니다.
- 질문: "인플레이션이 뭐야?"
- 7세 아이 페르소나: "과자 값이 자꾸 오르는 거야."
- 경제학 교수 페르소나: "통화량 증가에 따른 화폐 가치의 하락과 물가 수준의 지속적 상승 현상입니다."
페르소나를 주입하지 않으면 AI는 사용자가 어떤 수준의 답변을 원하는지 추측해야 하므로, 사용자 의도와 빗나간 답변을 할 확률이 높습니다.
3. 일관성 유지 (Consistency)
복잡한 작업을 시킬 때 페르소나는 일종의 '가이드라인' 역할을 합니다.
- 페르소나가 있으면 대화가 길어져도 AI가 본인의 역할(말투, 태도, 전문 지식 수준)을 잊지 않고 일관되게 유지합니다.
- 페르소나가 없으면 대화 도중에 말투가 바뀌거나, 앞서 했던 논리적 스탠스가 흔들리는 '환각(Hallucination)' 현상이 더 자주 발생할 수 있습니다.
4. 거절 및 안전 가드레일 (Safety)
페르소나 설정에는 "너는 예의 바른 조력자야", "불법적인 정보는 제공하지 않아" 같은 윤리적 지침도 포함됩니다. 기본 상태의 모델보다 페르소나가 주입된 모델이 시스템의 안전 규칙을 더 잘 준수하는 경향이 있습니다.
💡 요약하자면
| 구분 | 페르소나 미주입 (기본) | 페르소나 주입 |
| 답변 스타일 | 일반적, 평균적, 다소 기계적 | 특정 목적에 최적화됨 |
| 전문성 | 겉핥기식 정보 제공 가능성 | 깊이 있는 전문 지식 활용 |
| 일관성 | 대화가 길어지면 태도 변함 | 설정된 역할 끝까지 유지 |
| 활용도 | 단순 검색/요약 | 상담, 코딩 부사수, 교육 등 전문 영역 |
결국 ADK 같은 도구에서 페르소나를 강조하는 이유는, AI를 '단순한 도구'가 아니라 '특정 직무를 수행하는 요원(Agent)'으로 만들기 위해서입니다.
위의 내용을 기반으로 다시 정리해봤습니다.
ADK의 핵심 클래스인 Agent를 정의할 때 instruction(지시사항)은 필수 값입니다. 이 설정이 빠지면 에이전트는 작동하지 않거나 매우 불안정해집니다. 그 기술적인 이유는 다음과 같습니다.
1. 도구(Tool)를 꺼내는 '판단 기준'
에이전트에게 10개의 도구를 쥐여준다고 가정해 봅시다. 페르소나가 없는 AI는 사용자의 질문을 받고 어떤 도구를 써야 할지 확률적으로 방황하게 됩니다.
- 페르소나 없음: "날씨 알려줘" → (검색을 할까? 기상청 DB를 뒤질까? 아니면 그냥 아는 대로 대답할까?)
- 페르소나 주입 ("너는 기상 전문 비서야"): 사용자의 질문이 들어오는 순간, 페르소나에 의해 '검색 도구 사용'에 대한 우선순위(Weight)가 비약적으로 높아집니다.
- 결과: 도구 호출의 오작동률이 현격히 줄어듭니다.
2. 멀티 에이전트 간의 '업무 경계(Boundary)' 확정
ADK의 강점은 여러 AI를 팀으로 묶는 것입니다. 이때 페르소나가 명확하지 않으면 에이전트끼리 서로의 영역을 침범하거나 충돌하는 기술적 이슈가 발생합니다.
- 상황: '기획자 에이전트'와 '검수자 에이전트'가 협업할 때
- 이슈: 페르소나가 흐릿하면 검수자가 기획을 수정해 버리거나, 기획자가 검수까지 끝내버리는 등 워크플로우가 꼬입니다.
- 해결: 각 객체에 명확한 페르소나(직무)를 주입하면, 에이전트는 자신의 권한 밖의 일은 다음 에이전트에게 넘기는 '위임(Delegation)'을 정확히 수행하게 됩니다.
3. 토큰 소모와 응답 속도의 효율성
페르소나가 구체적일수록 LLM은 불필요한 추론 과정을 생략하여 물리적인 리소스를 아껴줍니다.
- 모호한 상태: 모델은 사용자의 의도를 파악하기 위해 내부적으로 방대한 연산을 수행하며 불필요하게 긴 답변을 내놓습니다. (토큰 낭비)
- 정교한 페르소나: "너는 기술 지원 엔지니어이며, 답변은 반드시 JSON 형식으로 3줄 이내로 해"라고 정하면, 모델은 연산 범위를 좁혀 즉각적이고 구조화된 답변을 내놓습니다.
- 결과: 응답 속도가 빨라지고 운영 비용이 절감됩니다.
요약하자면, ADK에서 페르소나는 단순한 성격 부여가 아니라, 모델이 가진 방대한 파라미터 중 특정 영역만 정밀하게 사용하도록 강제하는 '성능 최적화 가이드라인'이자 '업무 규정집'인 셈입니다.
'Programmer > AI' 카테고리의 다른 글
| Claude Code의 한계를 넘다: claude-context-mode (0) | 2026.02.25 |
|---|---|
| Superpowers: AI 코딩 에이전트의 잠재력을 극대화하는 스킬 프레임워크 (0) | 2026.01.26 |
| AI 에이전트를 위한 PostgreSQL 베스트 프랙티스: Supabase Agent Skills 완벽 가이드 (0) | 2026.01.25 |
| [개발 가이드] Claude Code 제대로 쓰는 법: Anthropic이 공개한 8가지 베스트 프랙티스 (1) | 2026.01.23 |
| Claude Code에서 MCP vs Skills vs CLI - 무엇을 선택해야 할까? (1) | 2026.01.21 |