통계 실험실 차트
넘스탯 로고
넘스탯
LEARN · SIMULATE · VERIFY

확률부터 LLM까지, 원리부터 제대로 배우는 자기주도 학습 플랫폼

로그인
학습 메뉴
도움말

AI 에이전트와 도구 사용(Tool Use)

마일스톤 학습법으로 단계별 완전 정복
LLM
AI 에이전트
도구 사용
Tool Use
ReAct
Toolformer
함수 호출
RAG
이 개념 직접 실험하기 — 프롬프트·도구 지시 실습
이 학습을 통해 달성할 수 있는 목표
기초 이해
  • • 언어 모델이 스스로 할 수 없는 일(정확한 계산·최신 정보·외부 상태 변경)을 구분
  • • 모델이 호출문을 출력하고 시스템이 실행한 뒤 결과를 되돌려 주는 3단계 구조 이해
  • • 모델은 도구를 직접 쓰지 않고 무엇을 쓸지 문자열로 지시할 뿐이라는 경계 파악
심화 학습
  • • 생각 → 행동 → 관찰 루프를 3회 반복하는 과정을 손으로 따라가기
  • • ReAct의 확장된 행동 공간 $\hat{\mathcal{A}} = \mathcal{A} \cup \mathcal{L}$ 의 의미 해석
  • • Toolformer의 자기지도 학습 절차와 RAG를 특수한 경우로 보는 관점 설명
실무 적용
  • • 단계 수가 늘 때 성공률이 $p^n$ 으로 떨어지는 연쇄 오류의 크기 계산
  • • 루프 종료 조건과 동일 호출 재시도 제한의 필요성 설명
  • • 도구를 가역성으로 나누고 되돌릴 수 없는 행동에 사람 확인을 두는 설계 원칙 적용
한눈에 보기

AI 에이전트의 도구 사용(Tool Use)은 언어 모델이 답을 곧바로 쓰는 대신 정해진 형식의 호출(함수명 + 인자)을 출력하고, 시스템이 그 호출을 실제로 실행한 뒤 결과를 다시 모델 입력에 넣어 주는 방식으로, 모델이 계산·검색·외부 작업을 처리하게 만드는 구조다.

이 내용은 넘스탯의 프롬프트·도구 지시 실습에서 직접 실험으로 확인할 수 있습니다.

학습 로드맵

각 단계를 클릭하면 해당 학습 내용을 볼 수 있습니다

기초 이해
개념 정의와 기본 원리
15
클릭
심화 학습
공식 유도와 다양한 예시
40
클릭
실무 적용
실제 케이스와 고급 응용
55

학습 진도 (완료한 단계)

0%

기초 이해답하는 모델에서 일을 처리하는 모델로

기초 이해: 답하는 모델에서 일을 처리하는 모델로

난이도 3/5
약 15분

언어 모델은 다음에 올 토큰의 확률을 계산해 글을 이어 쓰는 장치입니다. 그래서 잘하는 일과 못하는 일이 분명합니다. 문장을 매끄럽게 쓰는 일은 잘하지만, 정확한 산술을 보장하거나, 오늘의 환율을 알아내거나, 실제로 메일을 보내는 일은 스스로 할 수 없습니다. 도구 사용(Tool Use)은 이 빈틈을 메우는 설계입니다. 모델이 답을 쓰는 대신 "계산기를 이 식으로 써 줘", "이 조건으로 데이터베이스를 조회해 줘"처럼 정해진 형식의 호출을 출력하면, 바깥의 시스템이 그 호출을 실제로 실행하고 결과를 모델에게 돌려줍니다. 이 과정을 여러 번 반복하며 스스로 다음에 쓸 도구를 고르는 구성을 AI 에이전트라고 부릅니다.

프롬프트 엔지니어링 — 입력 설계로 출력을 끈다모델을 재학습하지 않고, 프롬프트(역할·예시·질문)만으로 원하는 출력을 유도합니다프롬프트역할: 너는 감정 분류기다예시: "최고예요" → 긍정예시: "별로다" → 부정질문: "그저 그래" → ?예시 몇 개 = few-shotLLM(재학습 없음)중립※ “단계별로 생각하라”(사고사슬, CoT)는 중간 추론을 유도해 산술·논리 정확도↑ · 같은 모델도 프롬프트로 성능이 크게 달라짐
핵심 포인트
  • 언어 모델은 확률적으로 텍스트를 생성할 뿐이라, 정확한 계산·최신 정보·외부 상태 변경을 스스로 할 수 없음
  • 도구 사용의 핵심 교환: 모델이 정해진 형식의 호출(함수명 + 인자)을 출력 → 시스템이 실행 → 결과를 모델 입력에 다시 넣음
  • 모델은 도구를 "직접" 쓰지 않는다 — 무엇을 쓸지 문자열로 지시할 뿐이고 실행 주체는 시스템
  • 생각 → 행동 → 관찰을 반복하는 루프가 에이전트의 기본 동작 형태(ReAct 패턴)
  • 루프는 스스로 멈추지 않으므로 종료 조건과 실행 권한의 경계를 사람이 설계해야 함
간단한 예시

질문: "3,127 곱하기 419는?" [도구 없이] 모델은 곱셈을 "계산"하지 않고, 그럴듯한 숫자열을 이어 씁니다. 자릿수가 커질수록 틀릴 가능성이 커집니다. [도구 사용] 모델의 출력이 답이 아니라 호출문입니다. 1) 모델이 내놓는 것 (문자열일 뿐, 실행되지 않음) calculator(expression="3127*419") 2) 시스템이 실제로 실행 3127 x 419 = 1,310,213 3) 결과를 모델 입력에 덧붙임 관찰: 1310213 4) 모델이 이어서 최종 답을 작성 "3,127 곱하기 419는 1,310,213입니다." 모델이 한 일은 "계산기를 이 식으로 부르자"는 판단과, 돌아온 숫자를 문장으로 옮긴 일뿐입니다. 곱셈 자체는 모델이 아니라 계산기가 했습니다.

이해도 확인하기

정답: 아니요. 모델이 출력하는 것은 정해진 형식의 텍스트, 즉 함수명과 인자를 담은 호출문입니다. 그 문자열을 읽어 실제로 계산기를 돌리거나 데이터베이스를 조회하는 주체는 모델 바깥의 시스템입니다. 모델은 "무엇을 쓸지 지시"할 뿐이라는 점이 도구 사용 구조를 이해하는 출발점입니다.

정답: 언어 모델의 출력은 다음 토큰의 확률분포에서 나오는 생성물이라, 자릿수가 큰 산술의 정확성이 원리적으로 보장되지 않습니다. 반면 계산기는 언제나 같은 입력에 같은 정답을 냅니다. 보장이 필요한 일은 보장을 주는 장치에 맡기고, 모델은 "무엇을 언제 맡길지 판단하는 일"을 담당하게 하는 것이 도구 사용의 발상입니다.

정답: 관찰은 모델이 지어내는 것이 아니라 도구 실행 결과를 시스템이 넣어 주는 값입니다. 여기가 외부 세계와 접속하는 지점이며, 그래서 모델이 자체 지식만으로 답할 때보다 최신·사실 정보를 반영할 여지가 생깁니다. 반대로 모델이 관찰을 스스로 만들어 낸다면 그것은 도구 사용이 아니라 환각입니다.

LLM 이론 페이지로 돌아가기