TypeScript 2

Bedrock vs OpenAI SDK: 같은 에이전트, 두 백엔드로 provider lock-in 끊기

@aws-sdk/client-bedrock-runtime와 @anthropic-ai/sdk의 API 표면, tool-use 페이로드, 스트리밍 패턴을 비교하고 120줄 어댑터로 두 백엔드를 교체 가능하게 만드는 방법.요약: 어댑터 레이어 120줄로 같은 TypeScript 에이전트를 @anthropic-ai/sdk(Anthropic 직접 API)와 @aws-sdk/client-bedrock-runtime(AWS Bedrock) 양쪽에서 실행할 수 있다. 핵심 차이는 API 표면 설계, tool-use 페이로드 구조, 지역·규정 준수 요건 세 가지다.1. 왜 두 백엔드가 필요한가프로토타입은 ANTHROPIC_API_KEY 하나로 충분하지만, 프로덕션은 다른 요건이 개입한다.규정 준수(Compliance):..

TypeScript에서 LLM tool-call 안전 패턴 — Zod 스키마 + retry policy

LLM이 잘못된 인자를 돌려줄 때, 코드는 조용히 망가진다Zod 하나로 JSON Schema와 런타임 검증을 동시에 해결하고, safeParse retry 루프와 dry-run 분리까지 묶으면 tool-call 실패의 대부분을 LLM에 닿기 전에 잡을 수 있다. 그 구조를 처음부터 같이 만들어 본다.문제: silent breakageOpenAI Tool Calling이나 Anthropic tool_use를 처음 붙일 때 가장 자주 보이는 실수가 있다. 모델이 반환한 arguments JSON을 JSON.parse() 후 아무 검증 없이 DB에 바로 넘기는 것.// ❌ ANTI-PATTERN: no validation — direct use of LLM outputconst args = JSON.parse..