앤트로픽 SDK는 Claude API를 코드에서 편하게 부르도록 Anthropic이 직접 만든 공식 라이브러리로, 직접 만든 앱이나 스크립트에서 Claude를 부를 때 쓴다. HTTP 요청을 손으로 짜지 않아도 인증·재시도·스트리밍·응답 타입을 SDK가 처리해 주며, 대표 버전은 Python과 TypeScript/JavaScript다.
| 방법 | 특징 | 이럴 때 쓴다 |
|---|---|---|
| 직접 HTTP 호출 | 모든 걸 손으로 처리 | SDK가 없는 언어, 아주 단순한 테스트 |
| Client SDK | API 호출을 편하게 감싼 것 | 내 앱에 Claude 기능을 넣을 때 |
| Agent SDK | 도구 실행·반복 루프까지 포함 | 스스로 파일을 읽고 작업하는 에이전트 |
Python은 pip install anthropic, TypeScript는 npm install @anthropic-ai/sdk로 설치한다. API 키는 환경 변수 ANTHROPIC_API_KEY에 넣어 두면 client = Anthropic()만으로 자동으로 읽어 온다. 키를 코드에 직접 적지 않는 편이 안전하다.
호출은 client.messages.create(model=..., max_tokens=..., messages=[...]) 형태다. max_tokens는 꼭 넣어야 하고, 모델 ID는 공식 문서의 최신 목록에서 골라 넣는다.
같은 SDK 안에 용도별 기능이 준비돼 있다. 작업 성격에 따라 아래처럼 고르면 된다.
| 상황 | 쓸 기능 |
|---|---|
| 채팅처럼 답이 바로 보여야 할 때 | 스트리밍 (messages.stream) |
| Claude가 내 함수·API를 부르게 할 때 | tools 파라미터 |
| 급하지 않은 대량 처리 | 배치 (messages.batches) |
| 웹 서버처럼 동시 요청이 많을 때 | 비동기 클라이언트 (AsyncAnthropic) |
스트리밍은 with client.messages.stream(...) as stream 패턴으로 받는다. 배치는 응답이 늦게 와도 되는 대신 비용을 아낄 수 있어, 문서 수천 건 요약 같은 일에 맞다.
일시적인 네트워크 오류나 요청 한도 초과는 SDK가 자동으로 몇 번 다시 시도한다. 재시도 횟수와 타임아웃은 클라이언트를 만들 때 바꿀 수 있다. Amazon Bedrock이나 Google Vertex AI를 통해 Claude를 쓴다면 그에 맞는 전용 클라이언트를 쓰면 코드 모양을 거의 그대로 유지할 수 있다.
Client SDK는 질문을 보내고 답을 받는 한 번의 호출을 다룬다. 도구 실행 결과를 다시 넣고 반복하는 흐름은 직접 짜야 한다. 파일 읽기·명령 실행까지 알아서 반복하는 에이전트가 필요하면 Claude Code를 바탕으로 한 Agent SDK가 더 빠르다. 단순히 앱에 요약·분류·대화 기능을 넣는 정도라면 Client SDK로 충분하다.
가장 흔한 건 이미 있는 앱이나 스크립트에 Claude 호출을 끼워 넣는 방식이다. 화면에 바로 보여야 하는 곳은 스트리밍으로, 뒤에서 몰아서 돌리는 일은 배치로 나눠 쓴다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 웹 서비스·사내 챗봇 | 스트리밍으로 답을 바로 보여주고, 요청이 몰리면 AsyncAnthropic으로 동시에 처리 |
| 데이터 처리 스크립트 | 문서 요약·분류처럼 급하지 않은 대량 작업을 배치로 보내 비용 절감 |
| 사내 시스템 연동 | tools로 DB 조회·내부 API 함수를 등록해 Claude가 필요할 때 부르게 |
| 클라우드 환경 | Bedrock·Vertex AI 전용 클라이언트로 바꿔 끼우고 나머지 코드는 그대로 |