에이전틱 AI 가 뭐길래?
오늘은 에이전틱 AI, 즉 에이전틱 언어 모델에 대해 이야기해보려고 해요. 이는 기존 언어 모델 사용 방식의 발전된 형태라고 볼 수 있어요. 오늘 제가 이야기할 발표 내용은 이렇습니다. 먼저 언어 모델의 개요와 우리가 그것을 어떻게 사용하는지, 그리고 공통적으로 겪는 문제점에 대해 알아볼 거예요.
그 다음엔 이러한 한계를 개선하기 위한 몇 가지 방법을 살펴보고, 이후에 에이전틱 언어 모델이란 무엇인지, 그리고 그 설계 패턴에 대해서도 알아볼 거예요.
먼저, 언어 모델은 주어진 텍스트를 기반으로 다음에 올 단어를 예측하는 머신러닝 모델이죠? 예를 들어 입력이 “The students open their”라면, 언어 모델은 다음에 올 가능성이 가장 높은 단어를 예측할 수 있어요. 모델이 방대한 텍스트 데이터로 학습되었다면, 다음 단어의 확률을 계산해낼 수 있죠. 이 예시에서는 “books”나 “laptops” 같은 단어가 어휘 중 다른 단어보다 더 높은 확률을 가지게 돼요.
그래서 문장을 완성하면 “The students opened their books.”처럼 될 수 있고, 계속해서 다음 단어를 생성하고 싶다면, 이 전체 문장을 다시 입력으로 삼아 언어 모델에 넣는 식으로 계속 진행할 수 있어요. 언어 모델은 이렇게 다음 단어를 계속 예측해 나가는 방식으로 작동합니다.
언어 모델 훈련 방법
언어 모델은 보통 크게 두 단계로 학습돼요: 사전학습(pre-training) 단계와 후속 학습(post-training) 단계입니다.
먼저, 사전학습 단계에서는 방대한 양의 텍스트 데이터를 수집해서 모델을 훈련시켜요. 이 데이터는 인터넷에서 얻은 문서나 책, 공개된 다양한 텍스트들이 될 수 있고, 그 텍스트를 기반으로 ‘다음 단어’를 예측하는 방식으로 학습이 이뤄집니다.
이 과정을 거친 모델은 이후 어떤 문장이 주어졌을 때 그다음에 올 단어를 꽤 잘 예측할 수 있게 돼요. 그런데 이렇게 사전학습만 된 모델은 바로 사용하기엔 조금 어려워요. 그래서 그 다음 단계로 후속 학습(post-training) 이 필요합니다.
후속 학습에는 대표적으로 두 가지 방식이 있어요:
- 지시 따르기 학습(instruction-following training)
- 인간 피드백 기반 강화학습(RLHF, Reinforcement Learning with Human Feedback)
첫 번째인 지시 따르기 학습은 사용자의 질문이나 요청에 대한 답변 데이터를 만들어서 모델에게 ‘이런 질문엔 이렇게 답해줘’라는 식으로 학습시키는 거예요. 이렇게 하면 모델이 사용자의 요구에 좀 더 잘 반응하게 돼요.
두 번째는 RLHF, 즉 인간 피드백을 활용한 강화학습이에요. 이 방식에서는 인간이 선호할 만한 응답을 기준으로 모델의 출력을 평가하고, ‘좋은 출력’에는 보상을 주는 식으로 학습을 시켜요. 이 보상 체계를 통해 모델이 사람이 원하는 방식으로 점점 더 잘 응답하게 되는 거예요.
그리고 여기 간단히 보여드릴게요—우리가 지시 따르기 학습에 사용할 수 있는 데이터셋의 템플릿이에요. 이 템플릿에는 구체적인 지시문과 그에 대한 예상 응답이 포함돼요. 모델은 이 응답 부분만 학습하고, 이후 실제 입력이 들어왔을 때 유사한 방식으로 응답을 생성하게 됩니다.
즉, 사전학습과 후속 학습을 모두 마친 언어 모델은 이제 사용자가 지시한 내용에 따라 자연스럽고 유용한 텍스트를 생성할 수 있는 능력을 가지게 됩니다.
이렇게 학습된 언어 모델은 정말 다양한 분야에서 활용되고 있어요.
예를 들어:
- 코딩 보조 도구로 사용되기도 하고,
- **특정 도메인에 특화된 AI 보조 도구(co-pilot)**로도 활용되며,
- 가장 널리 알려진 예시로는 ChatGPT와 같은 대화형 인터페이스가 있어요.
이러한 언어 모델을 애플리케이션이나 서비스에 활용하고 싶을 때는 보통 클라우드 기반의 API를 통해 접근하거나,
혹은 로컬(내 PC나 모바일 등) 환경에 직접 모델을 호스팅해서 사용할 수도 있어요.
그럼 API 호출을 통한 모델 활용 방식이 어떤 의미인지 간단히 살펴볼게요.
언어 모델은 자연어 텍스트를 입력으로 받아 그에 대한 출력을 생성해요.
그래서 우리가 해야 할 일은, 자연스러운 문장 형식의 질문이나 지시문을 모델에게 잘 전달하는 것이죠.
이걸 위해 우리는 입력 텍스트를 특정 형식에 맞게 준비한 뒤,
**API를 통해 모델 제공자(예: OpenAI, Anthropic 등)**에게 요청을 보내요.
모델은 이 요청을 받아서 응답을 생성하고, 그 응답을 다시 우리의 프로그램에 돌려주는 구조예요.
그다음엔 우리의 소프트웨어가 이 응답을 받아서 처리하게 됩니다.
필요하다면, 응답 내용을 바탕으로 후속 API 호출을 통해 추가로 텍스트를 생성할 수도 있어요.
이 과정에서 중요한 개념이 바로 **프롬프트(prompt)**예요.
프롬프트는 모델에게 주는 ‘지시문’이라고 생각하면 돼요.
좋은 프롬프트를 작성하는 건 아주 중요해요.
그래서 아래와 같은 프롬프트 작성 전략들이 널리 알려져 있어요:
- 명확하고 구체적인 지시를 쓰기
- 모호한 요청보다, 구체적인 설명이 포함된 지시문이 훨씬 더 원하는 결과를 잘 얻을 수 있어요.
- 예시(few-shot examples)를 포함하기
- 원하는 스타일이나 형식이 있다면, ‘입력 → 출력’ 예시를 함께 보여주면 모델이 따라하기 쉬워요.
- 참조 정보나 배경 컨텍스트 제공하기
- 모델이 참고할 수 있는 배경 정보를 함께 주면, 잘못된 내용을 생성하는 확률이 줄어요.
- 모델에게 생각할 시간을 주기
- 바로 답변을 요청하기보다 “먼저 너의 답을 스스로 생각해보고, 그다음에 판단해줘” 같은 구조가 더 좋은 결과를 만들 수 있어요. 이를 Chain of Thought(COT) 기법이라고도 해요.
- 복잡한 작업은 단계별로 쪼개기
- 하나의 프롬프트에 너무 많은 요청을 넣기보다, 단계별로 나눠서 순차적으로 처리하면 더 정확해져요.
- 추적 및 평가 시스템 구축하기
- 개발 중에는 모델의 응답을 로깅하고, 자동 평가 체계를 갖추는 것이 굉장히 중요해요. 그래야 발전 방향을 판단할 수 있어요.
먼저, **”명확하고 구체적인 지시문 작성하기”**부터 시작해요.
왼쪽 예시를 보면, 짧고 간단한 요청보다 구체적으로 설명해주는 쪽이 더 효과적이에요.
왜냐하면 모델은 사람처럼 우리의 마음을 읽을 수 없기 때문이에요.
우리가 원하는 출력을 얻고 싶다면, **”무엇을 기대하는지”**를 정확히 설명해줘야 해요.
이건 언어 모델을 사용할 때 항상 유용한 기본 원칙이에요.
다음은 **”예시(few-shot examples) 제공하기”**예요.
이건 모델에게 입력-출력의 예시를 몇 개 보여줘서, 우리가 원하는 방식이 어떤 건지 알려주는 방법이에요.
예를 들어, 어떤 일정한 스타일로 결과물을 생성하고 싶다면,
- 그 스타일이 어떤 것인지,
- 어떤 입력이 있었고 어떤 출력이 나왔는지를 모델에게 미리 보여주는 거예요.
그다음에 진짜 질문을 하면, 모델은 앞에서 보여준 예시를 바탕으로 비슷한 스타일로 결과를 생성해요.
이런 식의 few-shot prompting은 원하는 출력을 얻는 데 정말 많은 도움이 돼요.
세 번째 전략은 **”관련된 맥락(context)이나 참조(reference) 제공하기”**예요.
이 전략은 특히 사실에 기반한 정보 생성에 아주 유용해요.
왜냐하면 LLM들은 종종 잘못된 정보를 만들어내기도 하거든요.
우리는 이것을 **hallucination(환각 현상)**이라고 불러요.
모델이 자신 없는 주제나 학습하지 못한 내용에 대해 답변할 때 이런 문제가 생겨요.
그래서 이런 경우엔 모델에게 참고할 수 있는 자료나 문맥을 함께 제공하는 게 좋아요.
예를 들어, RAG(Retrieval-Augmented Generation) 같은 방식에선
“제공된 문서에 기반해서만 답하세요”라는 프롬프트를 사용해요.
이럴 땐, 관련 자료를 함께 넣고
“이 자료에 없는 경우에는 ‘답을 찾을 수 없습니다’라고 말하세요”
라고 안내하면, 모델은 해당 자료에 기반해서 더 정확하고 근거 있는 답을 생성하게 됩니다.
다음 전략은 **”모델에게 생각할 시간을 주기(Chain of Thought)”**예요.
즉, 바로 답을 요구하지 않고, 모델이 스스로 생각한 과정을 거치도록 유도하는 방식이에요.
예를 들어, 어떤 학생의 풀이가 맞았는지를 묻는 문제를 모델에게 바로 던지면, 중간 과정을 생략하고 결과만 말하다가 틀릴 수도 있어요. 하지만, 이렇게 질문을 바꾸면 좋아요: “먼저 네가 직접 이 문제를 풀어보고, 그다음 학생의 풀이와 비교해서 맞았는지 판단해줘.” 이렇게 하면 모델이 자기만의 풀이 과정을 생성하면서, 입력과 출력에 더 집중하게 되고, 결과적으로 더 정확한 판단을 할 가능성이 높아져요. 이게 바로 Chain of Thought(사고의 흐름) 전략이에요.
다음은 “복잡한 작업을 작은 단계로 나누기” 전략이에요.
한 번에 여러 작업을 처리하도록 요청하면 모델이 혼란스러울 수 있어요.
그래서 작업을 작은 단계로 쪼개서 순차적으로 진행하는 게 좋아요.
예를 들어:
- 1단계 프롬프트를 작성해서 결과를 얻고,
- 그 결과를 2단계 프롬프트의 입력으로 붙여넣고,
- 다시 그 결과를 3단계에 붙여넣고… 이런 식으로
출력을 점점 누적해가며 최종 결과를 만들어가는 방식이에요.
이 과정은 수동으로 할 수도 있지만, 나중에 LLM을 활용해서 자동화할 수도 있어요. 핵심은, 작고 명확한 요청 단위로 작업을 나누는 게 중요하다는 거예요.
그리고 이건 조금 덜 알려졌지만 정말 중요한 전략이에요: “추적(tracing)과 기록(logging)”을 잘 해두기.언어 모델 기반 개발도 결국 엔지니어링 작업이기 때문에, 문제 해결, 디버깅, 감사(auditing)를 위해 어떤 입력을 넣었고 어떤 출력을 받았는지 기록하는 습관이 필요해요.
이와 함께, **자동 평가 체계(automated evaluation)**를 구축하는 것도 중요해요. 개발 초기부터 질문-정답 쌍을 만들어두고, 모델의 출력과 비교해보는 방식으로 진행 상황을 점검할 수 있어요.
물론 사람이 직접 평가할 수도 있지만, 그건 시간도 오래 걸리고 비용도 많이 들어요.
그래서 요즘은 **LLM을 평가자(judge)**로 활용하기도 해요. 즉, 모델에게 “이 출력이 기준 답과 얼마나 유사한지 평가해줘”라고 시키는 방식이죠. 이렇게 하면, 우리가 개발 중인 모델이 얼마나 품질이 좋은지 빠르게 확인할 수 있어요.
이건 특히 언어 모델 기술이 빠르게 발전하고, 기존 모델들이 **금방 구식(deprecated)**이 되는 요즘 같은 시대엔 정말 중요해요. 초기부터 평가 체계를 잘 세워두면, 모델을 바꾸거나 개선할 때 훨씬 수월하게 진행할 수 있습니다.
이제부터는 아주 간단하지만 많은 애플리케이션에 도움이 될 수 있는 아이디어를 소개할게요. 바로 프롬프트 라우터(prompt router) 개념이에요. 우리가 프롬프트를 모델에 그대로 전달하는 대신, 입력의 종류나 목적에 따라 적절한 방식으로 처리해주는 시스템을 구성할 수 있어요. 예를 들어, 어떤 질문은 간단한 모델이나 간단한 프롬프트로도 충분하고, 어떤 질문은 복잡한 처리나 고성능 모델이 필요할 수도 있죠.
그래서 입력 쿼리의 유형을 먼저 판별한 뒤, 그에 맞는 프롬프트 처리기로 라우팅하는 방식이 유용해요.
이렇게 하면 운영 비용도 절감되고, 더 적절한 응답을 생성하는 데에도 도움이 돼요.
에이전틱 AI 파헤치기
여기서부터는 에이전틱 언어 모델에 대한 본격적인 이야기로 넘어갈게요. 에이전틱 언어 모델은 여러 가지로 정의될 수 있어요. 그중 하나는 환경과 상호작용할 수 있는 언어 모델이라는 정의예요.
기존의 언어 모델 사용은 보통 “입력 텍스트 → 출력 텍스트” 구조였어요.
하지만 에이전틱 언어 모델은 외부 환경과 연결되어 어떤 ‘행동’을 수행하거나, 관찰(observation)을 수집해서 반영할 수 있어요.
예를 들어, 언어 모델이
- 도구를 호출하고,
- 검색을 요청하고,
- 외부 시스템에서 정보를 가져오고,
- 그걸 바탕으로 다시 판단을 내리는 식이죠.
이때 모델은 그 상호작용의 맥락을 **‘메모리’**로 저장할 수도 있어요. 이 메모리는 대화 기록일 수도 있고, 내부 상태일 수도 있죠. 이렇게 언어 모델을 중심으로 하고, 그 바깥에 소프트웨어 계층이 둘러싸여 있는 전체 구조를 에이전틱 언어 모델 시스템이라고 부를 수 있어요.
또 다른 정의는, 에이전틱 언어 모델을
‘추론(reasoning)’과 ‘행동(action)’을 함께 수행할 수 있는 모델로 보는 관점이에요.
이걸 ReAct 패턴이라고도 해요.
- ‘Reasoning’은 모델이 생각하고 계획하는 과정이에요.
예: “문제를 먼저 풀어보고, 그다음에 비교해봐”처럼요. - ‘Action’은 모델이 실제로
- 검색 도구를 호출하거나,
- 계산기 API를 호출하거나,
- 파이썬 코드를 생성해서 실행하거나,
- 날씨 정보를 불러오는 등의 행위 수행이에요.
이 두 가지를 조합하면, 단순한 질의응답을 넘어서
복잡한 문제 해결이나 다단계 업무 수행이 가능해져요.
이 개념을 더 잘 이해할 수 있도록 예시 하나를 살펴볼게요. 예를 들어, 어떤 고객 지원 에이전트 AI가 있다고 해요. 사용자가 “제품 X 환불 가능한가요?”라고 묻는다면, 에이전트는 이 질문을 다음과 같은 네 가지 단계로 나눌 수 있어요:
- 환불 정책 확인
- 고객 정보 확인
- 제품 정보 확인
- 위의 정보를 종합해서 판단
에이전트는 각 단계에서 필요한 데이터를 얻기 위해
- 사전에 인덱싱된 문서에서 정책을 검색하거나,
- 시스템 API를 통해 고객 주문을 조회하거나,
대화를 통해 추가 정보를 수집하거나, - 제품 카탈로그를 검색하는 등 다양한 행동을 수행해요.
이렇게 수집한 정보를 종합해서
- 환불 요청을 처리하고,
- 시스템에 API 요청을 보내고,
- 고객에게 응답을 전달하죠.
이게 바로 에이전틱 언어 모델의 작업 방식이에요. 하나의 모델이 순차적으로 작업 단계를 밟아가며,
계획하고, 도구를 사용하고, 판단을 내리는 구조를 갖고 있는 거예요.
자, 이제 실제 예시를 살펴볼게요. 에이전틱 언어 모델은 일반적인 언어 모델과 달리, 문서를 계속해서 읽고, 외부 도구를 호출하면서, 여러 번에 걸쳐 반복적으로 작동하는 방식이에요. 예를 들어, 어떤 주제에 대해 **리서치(조사)**를 하고 싶다면, 이 에이전트는 먼저 웹에서 검색을 하고, 관련 정보를 요약한 다음,
최종적으로 보고서를 작성해줄 수 있어요.
또 다른 예시는 소프트웨어 개발 보조 에이전트예요. 사용자가 “버그가 발생했어요”라고 하면, 에이전트는 그 문제에 대해 정보를 수집하고, 관련된 코드 파일을 찾아 검토한 뒤, 수정안을 제안하고 테스트까지 한 후에
풀 리퀘스트(pull request)를 생성해줄 수도 있어요.
이처럼 에이전틱 언어 모델은 단순히 답변만 하는 게 아니라, 복잡한 과정을 여러 단계로 나누고, 외부 도구와 상호작용하면서 점점 작업을 완성해가는 형태로 동작합니다.
에이전틱 AI , 점점 늘어나는 이유
그럼 왜 이런 방식이 점점 더 많이 사용될까요?이유는 간단해요. 같은 언어 모델이라도, 그냥 직접 요청했을 때는 처리가 안 되는 작업이에이전트 구조로 설계했을 때는 가능해지기 때문이에요.
즉, 모델이 똑같아도 작업 방식의 패턴을 바꾸면 해결할 수 있는 문제의 범위가 훨씬 넓어지는 거죠. 이런 이유 때문에 요즘은 AI 에이전트가 할 수 있는 일의 경계가 계속 확장되고 있어요. 그럼 이제, 실제로 이런 시스템을 어떻게 설계하는지 대표적인 **디자인 패턴(design pattern)**들을 소개해볼게요:
1. 계획하기 (Planning)
모델에게 “지금 이 일을 어떻게 나눠서 처리할까?”라고 물어보는 방식이에요.
작업을 세분화하고, 각 단계마다 어떤 행동이 필요한지를 계획하게 해요.
이 과정을 거치면 도구 사용이나 API 호출이 훨씬 체계적으로 이뤄져요.
2. 되돌아보기 (Reflection)
이건 정말 효과적인 패턴이에요! 모델이 자신이 생성한 출력에 대해 스스로 피드백을 주고, 그 피드백을 반영해서 출력을 다시 개선하는 방식이에요.
예를 들어,
- 1차로 코드 리뷰 코멘트를 생성하고,
- 2차로 “이 피드백을 참고해서 코드를 리팩터링해줘”
라고 요청하면,
훨씬 나은 코드가 나올 수 있어요.
3. 도구 사용하기 (Tool Usage)
이건 앞에서 본 것처럼, 언어 모델이 외부 API를 호출하거나, 코드를 생성해서 실행하거나, 검색 도구를 사용하는 구조예요. 날씨 API, 계산기, 검색, 코딩 환경 등 다양한 외부 기능과 연동돼요.
4. 다중 에이전트 협업 (Multi-Agent Collaboration)
하나의 에이전트가 모든 걸 다 하지 않고,
여러 개의 역할별 에이전트가 협업하는 방식이에요.
예를 들어, 스마트홈을 자동화하는 시스템을 만든다고 해볼게요.
- 기온 조절 에이전트
- 조명 제어 에이전트
- 보안 시스템 에이전트
이렇게 각각 다른 역할을 맡은 에이전트들이 자신의 프롬프트, 페르소나, 기능에 따라 작동하고, 전체적으로는 하나의 시스템처럼 유기적으로 움직여요. 에이전트들은 꼭 다른 모델일 필요는 없고, 다른 프롬프트와 페르소나만으로도 구성될 수 있어요.
.
.
.
AI 시대, 가장 확실한 대비를 위해
지금 바로 배울 수 있는 [ AI ] 관련 강의가 준비되어있어요.
지금 바로 아래에서 관심을 끄는 강의를 눌러 확인해보세요.
![]() 비현실적인 700가지 ChatGPT 활용 바이블 |
![]() Cursor.AI 실전 웹 제작 |
![]() 가장 먼저 만나는 Google Gemini |
![]() 끝내는 Dart & Flutter 앱 개발 |