Loading...
    • Guia do Desenvolvedor
    • Referência da API
    • MCP
    • Recursos
    • Notas de lançamento
    Search...
    ⌘K
    Primeiros passos
    Introdução ao ClaudeInício rápido
    Modelos e preços
    Visão geral dos modelosEscolhendo um modeloNovidades no Claude 4.5Migrando para Claude 4.5Descontinuação de modelosPreços
    Construir com Claude
    Visão geral de recursosUsando a API MessagesJanelas de contextoMelhores práticas de prompting
    Capacidades
    Cache de promptEdição de contextoPensamento estendidoEsforçoStreaming de mensagensProcessamento em loteCitaçõesSuporte multilíngueContagem de tokensEmbeddingsVisãoSuporte a PDFAPI de arquivosResultados de buscaSaídas estruturadas
    Ferramentas
    Visão geralComo implementar o uso de ferramentasStreaming de ferramentas granularFerramenta BashFerramenta de execução de códigoChamada de ferramenta programáticaFerramenta de uso do computadorFerramenta de editor de textoFerramenta de busca na webFerramenta de pesquisa na webFerramenta de memóriaFerramenta de busca de ferramentas
    Habilidades do agente
    Visão geralInício rápidoMelhores práticasUsando habilidades com a API
    SDK do agente
    Visão geralInício rápidoSDK TypeScriptTypeScript V2 (preview)SDK PythonGuia de migração
    Entrada de streamingTratamento de permissõesControlar execução com hooksGerenciamento de sessãoPonto de verificação de arquivoSaídas estruturadas no SDKHospedando o SDK do agenteImplantação segura de agentes de IAModificando prompts do sistemaMCP no SDKFerramentas personalizadasSubagentos no SDKComandos de barra no SDKHabilidades do agente no SDKRastreando custos e usoListas de tarefasPlugins no SDK
    MCP na API
    Conector MCPServidores MCP remotos
    Claude em plataformas de terceiros
    Amazon BedrockMicrosoft FoundryVertex AI
    Engenharia de prompts
    Visão geralGerador de promptsUsar modelos de promptsMelhorador de promptsSeja claro e diretoUse exemplos (prompting multishot)Deixe Claude pensar (CoT)Use tags XMLDê um papel ao Claude (prompts do sistema)Preencha a resposta do ClaudeEncadeie prompts complexosDicas de contexto longoDicas de pensamento estendido
    Testar e avaliar
    Definir critérios de sucessoDesenvolver casos de testeUsando a ferramenta de avaliaçãoReduzindo latência
    Fortalecer proteções
    Reduzir alucinaçõesAumentar consistência de saídaMitigar jailbreaksRecusas de streamingReduzir vazamento de promptManter Claude em personagem
    Administração e monitoramento
    Visão geral da API de administraçãoAPI de uso e custoAPI de análise de código Claude
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Guias

    Saídas estruturadas no SDK

    Obtenha resultados JSON validados de fluxos de trabalho de agentes

    Obtenha JSON estruturado e validado de fluxos de trabalho de agentes. O Agent SDK suporta saídas estruturadas através de JSON Schemas, garantindo que seus agentes retornem dados exatamente no formato que você precisa.

    Quando usar saídas estruturadas

    Use saídas estruturadas quando você precisar de JSON validado após um agente completar um fluxo de trabalho multi-turno com ferramentas (buscas de arquivo, execução de comando, pesquisa na web, etc.).

    Para chamadas de API única sem uso de ferramentas, consulte Saídas Estruturadas de API.

    Por que usar saídas estruturadas

    Saídas estruturadas fornecem integração confiável e type-safe com suas aplicações:

    • Estrutura validada: Sempre receba JSON válido correspondendo ao seu schema
    • Integração simplificada: Nenhum código de análise ou validação necessário
    • Segurança de tipo: Use com dicas de tipo TypeScript ou Python para segurança end-to-end
    • Separação limpa: Defina requisitos de saída separadamente das instruções de tarefa
    • Autonomia de ferramentas: O agente escolhe quais ferramentas usar enquanto garante o formato de saída

    Como funcionam as saídas estruturadas

    1. 1

      Defina seu JSON schema

      Crie um JSON Schema que descreva a estrutura que você quer que o agente retorne. O schema usa o formato padrão de JSON Schema.

    2. 2

      Adicione o parâmetro outputFormat

      Inclua o parâmetro outputFormat nas opções de sua query com type: "json_schema" e sua definição de schema.

    3. 3

      Execute sua query

      O agente usa qualquer ferramenta que precisar para completar a tarefa (operações de arquivo, comandos, pesquisa na web, etc.).

    4. 4

      Acesse a saída validada

      O resultado final do agente será JSON válido correspondendo ao seu schema, disponível em message.structured_output.

    Recursos de JSON Schema suportados

    O Agent SDK suporta os mesmos recursos e limitações de JSON Schema que Saídas Estruturadas de API.

    Recursos principais suportados:

    • Todos os tipos básicos: object, array, string, integer, number, boolean, null
    • enum, const, required, additionalProperties (deve ser false)
    • Formatos de string: date-time, date, email, uri, uuid, etc.
    • $ref, $def, e definitions

    Para detalhes completos sobre recursos suportados, limitações e suporte a padrões regex, consulte Limitações de JSON Schema na documentação da API.

    Exemplo: agente de rastreamento de TODO

    Aqui está um exemplo completo mostrando um agente que pesquisa código para TODOs e extrai informações de git blame:

    O agente usa autonomamente as ferramentas certas (Grep, Bash) para reunir informações e retorna dados validados.

    Tratamento de erros

    Se o agente não conseguir produzir saída válida correspondendo ao seu schema, você receberá um resultado de erro:

    for await (const msg of query({
      prompt: 'Analyze the data',
      options: {
        outputFormat: {
          type: 'json_schema',
          schema: mySchema
        }
      }
    })) {
      if (msg.type === 'result') {
        if (msg.subtype === 'success' && msg.structured_output) {
          console.log(msg.structured_output)
        } else if (msg.subtype === 'error_max_structured_output_retries') {
          console.error('Could not produce valid output')
        }
      }
    }

    Recursos relacionados

    • Documentação de JSON Schema
    • Saídas Estruturadas de API - Para chamadas de API única
    • Ferramentas personalizadas - Defina ferramentas para seus agentes
    • Referência do SDK TypeScript - API TypeScript completa
    • Referência do SDK Python - API Python completa
    • Por que usar saídas estruturadas
    • Início rápido
    • Definindo schemas com Zod
    • Início rápido
    • Definindo schemas com Pydantic
    • Como funcionam as saídas estruturadas
    • Recursos de JSON Schema suportados
    • Exemplo: agente de rastreamento de TODO
    • Tratamento de erros
    • Recursos relacionados
    import { query } from '@anthropic-ai/claude-agent-sdk'
    
    // Defina estrutura para extração de TODO
    const todoSchema = {
      type: 'object',
      properties: {
        todos: {
          type: 'array',
          items: {
            type: 'object',
            properties: {
              text: { type: 'string' },
              file: { type: 'string' },
              line: { type: 'number' },
              author: { type: 'string' },
              date: { type: 'string' }
            },
            required: ['text', 'file', 'line']
          }
        },
        total_count: { type: 'number' }
      },
      required: ['todos', 'total_count']
    }
    
    // O agente usa Grep para encontrar TODOs, Bash para obter informações de git blame
    for await (const message of query({
      prompt: 'Find all TODO comments in src/ and identify who added them',
      options: {
        outputFormat: {
          type: 'json_schema',
          schema: todoSchema
        }
      }
    })) {
      if (message.type === 'result' && message.structured_output) {
        const data = message.structured_output
        console.log(`Found ${data.total_count} TODOs`)
        data.todos.forEach(todo => {
          console.log(`${todo.file}:${todo.line} - ${todo.text}`)
          if (todo.author) {
            console.log(`  Added by ${todo.author} on ${todo.date}`)
          }
        })
      }
    }