Claude Code
Part 1 · 대화 시작하기Chapter 1 · LLM 기초

모델 밖으로 손을 뻗다 | Tool Use & Agent

Tool은 LLM의 한계를 지우지 않고 우회하는 장치이며, 이를 스스로 반복해서 쓰는 구조가 Agent임을 이해합니다

Overview

앞 레슨에서 LLM은 "맞는 답"이 아닌 "그럴듯한 다음 단어"를 예측하는 확률 시스템이며, Hallucination과 Knowledge Cutoff는 이 구조에서 생기는 피할 수 없는 한계임을 확인했습니다. 그렇다면 LLM은 영원히 머릿속 기억만으로 답해야 할까요?

이 레슨에서는 Tool이 LLM에게 "모델 밖 세상을 확인하는 능력"을 어떻게 부여하는지, 그리고 Tool을 스스로 반복해서 쓰는 구조가 왜 Agent인지 살펴봅니다.

학습 목표

  • Tool이 LLM에게 텍스트 바깥의 행동을 부여한다는 것을 이해합니다.
  • Tool이 Hallucination·Knowledge Cutoff 같은 구조적 한계를 "지우지 않고 우회"하는 방식을 이해합니다.
  • LLM + Tool과 Agent의 차이, 그리고 언제 어느 쪽을 써야 하는지 이해합니다.

Tool이란: 모델 밖 세상을 확인하는 수단

Tool (외부 시스템)질문에 따라 선택결과 반환사용자 질문LLM 판단어떤 Tool 을 쓸까?ReadWebSearchBashEditLLM 답변 생성결과 + 질문사용자 답변
LLM 은 여러 Tool 중 하나를 골라 호출하고, 결과를 Context 에 넣어 답변을 만듭니다

Tool(도구)은 LLM이 텍스트 생성만으로는 할 수 없는 일을 외부 시스템을 빌려 처리하는 수단입니다. 모델 안에 저장된 기억 대신, 모델 바깥의 실제 데이터를 다루는 창구입니다.

예를 들면 다음과 같습니다.

  • Read: 프로젝트 소스 코드를 열어서 실제 구현을 읽기
  • WebSearch: 공식 문서 최신 버전을 인터넷에서 검색
  • Bash: 터미널 명령어로 테스트 결과를 직접 확인
  • Edit: 코드 파일의 특정 부분을 수정

앞 레슨의 실험을 떠올려 봅시다. 존재하지 않는 react-smooth-virtual-grid 패키지에 대해 물었을 때, LLM은 설치 명령어와 사용법을 자신있게 지어냈습니다. 만약 npm 레지스트리를 조회하는 Tool이 연결돼 있었다면, 검색 결과가 없다는 사실을 직접 확인한 뒤 "이 패키지는 존재하지 않습니다"라고 답했을 것입니다. 기억에 의존해 지어낼 때와, 밖을 직접 확인할 때의 차이입니다.

Tool이 동작하는 5단계

LLM은 Tool을 직접 실행하지 않습니다. 어떤 Tool을 어떤 입력으로 호출할지 텍스트로 적어내고, 실제 실행은 외부 시스템이 담당합니다.

  1. 사용자가 질문합니다.
  2. LLM이 어떤 Tool을 쓸지 판단합니다.
  3. Tool 이름과 입력값을 텍스트로 작성해 호출을 요청합니다.
  4. 외부 시스템이 Tool을 실행하고 결과를 돌려줍니다.
  5. LLM이 결과를 Context에 넣고 답변을 생성합니다.

Context란?

친구와 카톡할 때 위로 스크롤하면 보이는 대화 전체, Context는 그것에 가깝습니다. 지금 보낸 메시지뿐 아니라 그 위의 모든 대화, 그리고 이번처럼 Tool이 가져다준 결과까지 함께 위로 쌓입니다. LLM은 답을 만들 때마다 이 전체를 다시 한 번 읽습니다.

LLM의 본질적인 역할은 여전히 "다음 텍스트를 예측"하는 것입니다. 다만 그 텍스트 중 하나가 "Tool 호출 요청"이고, 실행 결과가 다시 Context로 들어온다는 점이 달라집니다.

Tool의 역할: 한계를 지우지 않고 우회

Tool이 있어도 LLM이 "그럴듯한 다음 단어"를 예측한다는 본질은 바뀌지 않습니다. 바뀌는 것은 예측에 쓰이는 Context의 출처입니다. 머릿속 기억 대신, 방금 가져온 실제 데이터를 근거로 씁니다.

Knowledge Cutoff: 기억의 벽을 검색으로 우회

"Next.js 15의 새로운 기능이 뭐야?"

학습 기준일 이후에 나온 기능이라면 LLM은 구조적으로 알 수 없습니다. 추측하거나 과거 버전 정보를 최신처럼 말하기 쉽습니다. 웹 검색 Tool이 연결돼 있으면 공식 릴리즈 노트를 직접 검색해 보고 요약합니다. 기억이 닿지 않는 구간을 검색으로 우회하는 셈입니다.

Hallucination: 추론의 벽을 파일 읽기로 우회

"이 프로젝트의 인증 로직을 설명해줘"

Tool 없이는 LLM이 본 적도 없는 코드를, 수많은 프로젝트로 학습한 "일반적인 인증 패턴"을 바탕으로 상상해 답합니다. 구체적인 함수명·파일명까지 그럴듯하게 지어낼 수 있습니다. 파일 읽기 Tool이 있으면 auth.ts를 직접 열어 실제 코드를 Context에 넣고, 그 위에서 답변을 생성합니다. 추론 자체가 정확해지는 게 아니라, 추론이 딛고 설 근거가 실제 파일로 바뀌는 것입니다.

Tool이 LLM을 "더 똑똑하게" 만드는 것은 아닙니다. 확률 기반이라는 구조는 그대로 두고, 예측의 근거를 기억에서 실제 데이터로 바꾸는 장치입니다.

Agent: Tool을 스스로 반복해서 쓰는 구조

LLM + Tool

한 번 호출 · 일직선
질문
Tool 호출
답변
  • Tool 사용: 보통 1번
  • 다음 단계: 사용자가 지시
  • 적합: 단순 조회 · 변환 · 요약

Agent

반복 · 자율 판단
계획
실행
수정
확인
  • Tool 사용: 여러 번 반복
  • 다음 단계: LLM 이 스스로 판단
  • 적합: 여러 단계의 복잡한 작업
Agent = Tool + Loop + 자율적 판단

실제 개발 작업은 Tool 한 번으로 끝나지 않습니다.

"로그인 페이지에서 비밀번호 찾기 링크를 눌러도 아무 반응이 없어. 고쳐줘."

파일을 탐색하고, 원인 후보를 좁히고, 코드를 고치고, 실행해서 확인하는 과정입니다. 여러 Tool을 반복 사용하며 다음에 어떤 Tool을 쓸지 스스로 판단합니다. 이 반복 루프에 자율적 의사결정이 더해진 구조를 Agent(에이전트)라고 부릅니다.

Agent = Tool + Loop + 자율적 판단

LLM + ToolAgent
Tool 사용 횟수보통 1번여러 번 반복
실행 흐름질문 → Tool → 답변계획 → 실행 → 확인 → 수정 → ...
의사결정사용자가 다음 단계를 지시스스로 다음 단계를 판단
적합한 작업단순 조회·변환·요약여러 단계가 필요한 복잡한 작업

능력이 아니라 실행 구조

Agent 안의 LLM은 일반 LLM과 동일합니다. 달라지는 것은 그 LLM을 어떻게 운용하느냐입니다. 한 번 호출하고 끝나는 구조면 LLM + Tool, 결과를 보고 다음 행동을 스스로 정하며 반복하는 구조면 Agent입니다. 즉 Agent는 모델의 능력이 아니라 실행 구조의 이름입니다.

핵심 포인트 정리

  1. Tool은 LLM에게 "모델 밖 행동"을 부여합니다: 파일 읽기·웹 검색·명령어 실행처럼 텍스트 생성만으로는 할 수 없는 일을 외부 시스템으로 처리합니다.
  2. Tool은 한계를 지우지 않고 우회합니다: Hallucination·Knowledge Cutoff의 원리는 그대로지만, 예측의 근거가 기억에서 실제 데이터로 바뀝니다.
  3. Agent = Tool + Loop + 자율적 판단: 한 번 쓰고 끝나는 것이 LLM + Tool, 결과를 보고 스스로 다음을 정하며 반복하는 것이 Agent입니다.
  4. Agent는 능력이 아니라 실행 구조: Agent 안의 LLM은 일반 LLM과 동일하고, 결과를 보고 다음 행동을 정하며 반복하는 운용 방식이 Agent입니다.

FAQ

  • Q: Tool이 있으면 Hallucination이 완전히 사라지나요?

    • A: 아닙니다. LLM이 Tool을 쓰지 않기로 판단하거나 결과를 잘못 해석할 수 있습니다. Tool은 "확인할 수단"을 제공할 뿐, 답변의 정확성을 자동으로 보장하지는 않습니다.
  • Q: Agent가 자율적으로 판단한다면, 위험하지 않나요?

    • A: 자율적이라는 것이 통제 불가능하다는 뜻은 아닙니다. 잘 설계된 Agent에는 사용자 확인 단계와 행동 제한 규칙이 있습니다. Claude Code는 파일 수정이나 명령어 실행 전에 사용자 승인을 요청합니다.
  • Q: ChatGPT나 Claude 같은 대화형 AI도 Agent인가요?

    • A: Tool 없이 대화만 하면 LLM이고, 웹 검색이나 파일 분석 같은 Tool을 반복 사용하며 여러 단계를 수행하면 Agent처럼 동작합니다. 같은 모델이 상황에 따라 둘 다로 쓰입니다.
  • Q: 모든 작업에 Agent를 쓰는 게 좋나요?

    • A: 아닙니다. 단순 질문에는 LLM만으로 충분합니다. Agent는 여러 단계가 필요한 복잡한 작업에 적합하며, 단순 작업에 쓰면 응답이 느려지고 비용만 늘어납니다.

이어서 배울 내용

Tool이 LLM의 한계를 우회하고, Agent가 Tool을 반복·자율적으로 사용하는 실행 구조임을 확인했습니다. 다음 레슨에서는 이 Agent 구조가 코딩 도구에 어떻게 구체화되는지 살펴봅니다.

  • 코딩 도구의 진화: 자동완성 → 대화형 편집 → Agentic
  • Claude Code의 핵심 특성과 차별점

On this page