I added two entries to my languages for agents page this week, BAML and Hyperlambda. They landed either side of Vera in the verification table, and putting them next to each other made something visible that the camp labels hide. Both accept that a model will produce wrong output. They disagree about when to do something about it.
Here we will explore the four moments these languages pick:
- before generation, by giving the model less room to be wrong
- at parse time, by repairing output that nearly fits
- before execution, by refusing to run anything unapproved
- after failure, by making the error cheap to act on
Before generation
ilo is mine, so I will state its position and its cost. Prefix notation, positional arguments, fixed short aliases, one canonical form per operation. The bet is that a smaller surface produces fewer wrong programs and shorter right ones.
The cost is the spec. A model cannot write ilo without loading it, and in a closed-loop benchmark run on 2026-08-11 the input token counts per task ranged from 5,689 to 55,211 against Python’s 194 to 312. Constraining the surface means describing the surface, and the description is not free.
Mog takes the same position with a tighter budget, shipping a full spec in about 2,700 tokens.
At parse time
BAML lets the model write whatever it writes and fixes the result. Their schema-aligned parsing repairs unquoted strings, missing brackets, missing commas and colons, misnamed keys, and strips prose that surrounds the intended output. The stated principle is Postel’s law: transform imperfect output rather than reject it.
Boundary’s own figures on the Berkeley Function Calling Leaderboard put this at 92% against 87.5% for gpt-3.5-turbo function calling, n=1000. Those are vendor-run, and the comparison scores their compressed schema against JSON schema, so the columns are not measuring the same thing.
Worth being clear about what a repair buys. It removes a retry, which is a real cost, and it says nothing about whether the repaired output was right. A misnamed key corrected to the nearest schema field is a guess that happens to typecheck.
BAML is also two products under one name. The baml_language compiler directory first appears on 2025-11-01, and the older prompt DSL was rebranded as v0 on 2026-07-30, so the repository runs 0.225.0 and 0.15.1 nightlies side by side.
Before execution
Hyperlambda moves the check to the last possible moment. Programs are node trees rather than free-form text, so generated code arrives as an executable AST, gets structurally validated, and only whitelisted invocations run. Their framing is that the model proposes and the runtime decides.
This is the position I expected to find retrofitted and did not. whitelist-invocation.hl dates to 2022-12-28, two days after the first OpenAI commits in that repository on 2022-12-26. Value-level whitelisting followed on 2025-11-28 and sandbox path hardening on 2026-04-20. The agent framing on their site is 2026, and no commit subject in 2026 mentions agents at all.
The tradeoff is that nothing upstream improves. The model still produces whatever it produces and the tokens are still spent before the gate sees any of it.
After failure
Zero puts its effort into the error. Structured JSON diagnostics carrying repair plans, on the theory that a failure the model can act on costs one cheap turn rather than an expensive guess. ilo does a smaller version of this with stable ILO-P/T/R codes, and Codong returns fix and retry fields as JSON.
Zero itself has gone quiet. Commits on the default branch over the thirteen weeks to 2026-08-11 run 120, 356, 251, 243, 210, 5, 1, and then seven consecutive weeks of zero. The last tagged release is v0.3.4 on 2026-06-13. The repository is not archived and the last push was 2026-07-26, so this is a pause rather than an ending, but my own comparison page still lists it as active and I need to look at that.
What the four have in common
Three of these repositories describe themselves as the programming language for agents. Zero’s GitHub description says “The Programming Language for Agents”, BAML’s says “The programming language for agents”, and ilo has been making the same claim since February. Three claimants means the phrase separates none of them.
The useful distinction is the one above. A team choosing between them is choosing where to spend: on a smaller surface and a spec to load, on a repair pass and the guesses it makes, on a runtime gate and the tokens already spent reaching it, or on diagnostics and the extra turn they buy.
None of the four measures what the others’ choices cost. Each publishes the number its own choice improves, so all four sets of published figures point the same way.