CPN 한국어 자습서 · 러닝패스 2 / 4 — Building with the Claude API
에이전트와 워크플로
Agents and tools
이제 워크플로에서 에이전트로 넘어갑니다. 에이전트는 작업과 도구 모음만 주고 Claude가 스스로 계획을 세워 풀게 하는 방식입니다. 이 장에서는 에이전트의 핵심 — Claude가 도구를 여러 조합으로 엮어 쓰는 능력 — 과, 그래서 도구를 어떤 성격으로 설계해야 하는지를 봅니다.
Stephen Grider · Anthropic 기술 스태프
여러 워크플로를 살펴봤으니, 이제 방향을 틀어 에이전트 이야기를 시작합니다. 에이전트를 이해하는 가장 쉬운 길은 워크플로를 언제 썼는지 떠올리는 것입니다. 워크플로는 어떤 작업을 끝내는 데 필요한 정확한 단계 순서를 알 때 가장 효과적이었습니다. 반대로 에이전트는 어떤 단계가 필요한지 잘 모를 때 더 효과적입니다.
그런 상황에서는 Claude에게 작업과 도구 모음을 주고, 그 도구로 작업을 끝낼 계획을 Claude가 직접 세우게 맡깁니다. 에이전트의 이런 유연함이 만들기에 매력적인 이유입니다. 에이전트 하나를 만들어 적당히 잘 동작하게 해 두면, 그 에이전트가 아주 다양한 작업을 풀 수 있습니다. 다만 이 방식에는 큰 단점도 있는데, 그건 잠시 뒤에 다룹니다.
에이전트의 핵심은 도구를 서로 다른 조합으로 사용하는 능력입니다. 이걸 이해하려면 이 코스 앞부분에서 도구 세 개를 함께 묶었던 예시를 떠올리면 좋습니다. 우리는 현재 날짜·시각 가져오기(get_current_datetime), 날짜·시각에 기간 더하기(add_duration_to_datetime), 알림 설정하기(set_reminder) 같은 도구를 만들었습니다. 하나하나는 단순한 도구지만, Claude는 이것들을 예상하지 못한 방식으로 조합해 미리 계획하지 않은 다양한 작업을 해냈습니다.
다이어그램 왼쪽에는 그 세 도구와 함께 Claude에 넣을 수 있는 예시 작업들이, 오른쪽에는 Claude가 그 작업을 끝내기 위해 부를 법한 도구 호출 시퀀스가 있습니다. 예를 들어 “지금 몇 시야?”라고 물으면 Claude는 현재 날짜·시각 도구 하나만 불러 답할 수 있습니다. “11일 뒤는 무슨 요일이야?”라면 먼저 현재 날짜·시각을 가져온 뒤 기간 더하기를 부릅니다. “다음 수요일에 헬스장 가라고 알림 맞춰줘”라면 현재 요일을 알아낸 뒤 기간을 더하고, 그날에 알림을 설정합니다.
끝으로 Claude는 도구를 제대로 부르려면 추가 정보가 필요한 순간도 스스로 알아챕니다. 사용자가 “내 90일 보증은 언제 만료돼?”라고 물으면, 사용자가 오늘 보증을 받았다는 보장이 없습니다. 그래서 Claude는 먼저 보증을 정확히 언제 받았는지 사용자에게 되묻고, 답을 받은 뒤 기간 더하기를 불러 만료일을 계산합니다. 모두 Claude가 도구 모음을 흥미롭게 엮어 작업을 푸는 예입니다.
여기서 에이전트에 대한 첫 번째 큰 교훈이 나옵니다. 에이전트에 제공하는 도구 모음은 적당히 추상적이어야 한다는 것입니다. 여기서 “추상적”이 무슨 뜻인지 이해하려면 Claude Code와, 거기에 제공된 도구들을 다시 보면 좋습니다. Claude Code는 아주 작은 추상 도구 집합에만 접근합니다. 제가 추상적이라고 할 때는 generic하다, 일반적이다, 목적이 다소 막연하다는 뜻입니다. 어떤 식으로도 초특화돼 있지 않습니다.
그래서 Claude Code는 명령을 실행하는 bash, URL을 가져오는 web fetch, 파일을 만드는 write 같은 도구에 접근합니다. 그리고 이 도구들을 조합해 기존 코드베이스를 수정하고 기능을 추가하는 일을 놀라울 만큼 잘 해냅니다. 반대로 Claude Code는 한 가지 상황에서 한 가지 작업만 수행하는 초특화 도구에는 접근하지 않습니다. 예를 들어 파일을 마법처럼 리팩터링해 주는 refactor 도구는 없습니다. 대신 Claude Code는 왼쪽의 도구들을 어떻게 엮어 리팩터링할지 스스로 알아내야 합니다.
마찬가지로 install dependencies 같은 도구도 없습니다. 대신 Claude Code는 파일을 읽어 프로젝트 설정을 파악하고, bash 도구로 적절한 명령을 돌려 의존성을 설치합니다. 여기서 얻을 교훈은, 에이전트를 만들 때는 Claude가 어떻게든 엮어서 목표를 이룰 수 있는 적당히 추상적인 도구를 제공하라는 것입니다.
예를 들어 SNS 영상 제작 에이전트를 만든다면 도구 네 개 정도를 줄 수 있습니다. 하나는 FFmpeg에 접근할 수 있는 bash입니다. FFmpeg는 입력 이미지·영상·텍스트·오디오로 영상을 만들 때 흔히 쓰는 CLI 도구입니다. 여기에 이미지 생성 도구, 텍스트 음성 변환(TTS) 도구를 더해 영상 제작을 돕고, 마지막으로 만들어진 콘텐츠를 SNS 계정에 올리는 post media 도구를 줍니다.
Claude는 이 도구 모음을 꽤 예상 밖의 방식으로 씁니다. 사용자가 에이전트와 대화하며 “파이썬 프로그래밍에 대한 영상을 만들어 올려줘”라고 하는 흐름도 가능하지만, 더 동적인 상호작용도 가능합니다. 예를 들어 사용자가 영상을 요청하면서 먼저 영상에 쓸 표지 이미지 샘플을 만들어 달라고 할 수 있습니다. 그러면 에이전트는 먼저 이미지를 생성해 보여 주고, 사용자의 승인을 받은 뒤 영상 제작에 들어갑니다.
이 장에서 배우는 것What you'll learn
약 5분에이전트 = 작업 + 도구 모음을 주고 Claude가 계획을 직접 세움
워크플로는 단계를 알 때, 에이전트는 단계를 모를 때 효과적
핵심은 Claude가 도구를 여러 조합으로 엮는 능력(날짜·시각 도구 예)
필요하면 Claude가 사용자에게 추가 질문해 도구를 채운다
큰 교훈 — 도구는 추상적·범용으로(bash·web fetch·write)
초특화 도구(refactor·install)는 주지 않는다 → Claude가 조합해 해결
워크플로는 작업을 끝내는 정확한 단계 순서를 알 때 효과적이었습니다. 반대로 어떤 단계가 필요한지 잘 모를 때는 에이전트가 낫습니다. 에이전트는 Claude에게 작업과 도구 모음만 주고, 그 도구로 작업을 끝낼 계획을 Claude가 직접 세우게 맡깁니다.
에이전트 하나를 만들어 적당히 잘 동작하게 해 두면, 그 에이전트가 아주 다양한 작업을 풉니다. 이 유연함이 만들기에 매력적인 이유입니다. (단점은 뒤 장에서 다룹니다.)
에이전트의 핵심은 도구를 서로 다른 조합으로 엮는 능력입니다. 앞 코스의 날짜·시각 도구 세 개를 떠올려 보세요. 하나하나는 단순하지만, Claude는 작업마다 이것들을 다르게 묶어 미리 계획하지 않은 일을 해냅니다.
날짜·시각 도구 세 개 — get_current_datetime · add_duration_to_datetime · set_reminder — 만 주면, Claude는 작업마다 이것들을 다르게 엮어 답합니다.
한 도구면 충분합니다. Claude는 현재 시각을 가져와 곧바로 답합니다.
현재 날짜를 가져온 뒤, 거기에 11일을 더해 요일을 계산합니다.
현재 요일을 알아내 다음 수요일까지 기간을 더하고, 그날에 알림을 설정합니다.
보증을 언제 받았는지 알 수 없습니다. Claude는 먼저 사용자에게 그 날짜를 되묻고, 답을 받은 뒤 90일을 더해 만료일을 계산합니다.
하나하나는 단순한 도구지만, Claude가 알아서 조합합니다. 미리 모든 경우를 설계해 둘 필요가 없습니다 — 이것이 에이전트의 유연함입니다.
여기서 첫 번째 큰 교훈이 나옵니다. 에이전트에 주는 도구는 적당히 추상적이어야 합니다. “추상적”이란 generic·범용이라 목적이 다소 막연하다는 뜻입니다. Claude Code가 좋은 예입니다 — 아주 작은 추상 도구 집합만 가지고도 코드베이스를 수정하고 기능을 추가합니다.
Claude Code가 실제로 가진 도구. generic·범용이라 무엇이든 엮어 풀 수 있습니다.
이 도구들을 조합해 기존 코드베이스를 수정하고 기능을 추가합니다.
한 상황에서 한 작업만 하는 도구. Claude Code에는 일부러 없습니다.
리팩터링이 필요하면 왼쪽 도구를 어떻게 엮을지 스스로 알아냅니다. 의존성은 파일을 읽어 설정을 파악한 뒤 bash로 설치합니다.
교훈 — 에이전트를 만들 때는 Claude가 어떻게든 엮어 목표를 이룰 수 있는 추상 도구를 제공하세요. 작업마다 전용 도구를 만들면 유연함이 사라집니다.
SNS 영상 제작 에이전트라면 도구 네 개 — bash(ffmpeg)·이미지 생성·TTS·post media — 정도를 줍니다. Claude는 이 도구들을 꽤 예상 밖의 방식으로 엮습니다.
곧장 제작
"파이썬 프로그래밍 영상을 만들어 올려줘"
먼저 표지 승인
"영상 만들기 전에 표지 이미지 샘플 먼저 보여줘"
똑같은 네 도구인데, Claude는 사용자의 요청에 따라 예상 밖의 순서로 엮습니다. 도구가 추상적일수록 이런 동적 흐름이 가능해집니다.
Q1에이전트가 워크플로보다 적합한 상황은?
단계를 알면 워크플로가, 모르면 에이전트가 낫습니다. 에이전트는 작업과 도구만 주고 계획을 Claude에 맡깁니다.
Q2좋은 에이전트에 제공할 도구의 성격은?
추상 도구를 주면 Claude가 어떻게 엮을지 스스로 알아냅니다. 초특화 도구는 유연함을 없앱니다.
Q3"90일 보증 만료일"처럼 정보가 부족하면 Claude는?
Claude는 도구를 제대로 부르려면 추가 정보가 필요한 순간을 스스로 알아챕니다. 되물어 받은 뒤 기간 더하기로 만료일을 계산합니다.
도구를 조합하는 에이전트는 행동의 결과도 스스로 확인해야 합니다. 다음 장에서 그 방법을 봅니다. → 환경 점검
전 코스는 계속 무료입니다. 등록하면 이 코스의 남은 76개 레슨을 끝까지 읽을 수 있습니다.
이미 등록하셨다면 그때 쓰신 이메일을 넣어 주세요.