Bot
Complex work becomes a list of small requests.
Separator reads a long ask, breaks it into typed parts, and calls a different model for each part. The list is the result. Nothing is merged in secret.
Fan-out
One ask becomes a list of hops.
Close the month, write the summary, and check the contract. The sentence holds three jobs. Allow keeps the lanes you permit and marks the rest pending. The parts come back unmerged. They are not rewritten into one paragraph.
Close the month, write the summary, and check the contract.
ops-1
Close the month
workflow
write-1
Write the summary
prose
reason-1 pending
Check the contract
judgment
Fanout<Request, Part[]> · a local split, no model call
Fan-out
The list is the result.
Bot is the name for Fanout<Request, Part[]>. Each part names its type and its lane. If your system needs a strict order, sequence the calls yourself from parts you already accept. Do not infer a pipeline from the order of the sentences.
Close the month, write the summary, and check the contract.
- Close the monthops-1
- Write the summarywrite-1
- Check the contractreason-1
A missing lane
A refused part does not borrow another.
If the allow-list permits ops-1 and write-1 but not reason-1, the close and the summary still return. The judgment is pending. Separator does not send that judgment to write-1 to fill the gap.
- Close the monthops-1
- Write the summarywrite-1
- Check the contractpending
Separator
Put a typed route in front of the models you already call.
Decision
explanation
reason-1
4.2 ms