TypeScript
Claude Code TypeScript SDK로 맞춤형 AI 에이전트 구축하기
전제 조건
- Node.js 18+
설치
NPM에서 @anthropic-ai/claude-code
를 설치하세요:
TypeScript SDK 소스 코드를 보려면 NPM의 @anthropic-ai/claude-code
페이지를 방문하세요.
기본 사용법
TypeScript SDK를 통한 주요 인터페이스는 query
함수로, 메시지가 도착하는 대로 스트리밍하는 비동기 이터레이터를 반환합니다:
구성 옵션
인수 | 타입 | 설명 | 기본값 |
---|---|---|---|
abortController | AbortController | 작업 취소를 위한 중단 컨트롤러 | new AbortController() |
additionalDirectories | string[] | 세션에 포함할 추가 디렉토리 | undefined |
allowedTools | string[] | Claude가 사용할 수 있는 도구 목록 | 기본적으로 모든 도구 활성화 |
appendSystemPrompt | string | 기본 시스템 프롬프트에 추가할 텍스트 | undefined |
canUseTool | CanUseTool | 도구 사용을 위한 맞춤 권한 함수 | undefined |
continue | boolean | 가장 최근 세션 계속하기 | false |
customSystemPrompt | string | 기본 시스템 프롬프트를 완전히 교체 | undefined |
cwd | string | 현재 작업 디렉토리 | process.cwd() |
disallowedTools | string[] | Claude가 사용할 수 없는 도구 목록 | undefined |
env | Dict<string> | 설정할 환경 변수 | undefined |
executable | 'bun' | 'deno' | 'node' | 사용할 JavaScript 런타임 | Node.js로 실행 시 node , Bun으로 실행 시 bun |
executableArgs | string[] | 실행 파일에 전달할 인수 | [] |
fallbackModel | string | 기본 모델 실패 시 사용할 모델 | undefined |
maxThinkingTokens | number | Claude의 사고 과정을 위한 최대 토큰 | undefined |
maxTurns | number | 대화 턴의 최대 수 | undefined |
mcpServers | Record<string, McpServerConfig> | MCP 서버 구성 | undefined |
model | string | 사용할 Claude 모델 | CLI 구성의 기본값 사용 |
pathToClaudeCodeExecutable | string | Claude Code 실행 파일 경로 | @anthropic-ai/claude-code 와 함께 제공되는 실행 파일 |
permissionMode | PermissionMode | 세션의 권한 모드 | "default" (옵션: "default" , "acceptEdits" , "bypassPermissions" , "plan" ) |
permissionPromptToolName | string | 권한 프롬프트용 MCP 도구 이름 | undefined |
resume | string | 재개할 세션 ID | undefined |
stderr | (data: string) => void | stderr 출력을 위한 콜백 | undefined |
strictMcpConfig | boolean | 엄격한 MCP 구성 검증 강제 | undefined |
다중 턴 대화
다중 턴 대화의 경우 두 가지 옵션이 있습니다.
응답을 생성하고 재개하거나, 메시지 배열에 대한 비동기/제너레이터를 허용하는 스트리밍 입력 모드를 사용할 수 있습니다. 현재 스트리밍 입력 모드는 메시지를 통해 이미지를 첨부하는 유일한 방법입니다.
세션 관리로 재개
스트리밍 입력 모드
스트리밍 입력 모드를 사용하면 단일 문자열 대신 비동기 이터러블로 메시지를 제공할 수 있습니다. 이를 통해 다중 턴 대화, 이미지 첨부, 동적 메시지 생성이 가능합니다:
이미지가 포함된 스트리밍 입력
스트리밍 입력 모드는 메시지를 통해 이미지를 첨부하는 유일한 방법입니다:
맞춤 시스템 프롬프트
시스템 프롬프트는 에이전트의 역할, 전문성, 행동을 정의합니다:
MCP를 통한 맞춤 도구
Model Context Protocol (MCP)을 사용하면 에이전트에게 맞춤 도구와 기능을 제공할 수 있습니다:
MCP를 사용한 맞춤 도구
MCP를 사용하여 맞춤 도구를 구현할 수 있습니다. 예를 들어 맞춤 권한 처리 도구를 만드는 방법은 다음과 같습니다.
출력 형식
텍스트 출력 (기본값)
JSON 출력
입력 형식
에이전트 통합 예제
SRE 인시던트 대응 에이전트
자동화된 보안 검토
다중 턴 법무 어시스턴트
메시지 스키마
JSON API에서 반환되는 메시지는 다음 스키마에 따라 엄격하게 타입이 지정됩니다:
추가 지원 타입:
Message
, MessageParam
, Usage
타입은 Anthropic TypeScript SDK에서 사용할 수 있습니다.
관련 리소스
- CLI 사용법 및 제어 - 완전한 CLI 문서
- GitHub Actions 통합 - Claude로 GitHub 워크플로우 자동화
- 일반적인 워크플로우 - 일반적인 사용 사례에 대한 단계별 가이드