Construa agentes de IA personalizados com o SDK TypeScript do Claude Code
@anthropic-ai/claude-code
do NPM:
@anthropic-ai/claude-code
no NPM.query
, que retorna um iterador assíncrono que transmite mensagens conforme chegam:
Argumento | Tipo | Descrição | Padrão |
---|---|---|---|
abortController | AbortController | Controlador de aborto para cancelar operações | new AbortController() |
additionalDirectories | string[] | Diretórios adicionais para incluir na sessão | undefined |
allowedTools | string[] | Lista de ferramentas que Claude tem permissão para usar | Todas as ferramentas habilitadas por padrão |
appendSystemPrompt | string | Texto para anexar ao prompt do sistema padrão | undefined |
canUseTool | (toolName: string, input: any) => Promise<ToolPermissionResult> | Função de permissão personalizada para uso de ferramentas | undefined |
continue | boolean | Continuar a sessão mais recente | false |
customSystemPrompt | string | Substituir completamente o prompt do sistema padrão | undefined |
cwd | string | Diretório de trabalho atual | process.cwd() |
disallowedTools | string[] | Lista de ferramentas que Claude não tem permissão para usar | undefined |
env | Dict<string> | Variáveis de ambiente para definir | undefined |
executable | 'bun' | 'deno' | 'node' | Qual runtime JavaScript usar | node quando executando com Node.js, bun quando executando com Bun |
executableArgs | string[] | Argumentos para passar ao executável | [] |
fallbackModel | string | Modelo para usar se o modelo principal falhar | undefined |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | Hooks de ciclo de vida para personalização | undefined |
includePartialMessages | boolean | Incluir eventos de streaming parciais no fluxo de mensagens | false |
maxThinkingTokens | number | Tokens máximos para o processo de pensamento do Claude | undefined |
maxTurns | number | Número máximo de turnos de conversa | undefined |
mcpServers | Record<string, McpServerConfig> | Configurações do servidor MCP | undefined |
model | string | Modelo Claude para usar | Usa padrão da configuração CLI |
pathToClaudeCodeExecutable | string | Caminho para o executável Claude Code | Executável que vem com @anthropic-ai/claude-code |
permissionMode | PermissionMode | Modo de permissão para a sessão | "default" (opções: "default" , "acceptEdits" , "bypassPermissions" , "plan" ) |
resume | string | ID da sessão para retomar | undefined |
stderr | (data: string) => void | Callback para saída stderr | undefined |
strictMcpConfig | boolean | Aplicar validação rigorosa de configuração MCP | undefined |
includePartialMessages
está habilitado, o SDK emitirá mensagens stream_event
que contêm eventos de streaming brutos da API Claude. Isso permite acessar conteúdo parcial conforme está sendo gerado, útil para implementar atualizações de UI em tempo real ou indicadores de progresso.
stream_event
inclui:
event
: O evento de streaming bruto da APIsession_id
: O identificador da sessão atualparent_tool_use_id
: O ID da ferramenta sendo executada (se aplicável)uuid
: Um identificador único para este eventocreateSdkMcpServer
e tool
para definir ferramentas personalizadas type-safe:
tool
fornece inferência completa de tipos TypeScript dos seus esquemas Zod:
"Write|Edit"
)canUseTool
fornece controle de permissão, hooks oferecem integração mais ampla do ciclo de vida:
canUseTool
fornece controle refinado sobre execução de ferramentas. É chamado antes de cada uso de ferramenta e pode permitir, negar ou modificar entradas de ferramenta:
Message
, MessageParam
e Usage
estão disponíveis no SDK TypeScript da Anthropic.