Loading...
    0
    • Guia do Desenvolvedor
    • Referência da API
    • Protocolo de Contexto do Modelo (MCP)
    • Recursos
    • Notas de Lançamento
    Search...
    ⌘K
    Primeiros passos
    introget-started
    Modelos e preços
    overviewchoosing-a-modelwhats-new-claude-4-5migrating-to-claude-4model-deprecationspricing
    Criar com Claude
    overviewworking-with-messagescontext-windowsclaude-4-best-practices
    Capacidades
    prompt-cachingcontext-editingextended-thinkingstreamingbatch-processingcitationsmultilingual-supporttoken-countingembeddingsvisionpdf-supportfilessearch-resultsstructured-outputsclaude-for-sheets
    Ferramentas
    overviewimplement-tool-usetoken-efficient-tool-usefine-grained-tool-streamingbash-toolcode-execution-toolcomputer-use-tooltext-editor-toolweb-fetch-toolweb-search-toolmemory-tool
    Habilidades do Agente
    overviewquickstartbest-practicesskills-guide
    SDK do Agente
    overviewtypescriptpython
    Guias
    streaming-vs-single-modepermissionssessionsstructured-outputshostingmodifying-system-promptsmcpcustom-toolssubagentsslash-commandsskillscost-trackingtodo-trackingplugins
    MCP na API
    mcp-connectorremote-mcp-servers
    Claude em plataformas de terceiros
    claude-on-amazon-bedrockclaude-in-microsoft-foundryclaude-on-vertex-ai
    Engenharia de prompts
    overviewprompt-generatorprompt-templates-and-variablesprompt-improverbe-clear-and-directmultishot-promptingchain-of-thoughtuse-xml-tagssystem-promptsprefill-claudes-responsechain-promptslong-context-tipsextended-thinking-tips
    Testar e avaliar
    define-successdevelop-testseval-toolreduce-latency
    Fortalecer proteções
    reduce-hallucinationsincrease-consistencymitigate-jailbreakshandle-streaming-refusalsreduce-prompt-leakkeep-claude-in-character
    Administração e monitoramento
    administration-apiusage-cost-apiclaude-code-analytics-api
    Console
    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:

    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}`)
          }
        })
      }
    }

    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

    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