
Lesson 1.5: 행동 (Action) - LLM과 함께 도구 사용하기 파트입니다.
이전 시간에 배운 '추론'이 에이전트의 '생각'이었다면, 이번 시간은 그 생각을 현실로 옮기는 '행동'에 대한 이야기입니다. 에이전트의 팔과 다리가 되어주는 '도구(Tools)'에 대해 아주 자세히 알아보겠습니다.
Lesson 1.5: 행동 - LLM과 함께 도구 사용하기 (상세 분석)

이번 강의의 핵심은 "AI 에이전트는 어떻게 자신의 한계를 넘어서 실제 세상과 상호작용하고, 구체적인 작업을 수행하는가?" 입니다. 그 해답은 바로 '도구 사용'에 있습니다.
1. 도구(Tools)란 무엇이고 왜 필요한가? (Introduction to Tools)
- 도구(Tools)란?
- AI 에이전트가 특정 작업을 수행하기 위해 호출할 수 있는 외부의 기능(functions), 서비스, 또는 API를 말합니다.
- 쉽게 말해 에이전트의 '능력 확장팩' 입니다. 스마트폰에 여러 가지 앱을 설치해서 기능을 확장하는 것과 같아요.
- AI 에이전트에게 도구가 왜 필요한가?
- LLM은 훈련된 시점까지의 데이터만 알고 있습니다. '지식의 한계' 가 명확하죠. 예를 들어, 2023년에 훈련된 LLM은 오늘의 날씨나 최신 뉴스를 모릅니다.
- 도구는 에이전트가 이 한계를 뛰어넘어 자신의 훈련된 지식 바깥에 있는 외부 데이터나 시스템과 상호작용하게 해줍니다. 즉, '세상과 통하는 창문'을 열어주는 셈이죠.
2. 행동(Action)이란 무엇인가?

- 행동(Action)이란?
- AI 에이전트가 '도구 사용'이나 '함수 호출'을 통해 수행하는 모든 작업을 의미합니다.
- 이전 시간에 배운 '추론'의 결과로 나타나는 구체적인 실행 단계입니다. "날씨가 궁금하니 날씨 API를 호출해야겠다"라고 추론했다면 '날씨 API를 호출하는 것'이 바로 행동입니다.
- 행동의 종류:
- 읽기 행동 (Read Actions): 외부에서 데이터를 가져오는 행동입니다.
- 예: 날씨 정보 가져오기, 웹사이트에서 최신 뉴스 긁어오기, 데이터베이스에서 고객 정보 조회하기 등.
- 쓰기 행동 (Write Actions): 외부에 데이터를 수정하거나 추가하는 행동입니다.
- 예: 이메일 보내기, 캘린더에 일정 등록하기, 데이터베이스에 새로운 정보 저장하기 등.
- 읽기 행동 (Read Actions): 외부에서 데이터를 가져오는 행동입니다.
3. '도구 사용'은 기술적으로 어떻게 이루어질까? (Function Calling)

여기가 백엔드 개발자에게 가장 중요한 부분입니다. 에이전트의 '생각'이 어떻게 실제 '코드 실행'으로 이어질까요? 바로 '함수 호출(Function Calling)' 이라는 기술 덕분입니다.
- 함수 호출(Function Calling)이란?
- AI 에이전트(LLM)가 외부 함수나 API를 실행시키는 과정을 말합니다.
- 핵심은 '구조화된 출력 (Structured Output)'
- LLM은 단순히 "계산기 좀 실행해줘" 라고 어정쩡하게 말하지 않습니다. 대신 개발자가 미리 정해놓은 엄격한 형식(format or schema), 예를 들어 JSON 형태의 '명령서'를 정확하게 출력합니다.
- 예시: LLM에게 "오늘 내 캘린더에 오후 3시에 '프로젝트 회의' 일정을 추가해줘" 라고 요청하면 LLM은 다음과 같은 '구조화된 출력(명령서)'을 생성합니다.
-
JSON
{ "tool_name": "add_calendar_event", "parameters": { "title": "프로젝트 회의", "time": "15:00" } } - 여러분과 같은 백엔드 개발자는, 이 '명령서'를 받아서 실제로 add_calendar_event라는 함수를 실행시키는 코드를 만들어두면 되는 것입니다.
- '함수 호출'과 '도구 사용'의 관계
- 두 용어는 거의 같은 의미로 쓰입니다. '도구 사용'이 개념적인 목표라면, '함수 호출'은 그 목표를 달성하기 위한 구체적인 기술적 방법론입니다.
이해했는지 확인해볼까요?
- 질문: AI 에이전트가 '계산기'라는 도구를 사용하게 만들고 싶을 때, 백엔드 개발자로서 해야 할 가장 중요한 일은 무엇인가요? '구조화된 출력'의 역할은 무엇인가요?
- 답변: 백엔드 개발자는 먼저 실제로 계산을 수행하는 '계산기 함수(API)'를 만들어야 합니다. 그리고 LLM에게 이 함수의 존재와 사용법(예: 어떤 형식으로 명령을 내려야 하는지)을 알려줘야 합니다. 이때 '구조화된 출력' 은 LLM이 개발자가 만든 함수를 정확히 호출할 수 있도록 정해진 양식에 맞춰 내리는 '명령서' 역할을 합니다. 이 덕분에 시스템은 오류 없이 안정적으로 작동할 수 있습니다.
4. 도구의 실제 예시들 (Examples of Tools)

도구는 거의 모든 API나 서비스가 될 수 있습니다.
- 검색 엔진 API: 최신 뉴스나 정보를 가져와 현재 시점의 질문에 답할 때 사용합니다.
- 고객 데이터베이스: 특정 고객의 주문 내역을 조회해서 맞춤형 상품을 추천할 때 사용합니다.
- 캘린더 API: 다른 사람의 일정을 확인하고, 비어있는 시간에 회의를 잡아 초대장을 보낼 때 사용합니다.
- 결제 처리 서비스: 챗봇과 대화하며 상품을 구매할 때, 실제 결제를 처리하는 데 사용합니다.
5. 도구 사용의 중요성 (Importance of Tool Use)

결론적으로 도구 사용은 AI 에이전트에게 다음과 같은 중요한 이점을 줍니다.
- 에이전트 능력 강화: 언어 생성 능력만으로는 불가능한 작업(계산, 결제, 외부 기기 제어 등)을 수행할 수 있게 됩니다.
- 동적인 외부 환경과 상호작용: 실시간 데이터(주식, 날씨)에 접근하고, 사용자별 개인화된 정보에 응답할 수 있게 됩니다.
- 구조화된 출력과 신뢰성: 정해진 포맷을 사용함으로써 시스템이 LLM의 명령을 잘못 해석할 가능성을 줄이고, 훨씬 더 안정적이고 신뢰도 높은 에이전트를 만들 수 있습니다.
728x90
LIST