Original fictional teaching example. No model result is prefilled.
An editable starting point
- 1 · Text to check
- Goal: Register Dana Lee (dana.lee@example.com) for the conference. Current page: “Registration – Step 2 of 2” Visible elements: - Text field “Full name”: Dana Lee - Text field “Email”: empty, marked required - Checkbox “I accept the code of conduct”: checked - Button “Submit registration”: enabled - Banner: “Your session expires in 10 minutes.”
- 2 · Your question
- Which single step should the agent take next to reach the goal?
- 3 · Define 2–6 options
- Complete a required input
A required field or checkbox is still empty, and the goal already contains the value.
- Press the submit button
Every required input is complete and the page is ready to be submitted.
- Wait and read the page again
The page is still loading or changing, so its state cannot be trusted yet.
- Ask a person
Information is missing, or the step has consequences the agent is not allowed to take.
- Complete a required input
These are model probabilities, not measured accuracy or a guarantee. Yes and No describe your rules; choices are relative to the options you supplied.
Can Jev drive a browser agent?
Not by itself. Jev does not click, type or read a screen. It answers typed questions about the state you send. In a browser agent, that makes it a candidate for one narrow job: given a text description of the current page and a goal, choose the next step from a short list your code already knows how to perform.
TypeSafe’s build guide describes the same division of labour: code stays in control and the model receives narrow, structured decisions. The agent loop, the page reader, the click and the retry all remain ordinary software.
Open the editable next-step template. It contains a fictional registration page, one question and four options. Loading it creates a draft; a check starts only when you request it.
Describe the page as state, not as a screenshot
The template sends plain text: the goal, the page title and the visible elements with their current values. Your page reader decides what to include. Leave out anything the decision does not need, and never send passwords, payment details or other people’s personal data to a public demo.
| Option | When it should win |
|---|---|
| Complete a required input | A required field or checkbox is empty and the goal already contains the value. |
| Press the submit button | Every required input is complete. |
| Wait and read the page again | The page is still loading or changing. |
| Ask a person | Information is missing, or the step has consequences the agent may not take. |
Each option maps to a function in your agent. Jev picks the function; your code supplies the arguments it can verify, such as which field is empty. TypeSafe’s function-calling cookbook takes the same approach: closed-set choices become questions, while free text, numbers and dates stay with your code.
Change one thing and compare
- Run the template as written and note the selected step and the other probabilities.
- Fill in the email in the page description and run it again. Decide beforehand which step you expect.
- Remove the email address from the goal, leaving the field empty. The agent now lacks the value, so a careful design should prefer asking a person.
No expected answer is prefilled, and one run is not a measurement. If two options keep competing, rewrite their descriptions until a person could apply them without guessing; see how to handle overlapping labels.
Let the stakes set the threshold
TypeSafe’s confidence-gated routing pattern uses confidence as a second signal: the answer says what to do, and confidence says whether to act. Its example accepts a low-risk action at a modest confidence and requires a much higher one before approving a transfer. Apply the same idea here. Re-reading a page is cheap; submitting a form, paying or deleting is not. Choose your own thresholds from labelled examples, and read probability versus confidence first.
What the community has tried
The Projects gallery links a community browser-agent prototype that moves the decision step to Jev. Its speed claims are the author’s own and changed several things at once, so they do not isolate Jev’s effect. Treat such reports as ideas to test, then build a small set of page states from your own product and check every step by hand before an agent acts on real accounts.
Sources & further reading
Official documentation and linked community reports support this guide. Community observations are attributed to their authors.
- TypeSafe: How to build with TypeSafe
- TypeSafe: Function calling cookbook
- TypeSafe: Confidence-gated routing