Rastreamento de Custos do SDK
O Claude Agent SDK fornece informações detalhadas sobre o uso de tokens para cada interação com Claude. Este guia explica como rastrear adequadamente os custos e entender os relatórios de uso, especialmente ao lidar com usos paralelos de ferramentas e conversas de múltiplas etapas. Para documentação completa da API, consulte a referência do SDK TypeScript.Entendendo o Uso de Tokens
Quando Claude processa solicitações, ele relata o uso de tokens no nível da mensagem. Esses dados de uso são essenciais para rastrear custos e faturar usuários adequadamente.Conceitos Principais
- Etapas: Uma etapa é um único par de solicitação/resposta entre sua aplicação e Claude
- Mensagens: Mensagens individuais dentro de uma etapa (texto, usos de ferramentas, resultados de ferramentas)
- Uso: Dados de consumo de tokens anexados às mensagens do assistente
Estrutura de Relatórios de Uso
Uso Único vs Paralelo de Ferramentas
Quando Claude executa ferramentas, os relatórios de uso diferem com base em se as ferramentas são executadas sequencialmente ou em paralelo:Exemplo de Fluxo de Mensagens
Aqui está como as mensagens e o uso são relatados em uma conversa típica de múltiplas etapas:Regras Importantes de Uso
1. Mesmo ID = Mesmo Uso
Todas as mensagens com o mesmo campoid
relatam uso idêntico. Quando Claude envia múltiplas mensagens no mesmo turno (por exemplo, texto + usos de ferramentas), elas compartilham o mesmo ID de mensagem e dados de uso.
2. Cobre Uma Vez Por Etapa
Você deve cobrar dos usuários apenas uma vez por etapa, não para cada mensagem individual. Quando você vê múltiplas mensagens do assistente com o mesmo ID, use o uso de qualquer uma delas.3. Mensagem de Resultado Contém Uso Cumulativo
A mensagem finalresult
contém o uso cumulativo total de todas as etapas na conversa:
Implementação: Sistema de Rastreamento de Custos
Aqui está um exemplo completo de implementação de um sistema de rastreamento de custos:Lidando com Casos Extremos
Discrepâncias de Tokens de Saída
Em casos raros, você pode observar valores diferentes deoutput_tokens
para mensagens com o mesmo ID. Quando isso ocorre:
- Use o valor mais alto - A mensagem final em um grupo normalmente contém o total preciso
- Verifique contra o custo total - O
total_cost_usd
na mensagem de resultado é autoritativo - Relate inconsistências - Registre problemas no repositório GitHub do Claude Code
Rastreamento de Tokens de Cache
Ao usar cache de prompt, rastreie esses tipos de tokens separadamente:Melhores Práticas
- Use IDs de Mensagem para Desduplicação: Sempre rastreie IDs de mensagens processadas para evitar cobrança dupla
- Monitore a Mensagem de Resultado: O resultado final contém uso cumulativo autoritativo
- Implemente Logging: Registre todos os dados de uso para auditoria e depuração
- Lide com Falhas Graciosamente: Rastreie uso parcial mesmo se uma conversa falhar
- Considere Streaming: Para respostas em streaming, acumule uso conforme as mensagens chegam
Referência de Campos de Uso
Cada objeto de uso contém:input_tokens
: Tokens de entrada base processadosoutput_tokens
: Tokens gerados na respostacache_creation_input_tokens
: Tokens usados para criar entradas de cachecache_read_input_tokens
: Tokens lidos do cacheservice_tier
: O nível de serviço usado (por exemplo, “standard”)total_cost_usd
: Custo total em USD (apenas na mensagem de resultado)
Exemplo: Construindo um Painel de Faturamento
Aqui está como agregar dados de uso para um painel de faturamento:Documentação Relacionada
- Referência do SDK TypeScript - Documentação completa da API
- Visão Geral do SDK - Começando com o SDK
- Permissões do SDK - Gerenciando permissões de ferramentas