Instalação
Funções
query()
A função principal para interagir com Claude Code. Cria um gerador assíncrono que transmite mensagens conforme chegam.
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
prompt | string | AsyncIterable< SDKUserMessage > | O prompt de entrada como string ou iterável assíncrono para modo de streaming |
options | Options | Objeto de configuração opcional (veja o tipo Options abaixo) |
Retorna
Retorna um objetoQuery
que estende AsyncGenerator<
SDKMessage
, void>
com métodos adicionais.
tool()
Cria uma definição de ferramenta MCP type-safe para uso com servidores MCP do SDK.
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
name | string | O nome da ferramenta |
description | string | Uma descrição do que a ferramenta faz |
inputSchema | Schema extends ZodRawShape | Schema Zod definindo os parâmetros de entrada da ferramenta |
handler | (args, extra) => Promise< CallToolResult > | Função assíncrona que executa a lógica da ferramenta |
createSdkMcpServer()
Cria uma instância de servidor MCP que roda no mesmo processo que sua aplicação.
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
options.name | string | O nome do servidor MCP |
options.version | string | String de versão opcional |
options.tools | Array<SdkMcpToolDefinition> | Array de definições de ferramentas criadas com tool() |
Tipos
Options
Objeto de configuração para a função query()
.
Propriedade | Tipo | Padrão | Descrição |
---|---|---|---|
abortController | AbortController | new AbortController() | Controlador para cancelar operações |
additionalDirectories | string[] | [] | Diretórios adicionais que Claude pode acessar |
agents | Record<string, [ AgentDefinition](#agentdefinition)> | undefined | Definir subagentes programaticamente |
allowedTools | string[] | Todas as ferramentas | Lista de nomes de ferramentas permitidas |
canUseTool | CanUseTool | undefined | Função de permissão personalizada para uso de ferramentas |
continue | boolean | false | Continuar a conversa mais recente |
cwd | string | process.cwd() | Diretório de trabalho atual |
disallowedTools | string[] | [] | Lista de nomes de ferramentas não permitidas |
env | Dict<string> | process.env | Variáveis de ambiente |
executable | 'bun' | 'deno' | 'node' | Auto-detectado | Runtime JavaScript a usar |
executableArgs | string[] | [] | Argumentos para passar ao executável |
extraArgs | Record<string, string | null> | {} | Argumentos adicionais |
fallbackModel | string | undefined | Modelo a usar se o primário falhar |
forkSession | boolean | false | Ao retomar com resume , bifurcar para um novo ID de sessão em vez de continuar a sessão original |
hooks | Partial<Record< HookEvent , HookCallbackMatcher []>> | {} | Callbacks de hook para eventos |
includePartialMessages | boolean | false | Incluir eventos de mensagem parcial |
maxThinkingTokens | number | undefined | Máximo de tokens para processo de pensamento |
maxTurns | number | undefined | Máximo de turnos de conversa |
mcpServers | Record<string, [ McpServerConfig](#mcpserverconfig)> | {} | Configurações de servidor MCP |
model | string | Padrão do CLI | Modelo Claude a usar |
pathToClaudeCodeExecutable | string | Auto-detectado | Caminho para o executável Claude Code |
permissionMode | PermissionMode | 'default' | Modo de permissão para a sessão |
permissionPromptToolName | string | undefined | Nome da ferramenta MCP para prompts de permissão |
resume | string | undefined | ID da sessão para retomar |
settingSources | SettingSource [] | [] (sem configurações) | Controlar quais configurações do sistema de arquivos carregar. Quando omitido, nenhuma configuração é carregada |
stderr | (data: string) => void | undefined | Callback para saída stderr |
strictMcpConfig | boolean | false | Aplicar validação MCP rigorosa |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (prompt vazio) | Configuração do prompt do sistema. Passe uma string para prompt personalizado, ou { type: 'preset', preset: 'claude_code' } para usar o prompt do sistema do Claude Code |
Query
Interface retornada pela função query()
.
Métodos
Método | Descrição |
---|---|
interrupt() | Interrompe a consulta (disponível apenas no modo de entrada streaming) |
setPermissionMode() | Altera o modo de permissão (disponível apenas no modo de entrada streaming) |
AgentDefinition
Configuração para um subagente definido programaticamente.
Campo | Obrigatório | Descrição |
---|---|---|
description | Sim | Descrição em linguagem natural de quando usar este agente |
tools | Não | Array de nomes de ferramentas permitidas. Se omitido, herda todas as ferramentas |
prompt | Sim | O prompt do sistema do agente |
model | Não | Substituição de modelo para este agente. Se omitido, usa o modelo principal |
SettingSource
Controla quais fontes de configuração baseadas no sistema de arquivos o SDK carrega configurações.
Valor | Descrição | Localização |
---|---|---|
'user' | Configurações globais do usuário | ~/.claude/settings.json |
'project' | Configurações compartilhadas do projeto (controladas por versão) | .claude/settings.json |
'local' | Configurações locais do projeto (gitignored) | .claude/settings.local.json |
Comportamento padrão
QuandosettingSources
é omitido ou undefined, o SDK não carrega nenhuma configuração do sistema de arquivos. Isso fornece isolamento para aplicações SDK.
Por que usar settingSources?
Carregar todas as configurações do sistema de arquivos (comportamento legado):Precedência de configurações
Quando múltiplas fontes são carregadas, as configurações são mescladas com esta precedência (maior para menor):- Configurações locais (
.claude/settings.local.json
) - Configurações do projeto (
.claude/settings.json
) - Configurações do usuário (
~/.claude/settings.json
)
agents
, allowedTools
) sempre substituem configurações do sistema de arquivos.
PermissionMode
CanUseTool
Tipo de função de permissão personalizada para controlar o uso de ferramentas.
PermissionResult
Resultado de uma verificação de permissão.
McpServerConfig
Configuração para servidores MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
Tipos de Mensagem
SDKMessage
Tipo união de todas as mensagens possíveis retornadas pela consulta.
SDKAssistantMessage
Mensagem de resposta do assistente.
SDKUserMessage
Mensagem de entrada do usuário.
SDKUserMessageReplay
Mensagem de usuário reproduzida com UUID obrigatório.
SDKResultMessage
Mensagem de resultado final.
SDKSystemMessage
Mensagem de inicialização do sistema.
SDKPartialAssistantMessage
Mensagem parcial de streaming (apenas quando includePartialMessages
é true).
SDKCompactBoundaryMessage
Mensagem indicando um limite de compactação de conversa.
SDKPermissionDenial
Informações sobre um uso de ferramenta negado.
Tipos de Hook
HookEvent
Eventos de hook disponíveis.
HookCallback
Tipo de função de callback de hook.
HookCallbackMatcher
Configuração de hook com matcher opcional.
HookInput
Tipo união de todos os tipos de entrada de hook.
BaseHookInput
Interface base que todos os tipos de entrada de hook estendem.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Valor de retorno do hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipos de Entrada de Ferramenta
Documentação de esquemas de entrada para todas as ferramentas integradas do Claude Code. Estes tipos são exportados de@anthropic-ai/claude-agent-sdk
e podem ser usados para interações type-safe com ferramentas.
ToolInput
Nota: Este é um tipo apenas para documentação para clareza. Representa a união de todos os tipos de entrada de ferramenta.
Task
Nome da ferramenta:Task
Bash
Nome da ferramenta:Bash
BashOutput
Nome da ferramenta:BashOutput
Edit
Nome da ferramenta:Edit
MultiEdit
Nome da ferramenta:MultiEdit
Read
Nome da ferramenta:Read
Write
Nome da ferramenta:Write
Glob
Nome da ferramenta:Glob
Grep
Nome da ferramenta:Grep
KillBash
Nome da ferramenta:KillBash
NotebookEdit
Nome da ferramenta:NotebookEdit
WebFetch
Nome da ferramenta:WebFetch
WebSearch
Nome da ferramenta:WebSearch
TodoWrite
Nome da ferramenta:TodoWrite
ExitPlanMode
Nome da ferramenta:ExitPlanMode
ListMcpResources
Nome da ferramenta:ListMcpResources
ReadMcpResource
Nome da ferramenta:ReadMcpResource
Tipos de Saída de Ferramenta
Documentação de esquemas de saída para todas as ferramentas integradas do Claude Code. Estes tipos representam os dados de resposta reais retornados por cada ferramenta.ToolOutput
Nota: Este é um tipo apenas para documentação para clareza. Representa a união de todos os tipos de saída de ferramenta.
Task
Nome da ferramenta:Task
Bash
Nome da ferramenta:Bash
BashOutput
Nome da ferramenta:BashOutput
Edit
Nome da ferramenta:Edit
MultiEdit
Nome da ferramenta:MultiEdit
Read
Nome da ferramenta:Read
Write
Nome da ferramenta:Write
Glob
Nome da ferramenta:Glob
Grep
Nome da ferramenta:Grep
KillBash
Nome da ferramenta:KillBash
NotebookEdit
Nome da ferramenta:NotebookEdit
WebFetch
Nome da ferramenta:WebFetch
WebSearch
Nome da ferramenta:WebSearch
TodoWrite
Nome da ferramenta:TodoWrite
ExitPlanMode
Nome da ferramenta:ExitPlanMode
ListMcpResources
Nome da ferramenta:ListMcpResources
ReadMcpResource
Nome da ferramenta:ReadMcpResource
Tipos de Permissão
PermissionUpdate
Operações para atualizar permissões.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Outros Tipos
ApiKeySource
ConfigScope
NonNullableUsage
Uma versão de Usage
com todos os campos anuláveis tornados não-anuláveis.
Usage
Estatísticas de uso de token (de @anthropic-ai/sdk
).
CallToolResult
Tipo de resultado de ferramenta MCP (de @modelcontextprotocol/sdk/types.js
).
AbortError
Classe de erro personalizada para operações de aborto.
Veja também
- Visão geral do SDK - Conceitos gerais do SDK
- Referência do SDK Python - Documentação do SDK Python
- Referência do CLI - Interface de linha de comando
- Fluxos de trabalho comuns - Guias passo a passo