Post-training platform
You are responsible for your company’s AI. Zero Proof turns what your agent does in production into training data, trains a model that is yours with reinforcement learning (RL) or supervised fine-tuning (SFT), hosts it, and shows you the before and after.
$ pip install zeroproof
import zeroproof.simulations as zps# 1. generate conversations from your agent's tools and promptdata = zps.simulate(tools=my_tools, system_prompt=my_prompt, mode="rl")# 2. score every conversation with your graderscored = data.grade(judge=my_judge)scored.pass_at # how often it passes# 3. keep the useful ones and publish the datasetrows, report = zps.optimize(scored, mode="rl")entry = zps.push_rows(rows, "support-rl-v1", gate=True, mode="rl")# 4. train; the run reports its loss curve to the platformrun = zps.training_run("support-rl-v1", dataset=entry["datasetId"], base_model="Qwen/Qwen3-4B")
Platform
Connect production
Set three environment variables in your app. Every conversation your agent has shows up here with a score.
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://api.zeroproofai.com/v1/traces
See what fails
A list of the requests your agent gets wrong and how often, grouped by what the customer asked for.
zps.trace_report(rows)
Generate training data
We simulate your agent against those situations, with made-up customers and tools that fail on purpose, and score every conversation. No annotators.
zps.simulate(tools=my_tools, system_prompt=my_prompt)
Train a model of your own
One call or one button. Supervised fine-tuning (SFT) on the good conversations, GRPO (on-policy RL against a verifiable reward) or DPO (offline, each prompt's pass against its fail). Loss, reward and pass@1 before and after on the run page. Or pull the dataset into your own training setup.
run = zps.train("ds_…", method="grpo", holdout="ds_…")
Run it on our endpoint
Your model is served behind an OpenAI-compatible URL. Swap it into your app by changing one setting. The weights stay yours.
OpenAI(base_url="https://…modal.run/v1")
Prove it worked
Every dataset ships with a test set the model never saw. Run it before and after training. The number moves or it does not.
zps.delta_report(before, after, target="pass_at_1")
Results
6x
more tasks passed after one training run on a $15 dataset
open 8B model
support test
Same number of examples as the expert set, none written by a person. Method
1/100th
the cost of frontier models, 5 to 13 points behind them on refund checks
1B model
right answers vs cost
Trained on simulated marketplace conversations. The model, data and test set are public. Method
You own the company’s AI
You need a model that is yours, gets better every month, and comes with a number that proves it did.
Get startedYou ship an agent to customers
You need to know before customers do when a prompt change or a model upgrade made things worse.
Connect productionYou train models
You need scored data with a clean test set, not a pile of logs. Pull a dataset and go.
Datasets on Hugging FaceDatasets
Scored datasets for customer-support and coding agents. One call optimizes a set for reinforcement learning (RL) or supervised fine-tuning (SFT): it keeps the examples a model can still learn from and drops the rest. Each ships with a test set, and one call publishes it to Hugging Face or imports one from there.
Research
Guide
Character training with Zero Proof
A constitution, a judge that reads it, length-matched pairs, and a before-and-after number.
Docs
How training data gets made
How one training example gets made, shown on a real airline agent.
Post
Simulated data pipeline for fine-tuning
A $15 simulated training set beat expert-written examples on a public support test.
Post
Safety judges for agentic commerce
A 1B refund checker trained inside a simulated marketplace.
Questions
Start
You get an account and an API key from the terminal. Free to start.
pip install zeroproofzeroproof signup --email you@company.comzps.simulate(spec="specs/github", budget=20)