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

기억 대신 확인하는 AI | Tool Use & Agent

Tool은 LLM의 한계를 고치는 대신 예측의 근거를 바꿔주는 장치이며, 이를 스스로 반복해서 쓰는 구조가 Agent임을 이해합니다

Overview

LLM에 Tool을 붙이면 모델은 기억에만 의존하지 않고, 모델 밖 세상을 직접 확인해 답의 근거를 바꿉니다. 확률 예측이라는 구조는 그대로 둔 채, 앞 레슨에서 본 Hallucination과 Knowledge Cutoff를 우회하는 길입니다. 이 레슨을 읽으면 Tool이 무엇을 바꾸고 무엇을 못 바꾸는지, 그리고 어디서부터 Agent라고 부르는지 판단할 수 있게 됩니다.

학습 목표

  • Tool이 LLM에 텍스트 바깥의 행동을 어떻게 더하는지 이해합니다.
  • Tool이 Hallucination·Knowledge Cutoff 같은 구조적 한계를 그대로 둔 채 예측의 근거를 바꾸는 방식을 설명할 수 있습니다.
  • Tool을 한 번 쓰는 경우와 Agent의 차이를 구별하고, 언제 어느 쪽이 필요한지 판단합니다.

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

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

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

Claude Code가 쓰는 대표 Tool 네 가지입니다.

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

앞 레슨의 Hallucination 실험을 떠올려 봅시다. 존재하지 않는 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 새 버전, 뭐가 바뀌었어?"

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

Hallucination: 근거 없는 추론을 파일 읽기로 우회

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

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

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

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

아니오 · 같은 사이클 반복사용자 목표다음 행동 판단Tool 실행결과 확인목표 달성?한 바퀴 = 위에서 본 Tool 5단계완료 · 답변
Tool 호출 사이클을 목표 달성까지 반복하고, 다음 행동과 멈출 시점은 모델이 스스로 판단합니다

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

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

파일 탐색 → 원인 후보 좁히기 → 코드 수정 → 실행·확인으로 이어지는 과정입니다. 위에서 본 Tool 5단계가 루프의 한 바퀴가 되고, 모델은 바퀴마다 결과를 보고 다음 행동과 멈출 시점을 스스로 정합니다. 이렇게 Tool 호출 사이클에 반복과 자율적 판단이 더해진 구조를 Agent(에이전트)라고 부릅니다.

Agent = Tool + Loop + 자율적 판단

Tool을 한 번 쓰는 경우Agent
구조질문 → Tool → 답변으로 한 사이클같은 사이클을 목표 달성까지 반복
다음 단계사용자가 다시 질문해야 진행결과를 보고 모델이 스스로 결정
종료 판단답변을 한 번 생성하면 끝목표가 달성됐는지 스스로 판단
"이 함수 뭐 하는 거야?""이 버그 고쳐줘"

능력이 아니라 실행 구조

Agent 안의 LLM은 일반 LLM과 동일합니다. 차이는 운용 방식입니다. 한 번 호출하고 끝나면 Tool 호출 한 사이클이고, 결과를 보고 다음 행동을 스스로 정하며 반복하면 Agent입니다. 즉 Agent는 모델의 능력이 아니라 실행 구조를 가리킵니다.

핵심 포인트 정리

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

FAQ

이어서 배울 내용

다음 레슨에서는 이 Agent 구조가 AI 코딩 도구의 진화 속에서 어떻게 구체화됐는지 살펴봅니다.

  • AI 코딩 도구의 역할 확장: 자동완성 → 대화형 편집 → Agentic 코딩
  • Claude Code가 그 흐름 안에서 집중하는 방식

On this page