Pular para o conteúdo principal
A API de sessão V2 não é mais suportada. TypeScript Agent SDK 0.3.142 remove unstable_v2_createSession, unstable_v2_resumeSession, unstable_v2_prompt e os tipos SDKSession e SDKSessionOptions.Para migrar, use a API query() e as opções de sessão que ela aceita. Passe um AsyncIterable<SDKUserMessage> para conversas multi-turno, ou options.resume para continuar uma sessão salva. Esta página é mantida como referência se você mantém código no Agent SDK 0.2.x ou anterior.
V2 era uma API de sessão experimental que removeu a necessidade de geradores assíncronos e coordenação de yield. Em vez de gerenciar o estado do gerador entre turnos, cada turno era um ciclo send()/stream() separado. A superfície da API se reduzia a três conceitos:
  • createSession() / resumeSession(): Iniciar ou continuar uma conversa
  • session.send(): Enviar uma mensagem
  • session.stream(): Obter a resposta

Instalação

Agent SDK 0.2.x é a última versão que inclui a interface V2. A versão do pacote saltou de 0.2.x diretamente para 0.3.142, portanto a versão de remoção acima e o pin de instalação abaixo descrevem o mesmo limite. Para instalar a última versão compatível com V2, fixe a versão principal e secundária:
O SDK agrupa um binário nativo do Claude Code para sua plataforma como uma dependência opcional, portanto você não precisa instalar o Claude Code separadamente.

Início rápido

Prompt único

Para consultas simples de turno único onde você não precisa manter uma sessão, use unstable_v2_prompt(). Este exemplo envia uma pergunta de matemática e registra a resposta:

Sessão básica

Para interações além de um único prompt, crie uma sessão. V2 separa envio e streaming em etapas distintas:
  • send() envia sua mensagem
  • stream() transmite a resposta
Esta separação explícita torna mais fácil adicionar lógica entre turnos (como processar respostas antes de enviar acompanhamentos). O exemplo abaixo cria uma sessão, envia “Hello!” para Claude e imprime a resposta de texto. Ele usa await using (TypeScript 5.2+) para fechar automaticamente a sessão quando o bloco sai. Você também pode chamar session.close() manualmente.

Conversa multi-turno

As sessões persistem contexto em múltiplas trocas. Para continuar uma conversa, chame send() novamente na mesma sessão. Claude se lembra dos turnos anteriores. Este exemplo faz uma pergunta de matemática e depois faz um acompanhamento que referencia a resposta anterior:

Retomada de sessão

Se você tiver um ID de sessão de uma interação anterior, poderá retomá-lo mais tarde. Isso é útil para fluxos de trabalho de longa duração ou quando você precisa persistir conversas entre reinicializações de aplicativo. Este exemplo cria uma sessão, armazena seu ID, a fecha e depois retoma a conversa:

Limpeza

As sessões podem ser fechadas manualmente ou automaticamente usando await using, um recurso do TypeScript 5.2+ para limpeza automática de recursos. Se você estiver usando uma versão mais antiga do TypeScript ou encontrar problemas de compatibilidade, use limpeza manual em seu lugar. Limpeza automática (TypeScript 5.2+):
Limpeza manual:

Referência da API

unstable_v2_createSession()

Cria uma nova sessão para conversas multi-turno.

unstable_v2_resumeSession()

Retoma uma sessão existente por ID.

unstable_v2_prompt()

Função de conveniência única para consultas de turno único.

Interface SDKSession

Disponibilidade de recursos

A API de sessão V2 não suporta todos os recursos V1. Os seguintes requerem o SDK V1:
  • Bifurcação de sessão (opção forkSession)
  • Alguns padrões avançados de entrada de streaming

Veja também