What's new in 2.0¶
tuvl 2.0.0 (released 20 October 2026; public beta 2.0.0b3 until then — see Installation) is a redesign: workflows are graphs of typed agents, every run is durable and journaled, and projects are built spec-first. There is no 1.x compatibility layer — 1.x workflows fail to load with an error pointing at the 2.0 format. The full list of changes is in the changelog.
Highlights¶
-
Typed agents, seven engines
code,tool(db / http / mcp),decide,llm,loop,human,pending— one contract (inputs,outputs, signals) for all of them. Named ends replaceResponsesteps. Engines -
Checked before it runs
tuvl validatechecks contracts, data flow, types and policy (V001–V029) and prints each workflow's determinism profile and worst-case token cost. Agentic Manual -
Durable runtime
Runs, journal and checkpoints in Postgres; leases so any worker continues any run; waits for people and tool approvals; compensation; pause, resume, abort, steer; replay. Runtime
-
Rules first, models bounded
decideevaluates rules before a decision model and never falls back silently;loophas hard budgets, per-tool approval and a supervisor; judges are calibrated and cached. Decide · Loop and tools · Judges -
Spec-driven
The coding agent builds; tuvl referees.
tuvl spec checkchecks the spec,tuvl spec verifychecks the build against it, and task status is derived, never self-reported.tuvl codegen,tuvl testandtuvl lockare deterministic;tuvl mcpand 13 skills for coding agents. Spec-driven development -
Insight 2.0
Specs and task board, a canvas over the same YAML, runs with breakpoints and step mode, approvals, change-engine checks against pinned fixtures, judge calibration. Insight
-
REST, SSE, MCP
gRPC is gone. OpenAPI is generated from contracts; workflows can be exported as MCP tools;
@tuvl/client2.0 generates typed clients. API -
Ship and scale
tuvl shipgates on validation and the lock and pins the engine version; the Helm chart can split API and worker pods. CLI
From 1.x to 2.0¶
| 1.x | 2.0 |
|---|---|
steps: with kind: step types |
agents: with an engine: (version: tuvl/v2) |
Functional + @node |
code agent + @agent, typed In/Out from tuvl codegen |
ModelOp, APICall, MCP |
tool agent: use: db \| http \| mcp |
Router |
decide agent (rules, then an optional decision model) |
Agent (mode: completion / autonomous) |
llm agent / loop agent |
HumanInTheLoop + POST /api/workflows/resume |
human agent + POST /api/approvals/{id} |
Response step |
named ends in spec.outputs |
kind: test + LLM judge config |
kind: Test (offline, mocks, replay) + type: judge artifacts |
| Lens / Spectrum | Insight Runs page, breakpoints, step mode, Probe |
| gRPC / gRPC-Web | REST + SSE; MCP export |
/models/* CRUD for every model |
CRUD only for models with spec.api.crud |
The examples show every pattern on 2.0.