Your agent alone, or your agent with OpenAdapt

Give your agent a program, not a mouse. OpenAdapt compiles your agent's run of a task into a program it calls as one tool: the same path every time, no screens sent to a model, $0 a run, and every save read back. On 63 timed referrals each, both saved 62; the agent alone cost about $0.08 a run.

Updated 2026-10-18

What OpenAdapt adds to your agent

Your agent aloneYour agent with OpenAdapt
First run of a taskThe agent drives the screenThe agent drives the screen. OpenAdapt records the run, reads the save back from the system of record, and compiles it
Every later runModel calls, screenshots to a provider, a different path each timeThe compiled program runs: 0 model calls, 0 screenshots, the same steps, every save read back
Before each saveThe model judges from the screenFrom the compiled program on, the right record is confirmed first
When the app changesThe agent improvises on live dataThe run stops before saving; your agent shows the fix and a person approves it
When a save may not have landedThe agent judges from the screen, and may retryYour agent gets "not sure if saved", and nothing is retried blindly
What comes backA transcriptAn outcome your agent can act on, and a signed receipt when the save was done and checked

The one case where it adds little: a task you'll run once that saves nothing.

Real recordings, sped up: by hand, an AI agent and OpenAdapt. Synthetic patient.

What your agent brings

  • It can start a new or loosely specified task from a plain-language goal, without anyone recording it first.
  • It can work through screens it has never seen, and choose its next step from what's in front of it.
  • It improves with each model generation, without changing your task.
  • Alone, it can be as correct as a program on simple tasks: on the public OpenEMR demo the agent passed 10 of 10 runs and OpenAdapt's program 19 of 20.

OpenAdapt keeps all of that for the first run and for repairs, and takes the agent off the screen for every repeat.

What we measured

Small samples on test copies with synthetic data. Agent runs used our capped test harness; list-price model fees.
TestAgent aloneOpenAdapt programHow it was judged
openIMIS claim entryClaude Sonnet 5 (claude-sonnet-5), 21 Jul 2026: 3 of 3 correct; $0.48 a run; 69.8 s meanJuly 2026: 3 of 3 checked; 0 model calls; 25.6 to 30.3 sA database read. Different days, not the same baseline
OpenEMR public demo, add a noteClaude Sonnet 5 (claude-sonnet-5), 8 Jul 2026: 10 of 10; about $0.55 a run; 70.4 s median19 of 20; 0 model calls; 39.2 s medianThe same screen check of the saved note for both
Frappe Lending loan applicationClaude Sonnet 5 (claude-sonnet-5), 21 Jul 2026: 6 of 6 correct writes, 5 of 6 clean; $0.42 a run16 Jul 2026: 6 of 6 checkedDatabase reads. Not the same baseline
Local OpenEMR new patientClaude Sonnet 5 (claude-sonnet-5), 21 Jul 2026: 0 of 6; each trial used up its action budget before saving; $0.89 a runNot run in that testA database read
Local OpenEMR referral entry, timed (method)Claude Sonnet 5.5 (claude-sonnet-5-5), 14 to 15 Oct 2026: 62 of 63 saved and matched; 36.5 s median; about $0.08 a run (median); no new chart on the possible duplicate in 9 of 962 of 63 saved and matched; 0 model calls; 29.7 s median; stopped on the possible duplicate in 9 of 9The same database read-back by our test setup for both; medians over the 62 correct runs each

How we timed the referral runs

A local OpenEMR 8.0.0.3 test copy with 8 synthetic referrals, one a possible duplicate of an existing patient. OpenAdapt replayed a program learned from a demonstration that finds each field by the page's structure (0 model calls). The agent was Claude Sonnet 5.5 (claude-sonnet-5-5) with our capped harness, list-price fees. Runs were interleaved in blocks, 14 Oct 22:27 to 15 Oct 05:35 ET, with the browser already open (warm). The clock covers sign-in, the entry and the read-back. Each result was checked by reading the new chart from the database. Every run and every figure on this page is in the published run data.

The 62 runs are the normal referrals saved correctly in blocks 2 to 10, out of 63 new-patient referrals each. We left out block 1 because another process was competing for the CPU during it; with block 1, both saved 69 of 70 and the medians are 29.7 s and 37.6 s (69 runs each). The same task from our earlier 10 Oct recording, compiled without the page's structure, saved 62 of 63 at a 38.6 s median, slower than the agent. Speed and model cost only, on one test copy; agent time depends on model latency on the day.

Technical details

OpenAdapt's program was compiled with DOM element identity at engine commit 0c642bc0. The 10 Oct program was compiled without DOM element identity. The agent ran in our capped computer-use harness with hard cost and action caps.

Per-run counts from the same referral runs. Every OpenAdapt run that saved a chart ran the same 41 steps of this referral program, sent 0 screens to a model and cost $0, and the database read-back matched 12 of 12 fields of the new chart; the runs that stopped saved nothing. In its correct runs the agent took a median of 49 actions and sent a median of 10 screenshots. These counts describe this one workflow on this test copy, not OpenAdapt in general: step and field counts depend on the form.

What OpenAdapt changed, as measured

  • Model cost per entry. $0 for OpenAdapt's normal runs, against about $0.08 a run for the agent in the timed referral runs (median) and up to $0.89 in other tests.
  • The same steps every time. OpenAdapt's program ran the same 41 steps of this referral program in every timed referral run that saved a chart; an agent plans each run as it goes.
  • No screens sent to a model provider in OpenAdapt's recorded runs. A hosted agent sends a screenshot each step; Anthropic offers zero data retention for eligible organizations.
  • Time per entry. 29.7 s median for OpenAdapt against 36.5 s for the agent, over the 62 correct timed referral runs each.
  • The stop on a mismatch, partly measured. On the possible duplicate patient, neither made a new chart in 9 of 9 timed runs. The agent's result on the mistyped insured number isn't published.

Not a difference we claim: correctness on simple tasks. The agent alone matched or beat the program in three of our tests, and matched it (62 of 63) in the timed referral runs. What OpenAdapt adds is the same path, no screens sent, $0 a repeat and a read-back of every save.

How your agent uses OpenAdapt

An agent can do a new task once, and OpenAdapt compiles its successful run into a program, so later runs make no model calls. Or your agent decides what to enter and calls OpenAdapt to make the entry and check it. Both are released and tested on synthetic data.

Technical details

The agent connection is the OpenAdapt MCP server, started with `openadapt agent serve` (launcher 1.17.0, openadapt-agent 2.2.1). Compiling an agent's run into a program is the JIT path in openadapt-flow 2.2.0 (openadapt_flow.jit), tested on a recorded Claude run against a synthetic app.

See For AI agent teams.

Questions

Which model did you test?

Claude Sonnet 5 (claude-sonnet-5) in July 2026 and Claude Sonnet 5.5 (claude-sonnet-5-5) in October 2026, Anthropic's computer-use models, at list price with hard cost and action caps in our harness.

Related: Browser agents · Claims intake · How it works · All comparisons

Sources

  1. OpenAdapt engine benchmark, agent arm, 21 Jul 2026 (README): a paid computer-use agent, Claude Sonnet 5 (claude-sonnet-5), on local test copies with synthetic data, each trial scored by a database read. openIMIS claim entry: 3 of 3 correct, $0.48 a run at list price, 69.8 s mean. Frappe Lending: 6 of 6 correct writes, 5 of 6 clean. Local OpenEMR: 0 of 6 (each trial used up its action budget before saving). Small samples; run on fresh baselines, not matched against OpenAdapt runs.
  2. OpenAdapt engine benchmarks, OpenEMR public demo, 8 Jul 2026 (docs/BENCHMARKS.md): an 18-step add-a-note task on the public demo (synthetic patients, resets daily). The compiled program passed 19 of 20 runs at 39.2 s median with 0 model calls; in the 20th the note stayed in the unsaved form. A computer-use agent, Claude Sonnet 5 (claude-sonnet-5), passed 10 of 10 at 70.4 s median, about $0.55 a run at list price. Both judged by the same screen check of the saved note, not a database read. Engine version 0.1.0.
  3. OpenAdapt on openIMIS 25.10, July 2026: one health-facility claim per run, 3 of 3 checked by a direct database read (exactly one claim, status Entered, right member), 0 duplicates, 25.6 to 30.3 s a run, 0 AI model calls.
  4. OpenAdapt on Frappe Lending 16.2.0 (open source), 16 Jul 2026, synthetic applicants: 6 of 6 loan applications checked through the API, a database read and a table-change audit (3 normal runs, 3 after a cosmetic screen change); 5 of 5 injected faults stopped before saving.
  5. OpenAdapt on OpenEMR 8.0.0.3 (open-source EMR), local test copy, 11 Oct 2026. One program ran over 8 synthetic eReferrals in one batch, with 0 AI model calls. 7 new patients were saved; our test setup read each chart back through the OpenEMR API and database, and 12 of 12 fields matched the referral. The 8th (Rosa Delgado, same name as an existing chart, different birth date) stopped at the EMR's duplicate check; afterwards no new chart existed. The engine labels the saved runs "Finished, not checked" (practice profile) and the stop "Check the record".
  6. OpenAdapt on openIMIS 25.10 (open-source insurance system), local test copy, 12 Oct 2026. A program learned from one demonstration entered 6 synthetic health-facility claims in one batch, with 0 AI model calls. 5 were saved; our test setup read each back through SQL and the openIMIS API, and 15 of 15 fields matched the claim document. On the 6th, the insured number had two digits swapped: openIMIS found no member, the screen no longer matched the demonstration, and the program stopped before saving (no claim was written). The engine labels the 5 saved runs "Finished, not checked", because this program has no record check of its own yet.
  7. Referral timing run, local OpenEMR 8.0.0.3 test copy, 14 to 15 Oct 2026 (run data): 8 synthetic referrals, OpenAdapt (a program compiled to find each field by the page's structure, 0 model calls) against Claude Sonnet 5.5 (claude-sonnet-5-5) as a computer-use agent in a capped harness, warm starts, interleaved blocks, each chart read back from the database. Blocks 2 to 10, normal referrals saved correctly: 62 runs each; median 29.7 s (OpenAdapt) and 36.5 s (agent); agent median $0.083 a run at list price. Both 62 of 63 normal referrals correct; on the possible duplicate, no new chart in 9 of 9 for both. Block 1 left out (CPU shared with another process); with it (blocks 1 to 10), 69 of 70 correct for both, 29.7 s and 37.6 s (n=69 each). The same task from the 10 Oct recording without the page's structure: 62 of 63, 38.6 s median, slower than the agent.
  8. Anthropic, Computer use tool documentation (platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool), and API data retention (platform.claude.com/docs/en/manage-claude/api-and-data-retention), read August 2026.
  9. OpenAI, Computer use guide (developers.openai.com/api/docs/guides/tools-computer-use), read August 2026.

See it on your process

Bring one task your team types every day. We'll tell you whether it fits, and what a test on your own system would cover.