Separate Agent Decisions from Tool Actions
A small, inspectable experiment with its inputs, decisions and limitations recorded. This guide is not a production guarantee.
Use caseLimit browser or computer actions to reviewable choices
Separate a small judgment from the action that follows it.
Source · dex · @dexhorthy · X companion
2026-09-21 · Editorial update; no live model call
Problem
Section titled “Problem”The source post discusses decomposing tool use into classification and action. This is useful when repeated workflows spend too much time re-discovering an already known path.
Separate judgment from execution Known workflow → Narrow question → Allowed route → Controlled function → Verify outcome
Optimization keeps safety checks.
Before you begin
Section titled “Before you begin”-
Use a small fictional or authorized dataset. Do not paste private customer data into an unfamiliar service.
-
A current browser for reading. Check the linked project for its own runtime, access and cost requirements.

Image from dex · @dexhorthy’s original X post. The post is linked; this is not a JevLog test result.
1. Write the fixed path
Section titled “1. Write the fixed path”Document one repeated workflow: read an authorized file, choose a category, prepare an output. Separate network waiting from model thinking so you know what is actually slow.
2. List only permitted decisions
Section titled “2. List only permitted decisions”Define a small set of routes such as process, ask for context and review. Exact validation and authorization checks stay in ordinary code.
3. Keep execution outside the model
Section titled “3. Keep execution outside the model”A returned option maps to a pre-approved function. Treat it as a suggestion that still passes input, permission and spending checks. Do not execute arbitrary commands generated from input.
4. Record outcome and failure
Section titled “4. Record outcome and failure”Log the input version, chosen route and actual result. If the UI changes or the account is wrong, stop. Compare elapsed time without removing necessary checks.
Find the slow boundary before replacing a model
Write the known path first: open an authorized page, verify the account, set the date range, read the table and save a file. Exact account and date checks belong in code. A genuinely ambiguous exception may deserve a narrow model question, but it does not justify asking an agent to rediscover the whole interface on every record.
Use a small allowlist of routes such as process, ask for context, review and stop. Each maps to a reviewed function. External text must never become an arbitrary shell command or permission grant. Reuse verified selectors or an authorized API, and wait for the specific business state rather than adding fixed sleeps everywhere.
A visible button is not proof that the latest filtered data has arrived. An uncertain write is not a reason to resubmit blindly. Stop on account mismatch, structural change or an unverified result. Record model calls, navigations, request time, review effort and total elapsed time on the same workload. Speed without equivalent outcome checks is not a useful improvement.
| Stage | Measure | Can a model swap remove it? |
|---|---|---|
| Navigation | Page and data readiness | Usually not |
| Decision | Request and inference | Compare candidates |
| Validation | Account and result | Do not skip |
| Review | Human effort | Improve the workflow |
Measurement plan, not performance data.
Result and cautions
Section titled “Result and cautions”A small, inspectable experiment with its inputs, decisions and limitations recorded. This guide is not a production guarantee.
- A valid label can still be wrong. Keep a review path and keep irreversible actions outside the exercise.
- A community demonstration is not an independent benchmark. This collection does not reproduce the linked video or repository.
- You can identify the input, its source, and the fields that leave your system.
- Original identities, failed rows, uncertain cases and human corrections remain visible.
- You distinguish an offline fixture, an author demo and a live evaluation you ran yourself.
Source boundary: compiled from the linked public sources; not reproduced here. Review classifications before acting; they do not run actions automatically.
Related guides
Section titled “Related guides”Should every step use Jev?
Section titled “Should every step use Jev?”No. Keep exact rules and execution in code.
Is CLI always faster than MCP?
Section titled “Is CLI always faster than MCP?”No. Measure unnecessary round trips and repeated exploration.