[AI 에이전트 2편] Tool use — LLM에게 첫 도구를 쥐여주다
AI 에이전트 5부작의 2편. 1편에서 '생각'만 하던 에이전트에 첫 도구(함수)를 쥐여줍니다. tool use가 'LLM의 함수 호출 의도 + 우리 코드의 실제 실행'이라는 원리(LLM은 Action 텍스트만 뱉고 실행은 코드가 함)를, claude 날것 출력으로 직접 보여줍니다. 도구를 이름·설명·입력 스키마로 정의하는 법과 설명을 잘 쓰는 실전 팁, tool_use/tool_result 왕복(Anthropic SDK 정식 코드 + API 키 없이 로컬 Claude CLI 재현)을 다룹니다. 도구 직접 정의·호출, 실제 호출(A 42g)·재사용(B·C)·없는 개체 에러 처리까지 터미널 캡처 6개로 담았고, 1편의 '판단 불가'가 실제 체중으로 채워지는 걸 보여줍니다. 예시 개체는 익명 A/B/C.

![[딥러닝 실전 5편] 불용어 제거 도구 만들기 — 노이즈를 걷어내야 모델이 보인다](/_next/image?url=%2Fblog%2Fdl-practice-5-preprocessing-pipeline%2Fimg01.webp&w=1920&q=75)
![[딥러닝 실전 4편] BiLSTM 감정 분석기 — 앞뒤 문맥을 동시에 읽는 모델](/_next/image?url=%2Fblog%2Fdl-practice-4-bilstm-sentiment%2Fimg01.webp&w=1920&q=75)
![[딥러닝 실전 3편] CNN 텍스트 분류기 — 리뷰가 긍정인지 부정인지 판단하기](/_next/image?url=%2Fblog%2Fdl-practice-3-cnn-text-classifier%2Fimg01.webp&w=1920&q=75)
![[딥러닝 실전 2편] 문장 유사도 계산기 — 두 문장이 얼마나 비슷한가요?](/_next/image?url=%2Fblog%2Fdl-practice-2-sentence-similarity%2Fimg01.webp&w=1920&q=75)
![[딥러닝 실전 1편] 텍스트 요약 도구 만들기 — 핵심 문장만 골라내기](/_next/image?url=%2Fblog%2Fdl-practice-1-text-summarizer%2Fimg01.webp&w=1920&q=75)
![[딥러닝 기초 5편] 텍스트 전처리 파이프라인 — NLP의 기초 체력](/_next/image?url=%2Fblog%2Fdl-text-5-preprocessing-pipeline%2Fcap_compare_chart.webp&w=1920&q=75)
![[딥러닝 기초 4편] LSTM 이름 국적 분류기 — 기억하는 신경망](/_next/image?url=%2Fblog%2Fdl-text-4-lstm-classifier%2Fcap_train_chart.webp&w=1920&q=75)
![[딥러닝 기초 3편] 단어 빈도 분석기 — 텍스트의 핵심을 한눈에](/_next/image?url=%2Fblog%2Fdl-text-3-word-frequency%2Fcap_wordcloud.webp&w=1920&q=75)
![[딥러닝 기초 2편] RNN 언어 모델 — 다음 단어 예측하기](/_next/image?url=%2Fblog%2Fdl-text-2-rnn-language-model%2Fcap4_2_chart.webp&w=1920&q=75)
![[딥러닝 기초 1편] 단어(텍스트) 임베딩 이해하기 — Word2Vec](/_next/image?url=%2Fblog%2Fdl-text-1-word-embedding%2Fcap4_3.webp&w=1920&q=75)
![[소셜 미디어 트렌드 4편] LDA 토픽 모델링 + Streamlit 대시보드로 시리즈 완결](/_next/image?url=%2Fblog%2Fsns-trend-4-dashboard%2FGemini_Generated_Image_z0mc4z0mc4z0mc4z.png&w=1920&q=75)
![[소셜 미디어 트렌드 3편] YouTube API로 댓글 523건 수집하고 감성 분석까지](/_next/image?url=%2Fblog%2Fsns-trend-3-youtube-api%2FGemini_Generated_Image_6k8rux6k8rux6k8r.png&w=1920&q=75)
![[머신러닝 실전 6편] 전체 파이프라인 완성 — CSV 한 장에서 예측 모델까지](/_next/image?url=%2Fblog%2Fml-prac-6-pipeline%2Fimg05.webp&w=1920&q=75)
![[머신러닝 실전 5편] 같은 모델인데 셋팅만 바꿨더니 — 하이퍼파라미터 튜닝](/_next/image?url=%2Fblog%2Fml-prac-5-tuning%2Fimg03.webp&w=1920&q=75)
![[머신러닝 실전 4편] 이탈 예측, 어떤 모델이 이기나 — 5개 모델 실전 비교](/_next/image?url=%2Fblog%2Fml-prac-4-model-selection%2Fimg01.webp&w=1920&q=75)
![[머신러닝 실전 3편] "남자/여자"를 모델은 못 읽는다 — 피처 엔지니어링 실전](/_next/image?url=%2Fblog%2Fml-prac-3-feature-engineering%2Fimg05.webp&w=1920&q=75)
![[머신러닝 실전 2편] 빈 칸과 튀는 값 — 결측치·이상치 실전 처리](/_next/image?url=%2Fblog%2Fml-prac-2-preprocessing%2Fimg05.webp&w=1920&q=75)
![[머신러닝 실전 1편] 통신사 고객 7천 명, 누가 떠날까 — EDA로 단서 찾기](/_next/image?url=%2Fblog%2Fml-prac-1-eda%2Fcap1_chart.webp&w=1920&q=75)
![[머신러닝 중급 6편] 주성분 분석(PCA) — 100개 특성을 2개로 줄여도 되는 이유](/_next/image?url=%2Fblog%2Fml-adv-6-pca%2Fimg04_crop.webp&w=1920&q=75)
![[머신러닝 중급 5편] 이상치 탐지 — 1000명 중 수상한 1명을 찾아내는 법](/_next/image?url=%2Fblog%2Fml-adv-5-anomaly-detection%2Fimg04_crop.webp&w=1920&q=75)
![[머신러닝 중급 4편] 그래디언트 부스팅 — 약한 모델들이 팀을 이루는 방법](/_next/image?url=%2Fblog%2Fml-adv-4-gradient-boosting%2Fimg04_crop.webp&w=1920&q=75)
![[머신러닝 중급 3편] 정규화 기법 — 모델에 '벌금'을 매기는 이유](/_next/image?url=%2Fblog%2Fml-adv-3-regularization%2Fimg04_crop.webp&w=1920&q=75)
![[머신러닝 중급 2편] 서포트 벡터 머신(SVM) — 두 그룹 사이의 가장 넓은 길을 찾는 알고리즘](/_next/image?url=%2Fblog%2Fml-adv-2-svm%2Fimg04_crop.webp&w=1920&q=75)
![[머신러닝 중급 1편] 과적합과 과소적합 — 모델이 시험 문제만 외우면 생기는 일](/_next/image?url=%2Fblog%2Fml-adv-1-overfitting%2Fimg04_crop.webp&w=1920&q=75)
![[머신러닝 기초 6편] 모델 평가 지표 — 정확도만 보면 안 되는 이유](/_next/image?url=%2Fblog%2Fml-6-evaluation%2Fimg02.webp&w=1920&q=75)
![[머신러닝 기초 5편] 선형 회귀 — 직선 하나로 미래를 예측한다](/_next/image?url=%2Fblog%2Fml-5-linear-regression%2Fimg01.webp&w=1920&q=75)
![[머신러닝 기초 4편] 나이브 베이즈 — 확률로 스팸을 잡는다](/_next/image?url=%2Fblog%2Fml-4-naive-bayes%2Fimg02.webp&w=1920&q=75)
![[머신러닝 기초 3편] 로지스틱 회귀 — S자 곡선 하나로 분류를 끝낸다](/_next/image?url=%2Fblog%2Fml-3-logistic-regression%2Fimg01.webp&w=1920&q=75)
![[머신러닝 기초 2편] 결정 트리 — 스무고개처럼 질문을 쪼개서 답을 찾는다](/_next/image?url=%2Fblog%2Fml-2-decision-tree%2Fimg01.webp&w=1920&q=75)
![[머신러닝 기초 1편] k-최근접 이웃(k-NN) — 주변을 보고 판단한다](/_next/image?url=%2Fblog%2Fml-1-knn%2Fimg01.webp&w=1920&q=75)
![[Plotly 실전] 우리 집 도마뱀 체중 기록을 인터랙티브 차트로 만들기](/_next/image?url=%2Fblog%2Fplotly-interactive-charts%2Fviolin-plot.webp&w=1920&q=75)
![[벡터#4 데이터 추출] 정규표현식으로 이메일 주소 찾기](/_next/image?url=%2Fblog%2Fregex-email-extraction%2F%EC%9D%B4%EB%AF%B8%EC%A7%801.webp&w=1920&q=75)
![[벡터#2 연산] 덧셈, 뺄셈, 곱셈으로 배우는 실전 데이터 계산](/_next/image?url=%2Fblog%2Fvector-operations%2Foperation-1.webp&w=1920&q=75)
![[벡터#1 입문] NumPy로 시작하는 AI 개발의 기초](/_next/image?url=%2Fblog%2Fvector-math-intro%2Fcolab-intro.webp&w=1920&q=75)
![[SQL 실습 #5] 음악 스트리밍 서비스 데이터 모델 작성](/_next/image?url=%2Fblog%2Fmusic-streaming%2F%EC%9D%B4%EB%AF%B8%EC%A7%8016.webp&w=1920&q=75)
![[SQL 실습 #4] 병원 예약 시스템 데이터 모델 작성](/_next/image?url=%2Fblog%2Fhospital-booking%2Funique-constraint-error.webp&w=1920&q=75)

![[SQL 실습 #3] 주차 관리 시스템 데이터베이스 설계](/_next/image?url=%2Fblog%2Fparking-system%2Fcase-when-result.webp&w=1920&q=75)
![[SQL 실습 #2] 도서관 대출 시스템 테이블 구조 만들기](/_next/image?url=%2Fblog%2Flibrary-system%2Fjoin-result.webp&w=1920&q=75)
![[SQL 입문] 데이터베이스 입문 - 기록의 시작](/_next/image?url=%2Fblog%2Fdatabase-intro%2Fseries-roadmap.webp&w=1920&q=75)
![[SQL 실습 #1] 학생 정보 데이터베이스 설계](/_next/image?url=%2Fblog%2Fstudent-database%2Fcreate-table-execute.webp&w=1920&q=75)
![[Step 4] 워드클라우드로 텍스트 데이터 시각화하기 - WordCloud + matplotlib](/_next/image?url=%2Fblog%2Fword-cloud-visualization%2Ffinal-wordcloud.webp&w=1920&q=75)
![[Step 3] 막대 그래프로 범주형 데이터 시각화하기 - pandas + matplotlib](/_next/image?url=%2Fblog%2Fbar-chart-visualization%2Fstacked-bar.webp&w=1920&q=75)
![[Step 2] 산점도로 데이터 관계 파악하기 - matplotlib scatter](/_next/image?url=%2Fblog%2Fscatter-plot-correlation%2Fadvanced-scatter.webp&w=1920&q=75)
![[Step 1] 데이터를 선 그래프로 시각화하는 실습 - yfinance + matplotlib](/_next/image?url=%2Fblog%2Fstock-line-chart%2Ffinal-result.webp&w=1920&q=75)