What the model is
Amazon Nova 2.5 Sonic (Bedrock model id amazon.nova-2-5-sonic), generally available October 5, 2026. Same bidirectional streaming API and the same token prices as Nova 2 Sonic: speech $3 in / $12 out, text $0.33 in / $2.75 out per million tokens (AWS Price List, us-east-1).
How the harness was built
voice-agent-harnesses/aws/harness.py talks Bedrock directly. Nova requires an open USER audio content stream for the whole prompt. While the caller is quiet the bridge feeds silent PCM (512 frames at 16 kHz, about 32 ms, NOVA_SONIC_SILENCE_CHUNK_S default 0.03 s) so the stream does not idle out. Silence alone yields usage events. Speak-first is an interactive USER text block (default ".") after that audio stream is live. The pack owns the greeting words.
Industry tools POST to the state API. Session tools hang up after the delayed close. Barge-in follows Nova's provider interrupted event. The adapter does not mute on CHIRP VAD alone.
Multi-agent assumptions
Nova fixes tools at promptStart. A specialist handoff therefore opens a new Bedrock stream for the target agent. The new stream would otherwise cold-open, so the harness seeds it with the caller's last line and a short continue-do-not-greet system note (handoff_seed_text). That is the glue the Robin / Hal / Kestrel DAG needs on Sonic.
infer_schedule_appointment is the same verbal-booking recovery used on Grok. Today's date is injected into every session's instructions. Default voice: matthew.
Runtime
Audio: Nova PCM 16 kHz in, 24 kHz out, bridged to CHIRP 16 kHz pcm_s16le. Tool POST timeout: 30 s. Hangup delay: 2.5 s. Local CHIRP port: 8774.
Amazon's Bedrock streaming library shares state across a whole process. Two calls in one interpreter cancel each other. adapters/chirp.py is a TCP parent that never imports that client; each accept spawns adapters/chirp_call.py in a fresh Python process and passes the socket fd. One container still takes many calls. CPU and memory bound the count.
Deployment
Same harness code, prompts, tools, and digital humans as Nova 2 Sonic; the model id is selected by the env-only variant aws/[email protected] (voice-agent-harnesses/aws/nova-sonic/variants.json). The opening session speaks the pack's greeting, as the Grok and OpenAI harnesses do.
Bedrock allows 20 concurrent Nova 2.5 Sonic streams per account, shared across industries, so the three packs ran one at a time at 16 concurrent calls.
Source: mivas-bench, run.py, k8s/deployment.yaml.