에이전트는 앞서 살펴본 구조화된 워크플로우로부터의 전환을 나타냅니다. 워크플로우는 작업을 완료하는 데 필요한 정확한 단계를 알고 있을 때 뛰어난 성능을 발휘하지만, 에이전트는 앞으로 나아갈 경로가 명확하지 않을 때 빛을 발합니다. 엄격한 순서를 정의하는 대신, Claude에게 목표와 도구 세트를 제공한 다음 목표를 달성하기 위해 해당 도구들을 어떻게 결합할지 스스로 파악하도록 합니다.

이러한 유연성은 에이전트를 개발자에게 매력적으로 만듭니다. 에이전트를 한 번 구축하고 합리적으로 잘 작동하는지 확인한 다음, 다양한 작업을 처리하도록 배포할 수 있습니다. 그러나 이 접근 방식에는 나중에 살펴볼 신뢰성과 비용 측면에서 중요한 단점이 있습니다.
도구가 에이전트를 만드는 방법
에이전트의 진정한 힘은 단순한 도구들을 예상치 못한 방식으로 결합하는 능력에 있습니다. 이 과정에서 앞서 다룬 기본적인 날짜/시간 도구 세트를 생각해 보세요:

get_current_datetime- 현재 날짜와 시간을 반환합니다add_duration_to_datetime- 주어진 날짜에 시간을 추가합니다set_reminder- 특정 시간에 대한 알림을 생성합니다
각 도구는 그 자체로는 단순하지만, Claude는 이를 결합하여 다양한 요청을 처리할 수 있습니다:

"지금 몇 시예요?"라는 질문에는 Claude가 단순히 get_current_datetime을 호출합니다. "11일 후는 무슨 요일이에요?"라는 질문에는 get_current_datetime에 이어 add_duration_to_datetime을 연결합니다. "다음 주 수요일에 체육관에 가는 것을 알림으로 설정해 주세요"와 같은 더 복잡한 요청에는 세 가지 도구가 모두 순서대로 필요합니다.
Claude는 추가 정보가 필요한 시점도 인식할 수 있습니다. "90일 보증이 언제 만료되나요?"라는 질문을 받으면, 먼저 사용자에게 보증을 받은 시점을 물어본 다음, 그 정보를 add_duration_to_datetime과 함께 사용하여 만료일을 계산합니다.
도구는 추상적이어야 합니다
효과적인 에이전트를 구축하기 위한 핵심 통찰은 초특화된 도구보다는 합리적으로 추상적인 도구를 제공하는 것입니다. Claude Code는 이 원칙을 완벽하게 보여줍니다.

Claude Code는 범용적이고 유연한 도구에 접근할 수 있습니다:
bash- 명령을 실행합니다glob- 파일을 찾습니다grep- 파일 내용을 검색합니다read- 파일을 읽습니다write- 파일을 생성합니다edit- 파일을 편집합니다webfetch- URL을 가져옵니다
Claude Code에 "리팩터링" 또는 "테스트 실행" 또는 "종속성 설치"와 같은 특화된 도구가 없다는 점에 주목하세요. 대신, 사용 가능한 기본 도구들을 결합하여 이러한 작업을 수행하는 방법을 스스로 파악합니다. 종속성을 설치하기 위해, 프로젝트 파일을 읽어 구성을 이해한 다음 bash를 사용하여 적절한 설치 명령을 실행합니다.
모범 사례: 합리적으로 추상적인 도구 제공하기
에이전트를 구축할 때는 하나의 특정 문제를 해결하는 도구보다 Claude가 창의적으로 결합할 수 있는 도구에 집중하세요. 소셜 미디어 동영상 제작 에이전트를 생각해 보세요:

이 에이전트에 효과적인 도구는 다음과 같을 수 있습니다:
bash- 동영상 처리를 위한 FFMPEG에 접근할 수 있게 합니다generate_image- 텍스트 프롬프트로부터 이미지를 생성합니다text_to_speech- 텍스트를 오디오로 변환합니다post_media- 소셜 미디어에 콘텐츠를 게시합니다
이 도구 세트는 단순한 상호작용과 복잡한 상호작용을 모두 가능하게 합니다. 사용자는 "Python 프로그래밍에 관한 동영상을 만들어서 게시해 주세요"라고 요청할 수 있으며, 에이전트가 모든 것을 자동으로 처리합니다. 또는 상호작용이 더 협력적일 수도 있습니다:

사용자는 "Python에 관한 동영상을 만들어 주셨으면 하는데, 먼저 동영상에 사용할 초기 이미지를 골라보고 싶어요"라고 말할 수 있습니다. 에이전트는 샘플 이미지를 생성하여 사용자에게 승인을 받기 위해 보여준 다음, 확인이 되면 동영상 제작을 진행할 수 있습니다.
이러한 유연성은 도구에 적절한 수준의 추상화를 제공함으로써 자연스럽게 나타납니다. 각 도구는 여러 맥락에서 유용할 만큼 충분히 일반적이어야 하지만, 다른 도구와 결합했을 때 의미 있는 작업을 수행할 만큼 구체적이어야 합니다.