Loading...
    • Guida per sviluppatori
    • Riferimento API
    • MCP
    • Risorse
    • Note sulla versione
    Search...
    ⌘K
    Primi passi
    Introduzione a ClaudeAvvio rapido
    Modelli e prezzi
    Panoramica dei modelliScelta di un modelloNovità in Claude 4.5Migrazione a Claude 4.5Deprecazione dei modelliPrezzi
    Crea con Claude
    Panoramica delle funzioniUtilizzo dell'API MessagesFinestre di contestoBest practice per i prompt
    Capacità
    Prompt cachingModifica del contestoExtended thinkingSforzoStreaming dei messaggiElaborazione batchCitazioniSupporto multilingueConteggio dei tokenEmbeddingsVisioneSupporto PDFAPI FilesRisultati di ricercaOutput strutturati
    Strumenti
    PanoramicaCome implementare l'uso degli strumentiStreaming granulare degli strumentiStrumento BashStrumento di esecuzione del codiceChiamata programmatica degli strumentiStrumento Computer useStrumento Editor di testoStrumento Web fetchStrumento Web searchStrumento MemoryStrumento Tool search
    Agent Skills
    PanoramicaAvvio rapidoBest practiceUtilizzo di Skills con l'API
    Agent SDK
    PanoramicaAvvio rapidoTypeScript SDKTypeScript V2 (anteprima)Python SDKGuida alla migrazione
    Streaming InputGestione dei permessiControllare l'esecuzione con hookGestione delle sessioniCheckpoint dei fileOutput strutturati nell'SDKHosting dell'Agent SDKDistribuzione sicura degli agenti AIModifica dei prompt di sistemaMCP nell'SDKStrumenti personalizzatiSubagenti nell'SDKSlash Commands nell'SDKAgent Skills nell'SDKTracciamento dei costi e dell'utilizzoElenchi di attivitàPlugin nell'SDK
    MCP nell'API
    Connettore MCPServer MCP remoti
    Claude su piattaforme di terze parti
    Amazon BedrockMicrosoft FoundryVertex AI
    Prompt engineering
    PanoramicaGeneratore di promptUsa modelli di promptMiglioratore di promptSii chiaro e direttoUsa esempi (multishot prompting)Lascia pensare Claude (CoT)Usa tag XMLDai a Claude un ruolo (prompt di sistema)Precompila la risposta di ClaudeConcatena prompt complessiSuggerimenti per il contesto lungoSuggerimenti per extended thinking
    Test e valutazione
    Definisci criteri di successoSviluppa casi di testUtilizzo dello strumento di valutazioneRiduzione della latenza
    Rafforza i guardrail
    Riduci le allucinazioniAumenta la coerenza dell'outputMitigare i jailbreakStreaming dei rifiutiRiduci la perdita di promptMantieni Claude nel personaggio
    Amministrazione e monitoraggio
    Panoramica dell'Admin APIAPI di utilizzo e costiAPI Claude Code Analytics
    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
    Guide

    Output strutturati nell'SDK

    Ottieni risultati JSON convalidati dai flussi di lavoro degli agenti

    Ottieni JSON strutturati e convalidati dai flussi di lavoro degli agenti. L'Agent SDK supporta output strutturati attraverso JSON Schemas, assicurando che i tuoi agenti restituiscano dati esattamente nel formato di cui hai bisogno.

    Quando utilizzare output strutturati

    Utilizza output strutturati quando hai bisogno di JSON convalidato dopo che un agente completa un flusso di lavoro multi-turno con strumenti (ricerche di file, esecuzione di comandi, ricerca web, ecc.).

    Per singole chiamate API senza utilizzo di strumenti, vedi Output strutturati API.

    Perché utilizzare output strutturati

    Gli output strutturati forniscono un'integrazione affidabile e type-safe con le tue applicazioni:

    • Struttura convalidata: Ricevi sempre JSON valido corrispondente al tuo schema
    • Integrazione semplificata: Non è necessario codice di parsing o validazione
    • Type safety: Utilizza con suggerimenti di tipo TypeScript o Python per la sicurezza end-to-end
    • Separazione pulita: Definisci i requisiti di output separatamente dalle istruzioni del compito
    • Autonomia dello strumento: L'agente sceglie quali strumenti utilizzare garantendo il formato di output

    Come funzionano gli output strutturati

    1. 1

      Definisci il tuo schema JSON

      Crea uno schema JSON che descriva la struttura che desideri che l'agente restituisca. Lo schema utilizza il formato standard JSON Schema.

    2. 2

      Aggiungi il parametro outputFormat

      Includi il parametro outputFormat nelle opzioni della query con type: "json_schema" e la definizione dello schema.

    3. 3

      Esegui la query

      L'agente utilizza gli strumenti di cui ha bisogno per completare il compito (operazioni su file, comandi, ricerca web, ecc.).

    4. 4

      Accedi all'output convalidato

      Il risultato finale dell'agente sarà JSON valido corrispondente al tuo schema, disponibile in message.structured_output.

    Funzionalità JSON Schema supportate

    L'Agent SDK supporta le stesse funzionalità e limitazioni di JSON Schema di API Structured Outputs.

    Funzionalità chiave supportate:

    • Tutti i tipi di base: object, array, string, integer, number, boolean, null
    • enum, const, required, additionalProperties (deve essere false)
    • Formati di stringa: date-time, date, email, uri, uuid, ecc.
    • $ref, $def, e definitions

    Per i dettagli completi sulle funzionalità supportate, limitazioni e supporto dei pattern regex, vedi Limitazioni JSON Schema nella documentazione dell'API.

    Esempio: agente di tracciamento TODO

    Ecco un esempio completo che mostra un agente che cerca TODO nel codice ed estrae informazioni di git blame:

    import { query } from '@anthropic-ai/claude-agent-sdk'
    
    // Define structure for TODO extraction
    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']
    }
    
    // Agent uses Grep to find TODOs, Bash to get git blame info
    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}`)
          }
        })
      }
    }

    L'agente utilizza autonomamente gli strumenti giusti (Grep, Bash) per raccogliere informazioni e restituisce dati convalidati.

    Gestione degli errori

    Se l'agente non riesce a produrre un output valido corrispondente al tuo schema, riceverai un risultato di errore:

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

    Risorse correlate

    • Documentazione JSON Schema
    • API Structured Outputs - Per singole chiamate API
    • Strumenti personalizzati - Definisci strumenti per i tuoi agenti
    • Riferimento SDK TypeScript - API TypeScript completa
    • Riferimento SDK Python - API Python completa
    • Perché utilizzare output strutturati
    • Avvio rapido
    • Definire schemi con Zod
    • Avvio rapido
    • Definire schemi con Pydantic
    • Come funzionano gli output strutturati
    • Funzionalità JSON Schema supportate
    • Esempio: agente di tracciamento TODO
    • Gestione degli errori
    • Risorse correlate