Claude Code TypeScript SDK로 맞춤형 AI 에이전트 구축하기
@anthropic-ai/claude-code
를 설치하세요:
@anthropic-ai/claude-code
페이지를 방문하세요.query
함수로, 메시지가 도착하는 대로 스트리밍하는 비동기 이터레이터를 반환합니다:
인수 | 타입 | 설명 | 기본값 |
---|---|---|---|
abortController | AbortController | 작업 취소를 위한 중단 컨트롤러 | new AbortController() |
additionalDirectories | string[] | 세션에 포함할 추가 디렉토리 | undefined |
allowedTools | string[] | Claude가 사용할 수 있는 도구 목록 | 기본적으로 모든 도구 활성화 |
appendSystemPrompt | string | 기본 시스템 프롬프트에 추가할 텍스트 | undefined |
canUseTool | (toolName: string, input: any) => Promise<ToolPermissionResult> | 도구 사용을 위한 맞춤형 권한 함수 | 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 |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | 맞춤화를 위한 라이프사이클 훅 | undefined |
includePartialMessages | boolean | 메시지 스트림에 부분 스트리밍 이벤트 포함 | false |
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" ) |
resume | string | 재개할 세션 ID | undefined |
stderr | (data: string) => void | stderr 출력을 위한 콜백 | undefined |
strictMcpConfig | boolean | 엄격한 MCP 구성 검증 강제 | undefined |
includePartialMessages
가 활성화되면, SDK는 Claude API의 원시 스트리밍 이벤트를 포함하는 stream_event
메시지를 방출합니다. 이를 통해 생성되는 동안 부분 콘텐츠에 액세스할 수 있어 실시간 UI 업데이트나 진행률 표시기를 구현하는 데 유용합니다.
stream_event
메시지에는 다음이 포함됩니다:
event
: API의 원시 스트리밍 이벤트session_id
: 현재 세션 식별자parent_tool_use_id
: 실행 중인 도구의 ID (해당하는 경우)uuid
: 이 이벤트의 고유 식별자createSdkMcpServer
와 tool
헬퍼 함수를 사용하여 타입 안전한 맞춤형 도구를 정의하세요:
tool
헬퍼는 Zod 스키마에서 완전한 TypeScript 타입 추론을 제공합니다:
"Write|Edit"
)canUseTool
이 권한 제어를 제공하는 반면, 훅은 더 광범위한 라이프사이클 통합을 제공합니다:
canUseTool
콜백은 도구 실행에 대한 세밀한 제어를 제공합니다. 각 도구 사용 전에 호출되며 도구 입력을 허용, 거부 또는 수정할 수 있습니다:
Message
, MessageParam
, Usage
타입은 Anthropic TypeScript SDK에서 사용할 수 있습니다.