Voice
Speech in. Actions beside it, not inside it.
Audio is typed as speech and routed to speech-1. A follow-up hiding in the same utterance is split into its own call.
Speech lane
Speech in. The action stays beside it.
Audio is typed as speech. speech-1 returns a transcript. If the same utterance also asks for a booking, that job is workflow and leaves on ops-1. Refuse ops-1 and the words still come back. The bars do not listen, and this page does not call speech-1.
Transcribe the call and book Friday.
ops-1Book Friday.
Fanout · speech-1 returns the words, ops-1 books Friday
The hop
Audio arrives as a transcript.
When the request is only the recording, the contract is Route<Audio, Transcript>. The words are the thing you can store, quote, and hand to a person. Generation time on the lane is not the routing decision.
Transcribethecall.
Route<Audio, Transcript> · speech-1
Split
A follow-up does not hide in the sentence.
Transcribe the call and book Friday is two types. speech-1 returns the transcript. ops-1 receives the booking as a workflow part. The next system does not have to notice a calendar change buried in the words.
Transcribe the call and book Friday.
speech-1Transcribe the call.
ops-1Book Friday.
Allow
You can refuse the action and keep the words.
A desk can allow speech-1 and refuse ops-1. The transcript still returns. The booking is pending, and a person moves the calendar. A system that books from text does not need this lane at all.
Transcribe the call.
ops-1 pendingThe booking waits. The transcript stands.
Separator
Put a typed route in front of the models you already call.
Decision
explanation
reason-1
4.2 ms