Your agents make decisions, and nobody can answer for them. TypeFuse makes every decision answerable. Your agent connects to TypeFuse, writes a Decision with worked examples and tests, and asks to ship it. A person approves the release. Your apps call it and get typed answers, and every call is recorded and sealed, ready to hand over as an evidence pack.
Tested
Evals against your real cases
Shipped
Approved, versioned, traceable
Decided· your model
TypeSafe Jev, the latest, with OpenAI GPT-6 Luna, Cloudflare Clef and Microsoft Decision-1 soonTypeSafe JevLatestOpenAI GPT-6 LunaSoonCloudflare ClefSoonMicrosoft Decision-1Soon
Recorded
Every call and answer, sealed
Your agents make decisions, and nobody can answer for them. Who changed it? Was it tested? Why did it say yes? TypeFuse makes every decision answerable.
Connect your agent. One line installs TypeFuse in your agent, then you sign in and choose your organisation.
Ask for a decision. Your agent writes the contract, adds worked examples and tests it: 24 of 24 passed.
You approve, and it ships: a pinned release with a semantic version. Your agent asks; a second person approves.
Every call gets a typed answer. Your apps call the live release; TypeFuse validates the input, decides and records the run.
Every answer is on record: the input, release, model and answer of every call, sealed, ready to hand over as an evidence pack.
Your agents make decisions.
Nobody can answer for them.
Make your first decision answerable.
Every decision✓built✓tested✓on record
TypeFuseFrom agent to audit.
How it works
01 · Build
Define it once
Write down the question, the facts it needs and the rules to follow. It's kept as YAML or JSON, beside your code.
state_schemaTyped inputJSON Schema for what callers send. Invalid input is refused before the model is asked.order_total: number · days_since_delivery: integer · reason: string
contextPolicyStatic rules and reference material, versioned with the decision.policy: Refund within 30 days of delivery…
questionsNative answersQuestions in TypeSafe's own types: a noul for yes or no, a choice for one of a set, a score for a level on a scale.eligible: noul · route: choice (approve, review, decline)
02 · Test
Prove it on real cases
Worked examples show anyone what you meant. Real cases you confirm become tests, and an evaluation compares recorded answers, so it always gives the same result.
Core test setExampleEvaluated against release 1.4.0
42 of 42 confirmed cases matchedConfirmed cases42 / 42Matched
CaseExpectedReturned
Damaged on arrival, day 12Expected approve, returned approve, matched
Changed mind, day 41Expected decline, returned decline, matched
Partial refund requestedExpected review, returned review, matched
Repeatable: an Evaluation compares the answers a Test run recorded, so reading it again gives the same result.
03 · Ship
Ship it, then keep watch
Publishing freezes a version you can always return to. Your application picks up compatible changes on its own; a breaking change waits until you choose it. Once it's live, every call is measured and on record.
Releasesacme/refundsExample
Release lines for acme/refunds.
1.0.0, first release: the first input and answer contract.
1.3.0, behaviour change: added the route question.
1.3.2, patch: clarified the review criteria.
1.4.0, behaviour change: damaged goods always qualify. Live in production.
2.0.0, major release with a new contract: a new required input field. It starts the 2.x line.
Your application accepts ^1.2.0, meaning 1.2.0 or later and below 2.0.0, so it is served 1.4.0.
1.x2.x^1.2.0>=1.2.0 <2.0.01.0.0First release1.3.0Behaviour1.3.2Patch1.4.0LiveBehaviour2.0.0Major · new contractYour applicationaccepts ^1.2.0
1.x2.x^1.2.0>=1.2.0 <2.0.01.0.0First release1.3.0Behaviour1.3.2Patch1.4.0LiveBehaviour2.0.0Major · new contractYour applicationaccepts ^1.2.0
Callers accepting ^1.2.0 get 1.4.0. The new contract in 2.0.0 waits on its own major line until they opt in.
MonitorLast 14 days
10,790calls · 410 ms typical
approve 71%review 22%decline 7%approve up 9 points on last week
AuditIntact
10,790 of 10,790 calls sealed
Every call keeps its input, release and answers. Download an evidence pack for any period.
Write the Definition on screen, with the assistant suggesting fixes as you go. Then test it and ship it from the same page, which always shows the next step.
Versionsacme/refunds1.4.0 · LiveExample
Latest release1.4.0Behaviour
Callers stay compatible, but the same input may be judged differently. Evaluate before promoting it.
Published and live in production.
1.4.0Behaviourproduction42 of 42 cases agreedYou · just now
1.3.2Patch42 of 42 cases agreedSarah Mitchell · 3 days ago
1.3.1Patch42 of 42 cases agreedJames Carter · 2 weeks ago
An example Decision, acme/refunds, taken from a draft change to a live release. Build: the route question's instructions are written, and the draft compiles. Assistant: the assistant review finds that escalate doesn't say what to do with partial refunds, suggests a fix and the fix is accepted into the draft. Test: the Core test set runs, and all 42 confirmed cases match. Ship: 1.4.0 is published and goes live in production.
Audit
Every outcome, traced.
When someone asks why a decision went the way it did, the answer is already recorded, and nothing can be quietly rewritten.
Why did it answer that?Intact
Input
Damaged on arrival, day 12
Release
1.4.0 · accepts ^1.2.0
Model
jev-1.13.0
Answer
route: approve 0.91
Sealed
chain head 9f2c 71be
An evidence pack covers any period for a review, with the proof that nothing in it has changed.
Audit
Every outcome, traced.
When someone asks why a decision went the way it did, the answer is already recorded. It is there for your compliance team, for an auditor checking your controls and for the customer asking why their refund was declined.
Every call keeps
The input your application sent, checked against the Decision's schema
The release that answered it, and the exact model version
Every answer, with its probabilities
When it was asked, and which application asked
Every release keeps
The Test set it was evaluated against, and the result
Who approved it, when your organisation asks for a second person
What changed since the release before it
Nothing can be quietly rewritten. Calls and changes are sealed into a chain within a minute of being recorded, so anyone can check the record is intact.
For a review, download an evidence pack for any period: a summary of every release that was live, how it was tested, who approved it and the calls it answered, with the records themselves and the proof that none of them has changed.
Why did it answer that?Example
Call: ·run_01J9Q4·, production. one record for every call
Decision: ·acme/refunds. identified by organisation and name
Release: ·1.4.0·, Behaviour·, accepts ^1.2.0. the exact contract the caller accepted
Plan: ·4c1e 9a02·, compiled from the Definition. what the model was actually asked
Input: ·sha256 9f2c 71be·, stored with the run. replayable, byte for byte
Evidence: ·Core test set·, 42 of 42 matched. what this release was measured against
Answer: ·route→choseapprove·, probability 0.88. what the caller received
Answered in 412 ms, with its record kept for audit.
Evidence packA PDF summary, the records and their proof, in one zip.Sample
TypeFuseEvidence pack
Refundsacme/refunds · release 1.4.0Evidence for 1–30 September 2026Generated 1 October 2026 at 09:30 UTC
Prepared for Acme by Sarah Mitchell.
Calls
3,184
Releases live
2
Sealed
100%
In this pack
summary.pdfThis summary
calls.csvEvery call, with its release and answers
changes.csvEvery change to the Decision
evaluations.jsonTest runs and their results
seals.jsonThe proof the records are unchanged
Evidence pack · acme/refunds · 1–30 September 2026
Releases live in this period
1.4.0 r12 · production · Live from 2 SeptemberApproved by James Carter, 2 September 2026 at 10:12 UTC
Evaluations and calibration
Core test set · cases agreeing 42 of 42 (100%)
Approvals
Deploy 1.4.0 r12 to production: asked by Sarah Mitchell, approved by James Carter
Calls
The Decision answered 3,184 calls in this period, 2 of which failed.1.4.0 · 3,071 calls · 1.3.2 · 113 calls
Proof that these records have not changed
Sealed calls 3,184 of 3,184 · 1,906 sealsIntactchain head 9f2c71be…4c1e
TypeFuse · acme/refundsPage 2 of 6
Private preview
Own your next decision.
Put the decisions AI makes for your business under your control, with a record you can stand behind.