Pick a branch
Give it the options. Get a probability on every one of them, not a paragraph you have to parse. Bounded choices, one call.
Which team gets this ticket. Which tool to call next. Is this urgent, yes or no. esac is one endpoint for that moment: hand it what you know and the branches you are choosing between. It hands back the branch, and how sure it is.
case "$ticket" in billing) route billing ;; sales) route sales ;; retail) route retail ;; esac # where the case resolves
case opens the block and esac closes it. Somewhere in between, the program commits to a branch.state: "Help! My payouts have been
failing for 3 days!"
ask: which team? billing, sales, retail
-> billing 0.844
retail 0.091
sales 0.064
Give it the options. Get a probability on every one of them, not a paragraph you have to parse. Bounded choices, one call.
A yes/no that comes back as a number between 0 and 1. A score against a rubric you wrote. Answers shaped like a type, so your code can act on them without a second model to read the first one.
Every answer carries a confidence. High, act. Low, hand it to a person. That one number is the whole reason this class of model exists.
A new class of model appeared this fall: decision models. They cannot write a sentence. They take a state and a set of declared questions and return calibrated probabilities over the answers, in a single forward pass. TypeSafe shipped the first one, Jev. Amazon's Strands Labs open-sourced a two-billion-parameter one you can run yourself. OpenAI announced its own.
esac would be the thin layer in front of whichever you pick: three primitives, choice, score and a yes/no, over HTTP, with the backend swappable. Hosted when you want speed and scale. Local when the data cannot leave the building.
It is not built. There is no API key to ask for and no waitlist. This page is the idea, written down before the code, so the name means something when the code arrives.
And the honest limit of the models themselves, measured rather than assumed: they answer a fully specified question well, and they are poor at finding a comparison you did not spell out. Treat a low confidence as a request for a human, not as an answer.