v0.10.2 — Runlet backend & TOON result encoding for compose
v0.10.2 — Runlet backend & TOON result encoding for compose
The compose tool gains a second scripting backend — Runlet, a small orchestration language purpose-built for agent tool composition — and an optional TOON encoding for compose results.
What's Changed
Runlet backend (agentkit-tool-compose)
Runlet joins Lua as a compose backend: immutable bindings, dataflow-implicit concurrency, schema-checked tool calls, bounded fan-out, and retry boundaries as language constructs. The Lua backend moves to its own module; backend selection is feature-gated.
TOON result encoding
With the toon feature enabled, ComposeConfig::with_result_encoding(ResultEncoding::Toon) switches the final compose result from compact JSON to TOON (Token-Oriented Object Notation), which renders uniform object lists as a header plus one row per element — smaller than JSON for the list-shaped values compose scripts tend to return. The tool description gains a note explaining the format so the model can read it.
Case study
docs/runlet-case-study.md — The Familiarity Tax — benchmarks Runlet against in-distribution Lua inside the same compose tool: how to teach a model a grammar it has never seen, where the 1.6–1.9× cost gap comes from (hidden deliberation, not context), and what TOON does and does not buy back. Raw runs in benchmarks/compose-bench/results/2026-07-runlet-toon/.
Commits
Full Changelog: v0.10.1...v0.10.2