Self-improving voice AI agents - Roark

Self-improving agents, with you in the loop.

Roark connects post-call analysis to simulation and drafts the fix in between: prompt diffs, model and voice swaps, tool and infra changes, each grounded in the calls that failed. You review, apply and ship. Roark proves the metric moved.

Start free with $50 in credit, no card needed. Works with Vapi, Retell, LiveKit, Pipecat + your stack.

01 · The loop, end to end

One failure, all the way around the loop.

Post-call analysis and simulation are the two halves. Self-improvement is what connects them: the same failure followed from the call that exposed it to the deploy that fixed it, every week, on every agent.

01 · Catch

Post-call analysis catches it

A caller asks for a refund and the agent pays out without verifying identity. Post-call analysis scores the call as it lands, flags the compliance miss, and files it as an issue with the 31 other calls that failed the same way. No one had to be listening.

Live · scoring every call 1,284 today

Caller: I was charged twice, I need a refund.

Agent: No problem, I’ve refunded it to your card.

Identity not verified: Refund issued to an unconfirmed caller. Compliance

02 · Simulate

Simulation reproduces it, then tests the candidates

The failing call becomes a scenario. Roark replays candidate fixes against the exact callers that broke the agent: a softer prompt fails, a model swap fails, adding a verify_identity tool with a verify-first prompt wins. You learn what works before production does.

Testing your candidates 161 / 240

prompt v4 · verify before refund winner · 96

model · gpt-4.1 pass

03 · Review

Roark drafts the fix, you apply it

The winning candidate arrives as an explicit, reviewable change: the prompt edit diffed line by line, the model swap named, the new tool listed. Nothing applies itself. You read it, adjust it if you want, and ship it through your own platform.

Your fix, diffed support_v3 v4

Prompt Model Tool

Swapped reasoning model gpt-4ogpt-4.1

04 · Verify

You ship. Roark confirms the metric moved.

From the first minute after your deploy, every call is scored against the same metric that caught the issue. Recurrence, the quality score, and regressions on every other metric are watched until the fix is confirmed on live traffic, not just in staging.

Verifying support_v4 in production fix confirmed

Pronunciation, since your deploy 71 → 94

Issue recurrence none in 1,000 calls

Quality score 94 ↑

Regressions on other metrics none

… and the loop runs again on the next call.

02 · Drafted fixes

Roark doesn't just file the bug. It drafts the fix.

Prompt diffs, model and voice swaps, tool and infra changes. Every suggestion cites the failing calls it came from and is replayed in simulation before it ever reaches you.

Prompt optimizer

Evidence-grounded prompt edits, diffed line by line against the version that failed, citing the calls that motivated each change.

Model & voice fixes

Reasoning model swaps, TTS changes and phoneme hints for the failures an edited prompt cannot reach.

Tool & infra fixes

Missing tools, streaming settings and latency changes, because sometimes the problem was never the wording.

You stay in control

Nothing applies itself. Every change is explicit, reviewable and yours to accept, adjust or throw away.

Suggested fixes · booking_v24 drafted · proven in sim

Prompt Verify identity before issuing refunds sim 61 → 92

Infra Stream responses to cut dead air 4.2s → 0.9s

Voice Phoneme hints for drug names sim 71 → 94

Model gpt-4o → gpt-4.1 on reasoning turns sim pass

Where this goes

Next: the loop closes itself.

An agent can only improve itself if it can measure itself. That's why we built evals and simulation first.

Shipping today

Roark catches the issue, drafts the fix and proves it

Every call scored on the audio, every failure reproduced in simulation, and the fix drafted for you: the prompt edit, the model swap, the phoneme hint. You review and apply.

In development

Fixes sourced continuously, ranked by simulated wins

Suggestions drawn from production calls as they land and pre-validated against your failing scenarios, waiting in the queue before you go looking.

The thesis

Roark applies it, with your approval, and verifies it live

Building, testing, monitoring and improving collapse into one loop that closes itself.

03 · Get started

First call scored in under a minute.

One click on any platform below and production calls stream in on their own, or send any recording with a few lines of code.

evaluate.ts

import Roark from '@roarkanalytics/sdk'

const client = new Roark({ bearerToken })
await client.call.create({
  recordingUrl, startedAt,
  interfaceType: 'PHONE',
  callDirection: 'INBOUND',
  agent: { customId: 'support_v2' },
}) // scored in seconds

Node · Python, plus a REST API for CI/CD and webhooks the instant a call is scored.

Enterprise-grade from day one: annual pen tests, SSO/SAML, role-based access, configurable retention.