TypeScript
Construa agentes de IA personalizados com o Claude Code TypeScript SDK
Pré-requisitos
- Node.js 18+
Instalação
Instale @anthropic-ai/claude-code
do NPM:
Para visualizar o código fonte do TypeScript SDK, visite a página @anthropic-ai/claude-code
no NPM.
Uso básico
A interface principal via TypeScript SDK é a função query
, que retorna um iterador assíncrono que transmite mensagens conforme chegam:
Opções de configuração
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 | CanUseTool | 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 |
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" ) |
permissionPromptToolName | string | Nome da ferramenta MCP para prompts de permissão | undefined |
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 |
Conversas multi-turno
Para conversas multi-turno, você tem duas opções.
Você pode gerar respostas e retomá-las, ou pode usar o modo de entrada de streaming que aceita um async/generator para um array de mensagens. Por enquanto, o modo de entrada de streaming é a única maneira de anexar imagens via mensagens.
Retomar com gerenciamento de sessão
Modo de entrada de streaming
O modo de entrada de streaming permite que você forneça mensagens como um iterável assíncrono em vez de uma única string. Isso permite conversas multi-turno, anexos de imagem e geração dinâmica de mensagens:
Entrada de streaming com imagens
O modo de entrada de streaming é a única maneira de anexar imagens via mensagens:
Prompts de sistema personalizados
Prompts de sistema definem o papel, expertise e comportamento do seu agente:
Ferramentas personalizadas via MCP
O Model Context Protocol (MCP) permite que você dê aos seus agentes ferramentas e capacidades personalizadas:
Ferramentas personalizadas usando MCPs
Você pode implementar ferramentas personalizadas usando MCPs, por exemplo, aqui está como você pode criar uma ferramenta de tratamento de permissão personalizada.
Formatos de saída
Saída de texto (padrão)
Saída JSON
Formatos de entrada
Exemplos de integração de agentes
Agente de resposta a incidentes SRE
Revisão de segurança automatizada
Assistente jurídico multi-turno
Schema de mensagens
Mensagens retornadas da API JSON são estritamente tipadas de acordo com o seguinte schema:
Tipos de suporte adicionais:
Os tipos Message
, MessageParam
e Usage
estão disponíveis no TypeScript SDK da Anthropic.
Recursos relacionados
- Uso e controles da CLI - Documentação completa da CLI
- Integração com GitHub Actions - Automatize seu fluxo de trabalho do GitHub com Claude
- Fluxos de trabalho comuns - Guias passo a passo para casos de uso comuns