모델처럼 SDK도 버전을 고정해
PyPI의 anthropic 패키지는 빠르게 바뀌어. 새 도우미와 더 정교한 타입이 들어오고 입력 검증이 엄격해지기도 하지. pyproject.toml이나 requirements.txt에 버전을 고정하고, 변경 기록과 시험을 거쳐 의도적으로 올려. 설치할 때마다 우연히 최신이 되는 상태는 운영 정책이 아니야.
이상 행동을 보기 전에 실제 버전을 확인해
pip show anthropic으로 설치 위치와 버전을 보고, python -c "import anthropic; print(anthropic.__version__)"으로 현재 인터프리터가 불러온 버전을 확인해. 필요하면 anthropic.Anthropic.__doc__도 살펴. 로컬에서는 되는데 CI에서는 깨지는 문제 상당수가 서로 다른 파이썬이나 패키지 버전에서 시작돼.
동기와 비동기 클라이언트를 런타임에 맞춰
같은 패키지에 동기식 Anthropic과 비동기식 AsyncAnthropic이 있어. 짧은 스크립트에는 동기 클라이언트가 단순하고, FastAPI 라우트나 이미 사건 루프가 도는 작업자에는 비동기 클라이언트가 자연스러워. 기능 차이가 아니라 입출력 방식의 선택이야.
원칙: SDK도 업그레이드 절차가 필요한 버전 의존성이야. 로컬과 운영의 차이는 배포 날 발견할 일이 아니야.