An end-to-end recipe for a small mobile agent that actually converges.
Built on env0 — synthetic Google Workspace environments, a synthesizer–judge data game, an SFT→RFT pipeline, and a quantized Gemma that runs on-device. The whole loop, open.
What we’re shipping
Four pieces, one pipeline.
What it can do
General-purpose mobile use — verified, end to end.
- User
“Find the dinner Maya suggested in email and put it on my calendar.”
- Agent
Search the inbox for Maya's recent threads about dinner.
- Tool
gmail.searchq="from:maya dinner" → 3 threads, 1 with a proposed time
- Agent
Extract the restaurant and the proposed Friday 7:30pm slot.
- Tool
gcal.list_eventsFriday 19:00–21:00 → no conflicts
- Tool
gcal.create_event“Dinner with Maya” · Fri 19:30 · Tartine
- Verify
event exists, correct title + time, no double-book → reward 1.0
Also handles
- Search emails & calendar
- Find restaurant / flight / event info
- Send mail & manage invites
- Take notes & prep for meetings
- Drive: tally calories from the last 24h
- Research & summarize
Every task runs against a stateful mock of the real API and is graded by a deterministic verifier — so a passing trajectory means the work actually got done, not that it looked plausible.