Weave

Structured Output & Streaming

Force JSON schema compliance and stream token responses.

Structured Outputs & Self-Repair

Structured Outputs guarantee that agent text responses conform exactly to a strongly typed Zod schema, triggering automatic LLM self-repair retries when validation errors occur.


Defining an Output Schema

import { AgentBuilder, OpenAIAdapter } from 'Weave';
import { z } from 'zod';

const ExtractionSchema = z.object({
  entityName: z.string(),
  category: z.enum(['technology', 'finance', 'healthcare']),
  confidenceScore: z.number().min(0).max(1),
});

type Extraction = z.infer<typeof ExtractionSchema>;

const adapter = new OpenAIAdapter({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o' });

const agent = new AgentBuilder()
  .name('Extractor')
  .instructions('Extract structured classification metadata from raw input text.')
  .llm(adapter)
  .outputSchema(ExtractionSchema)
  .maxSchemaRetries(3)
  .build();

async function run() {
  const result = await agent.run('Acme Corp is a high-growth technology startup.');
  const data: Extraction = JSON.parse(result.output);
  console.log(`Extracted Category: ${data.category} (Score: ${data.confidenceScore})`);
}

run().catch(console.error);