Policy and presets
Settings for streaming text, tool updates, response status, announcement channels, timing, and queue limits.
PresetName
Each preset defines a complete set of default values.
| Preset | Streaming | Status updates |
|---|---|---|
| minimal | Restrained | Final states |
| balanced | Sentence-paced | Useful status |
| verbose | More frequent | Progress enabled |
| completion-only | Final text only | Minimal |
PolicyOverrides
Nested overrides merge with the selected preset. Unspecified values remain controlled by that preset.
const runtime = createGenerativeA11y({
preset: "balanced",
policy: {
text: { minimumCharacters: 48, maximumDelayMs: 1_800 },
tools: { announceProgress: false },
minimumGapMs: 900,
maxQueueSize: 64,
},
});How this code works
- 01Keep a tested baseline
balanced continues to supply every property not shown.
- 02Tune useful differences
Text becomes less fragmented and tool progress remains quiet.
- 03Keep work bounded
maxQueueSize prevents an inactive consumer from creating unlimited pending output.
Options and return values
text.strategyTextStrategyOptional
Selects silent, sentence, paragraph, or completion segmentation.
- Default
preset value
text.minimumCharactersnumberOptional
Avoids tiny fragments except when a terminal or maximum-delay flush applies.
- Default
preset value
text.maximumDelayMsnumberOptional
Bounds how long useful buffered text waits for a natural boundary.
- Default
preset value
minimumGapMsnumberOptional
Paces adjacent intents to reduce interruption and overlap.
- Default
preset value
dedupeWindowMsnumberOptional
Suppresses equivalent recent output.
- Default
preset value
maxQueueSizenumberOptional
Bounds scheduler candidates and favors content over status during eviction.
- Default
preset value
maxActiveEntitiesnumberOptional
Bounds response and tool identity state and fails closed after capacity.
- Default
preset value