Dapatkan JSON terstruktur dan tervalidasi dari alur kerja agen. Agent SDK mendukung output terstruktur melalui JSON Schemas, memastikan agen Anda mengembalikan data dalam format yang tepat sesuai kebutuhan Anda.
Kapan menggunakan output terstruktur
Gunakan output terstruktur ketika Anda memerlukan JSON yang divalidasi setelah agen menyelesaikan alur kerja multi-turn dengan tools (pencarian file, eksekusi perintah, penelusuran web, dll.).
Untuk panggilan API tunggal tanpa penggunaan tool, lihat API Structured Outputs.
Output terstruktur menyediakan integrasi yang andal dan type-safe dengan aplikasi Anda:
Tentukan skema JSON Anda
Buat JSON Schema yang mendeskripsikan struktur yang ingin dikembalikan oleh agen. Skema menggunakan format JSON Schema standar.
Tambahkan parameter outputFormat
Sertakan parameter outputFormat dalam opsi query Anda dengan type: "json_schema" dan definisi skema Anda.
Jalankan query Anda
Agen menggunakan tool apa pun yang diperlukan untuk menyelesaikan tugas (operasi file, perintah, pencarian web, dll.).
Akses output yang divalidasi
Hasil akhir agen akan berupa JSON yang valid sesuai dengan skema Anda, tersedia di message.structured_output.
Agent SDK mendukung fitur dan batasan JSON Schema yang sama seperti API Structured Outputs.
Fitur utama yang didukung:
enum, const, required, additionalProperties (harus false)date-time, date, email, uri, uuid, dll.$ref, $def, dan definitionsUntuk detail lengkap tentang fitur yang didukung, batasan, dan dukungan pola regex, lihat JSON Schema limitations dalam dokumentasi API.
Berikut adalah contoh lengkap yang menunjukkan agen yang mencari TODO dalam kode dan mengekstrak informasi 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}`)
}
})
}
}Agen secara otonomi menggunakan tool yang tepat (Grep, Bash) untuk mengumpulkan informasi dan mengembalikan data yang divalidasi.
Jika agen tidak dapat menghasilkan output yang valid sesuai dengan skema Anda, Anda akan menerima hasil kesalahan:
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')
}
}
}