Post-training a 4B Rust coding agent with verified synthetic traces, full SFT, verifier RL, pass@8 evaluation, and a live TUI.
ASSISTANT CALL read_file {...}
TOOL RESULT src/lib.rs
ASSISTANT CALL apply_patch {...}
ASSISTANT CALL cargo_test {...}
TOOL RESULT 4 passed
ASSISTANT FINAL: fixed and tested
The full conversation is the training unit. Real Cargo execution verifies the
data and rewards. verifiers owns the environment; PRIME-RL runs RL.
Write-up · Environment · SFT model · Dense RLVR · Evaluation files
valid@8: at least one of eight rollouts passes Cargo and ends with one clean
FINAL.
| Model | valid@8 / 150, retained runs |
|---|---|
| SFT | 95 |
| Sparse RLVR | 98 / 96 / 98 |
| Dense RLVR | 102 |
| Compiler-aware RLVR | 95 / 96 / 94 |
No retained-run comparison reached p < 0.05.
Methodology and interpretation
Requires Python 3.10+, Cargo, and rustc.
git clone https://github.com/JayZenith/GLYPH.git
cd GLYPH
python3 -m venv .venv
source .venv/bin/activate
pip install -e environments/glyph
vf-eval glyph -m <your-model> -n 20 -r 5The TUI shows the exact ChatML system, user, assistant, and tool turns while the model patches a disposable Rust crate.
Run the live vLLM demo or offline preview
Model-edited Rust is arbitrary code. Use a disposable VM, container, or isolated job. Host Cargo execution is the default; Bubblewrap is opt-in.