Claude Code SDK로 맞춤형 AI 에이전트 구축하기
SDK 설치
@anthropic-ai/claude-code
를 설치하세요:API 키 설정
ANTHROPIC_API_KEY
환경 변수를 설정하세요:첫 번째 에이전트 생성
에이전트 실행
@anthropic-ai/claude-code
claude
명령입니다. --print
(또는 -p
) 플래그를 사용하여 비대화형 모드로 실행하고 최종 결과를 출력하세요:플래그 | 설명 | 예시 |
---|---|---|
--print , -p | 비대화형 모드로 실행 | claude -p "쿼리" |
--output-format | 출력 형식 지정 (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | 세션 ID로 대화 재개 | claude --resume abc123 |
--continue , -c | 가장 최근 대화 계속 | claude --continue |
--verbose | 자세한 로깅 활성화 | claude --verbose |
--append-system-prompt | 시스템 프롬프트에 추가 (--print 와 함께만 사용) | claude --append-system-prompt "사용자 지정 지침" |
--allowedTools | 허용된 도구의 공백으로 구분된 목록, 또는 쉼표로 구분된 허용된 도구의 문자열 목록 | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | 거부된 도구의 공백으로 구분된 목록, 또는 쉼표로 구분된 거부된 도구의 문자열 목록 | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | JSON 파일에서 MCP 서버 로드 | claude --mcp-config servers.json |
--permission-prompt-tool | 권한 프롬프트 처리를 위한 MCP 도구 (--print 와 함께만 사용) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
환경 변수를 설정하세요.
CLAUDE_CODE_USE_BEDROCK=1
환경 변수를 설정하고 AWS 자격 증명을 구성하세요CLAUDE_CODE_USE_VERTEX=1
환경 변수를 설정하고 Google Cloud 자격 증명을 구성하세요--allowedTools
플래그를 사용하여 명시적으로 허용해야 합니다. MCP 도구 이름은 mcp__<serverName>__<toolName>
패턴을 따릅니다. 여기서:serverName
은 MCP 구성 파일의 키입니다toolName
은 해당 서버에서 제공하는 특정 도구입니다mcp__<serverName>
), 해당 서버의 모든 도구가 허용됩니다.글로브 패턴(예: mcp__go*
)은 지원되지 않습니다.--permission-prompt-tool
을 사용하여 사용자가 모델에 특정 도구 호출 권한을 부여하는지 확인하는 데 사용할 MCP 도구를 전달할 수 있습니다. 모델이 도구를 호출할 때 다음과 같은 일이 발생합니다:
--allowedTools
및 --disallowedTools
; 이 중 하나가 도구 호출을 허용하거나 거부하면 도구 호출을 진행합니다--permission-prompt-tool
에서 제공한 MCP 도구를 호출합니다--permission-prompt-tool
MCP 도구는 도구 이름과 입력을 전달받고 결과와 함께 JSON 문자열화된 페이로드를 반환해야 합니다. 페이로드는 다음 중 하나여야 합니다:
updatedInput
을 사용하여 권한 프롬프트가 입력을 변경했음을 모델에 알리세요. 그렇지 않으면 위 예시와 같이 updatedInput
을 원래 입력으로 설정하세요. 예를 들어, 도구가 사용자에게 파일 편집 차이를 보여주고 사용자가 차이를 수동으로 편집할 수 있게 하는 경우, 권한 프롬프트 도구는 업데이트된 편집을 반환해야 합니다.init
시스템 메시지로 시작하고, 사용자 및 어시스턴트 메시지 목록이 이어지며, 통계가 포함된 최종 result
시스템 메시지로 끝납니다. 각 메시지는 별도의 JSON 객체로 방출됩니다.
Message
및 MessageParam
타입은 Anthropic SDK에서 사용할 수 있습니다. 예를 들어, Anthropic TypeScript 및 Python SDK를 참조하세요.
stdin
을 통해 제공되는 메시지 스트림입니다. 이를 통해 claude
바이너리를 다시 실행하지 않고도 대화의 여러 턴을 수행할 수 있으며, 모델이 요청을 처리하는 동안 지침을 제공할 수 있습니다.
각 메시지는 출력 메시지 스키마와 동일한 형식을 따르는 JSON ‘사용자 메시지’ 객체입니다. 메시지는 각 입력 줄이 완전한 JSON 객체인 jsonl 형식을 사용하여 형식화됩니다. 스트리밍 JSON 입력에는 -p
와 --output-format stream-json
이 필요합니다.
현재 이는 텍스트 전용 사용자 메시지로 제한됩니다.