Would an agent be allowed to click this?
Every click a Browserberg agent plans passes an effect gate that classifies the element by its label. Paste a label or an element and see the classification, the phrase that matched and what happens under each of the three policies. It is the product's own gate code, running in your browser.
Try a label such as Jetzt kaufen, Filter entfernen or Download all data, or paste the element's outer HTML.
This tool runs in your browser and needs JavaScript.
Observations, not verdicts. What you enter is processed for this result and written to a usage journal described in the privacy policy; nothing else is stored.
The five effects
read
Reading, navigating, opening a menu. The overwhelming majority of clicks. Never gated.
submit
Sends something reversible: a search, a filter, a form that can be edited again. Never gated.
payment
Moves money. Jetzt kaufen, zahlungspflichtig bestellen, Überweisung ausführen, place order.
destructive
Destroys data or ends a relationship. Konto löschen, Vertrag kündigen, Zugang sperren, delete permanently.
bulk_export
Exports personal data in bulk. Alle Daten herunterladen, Datenauskunft anfordern, request my data.
High risk
payment, destructive and bulk_export are the high-risk set. Under the default policy an agent refuses them; under propose it hands them to a person.
How the gate decides, and why it reads the element rather than the instruction
The classifier normalises the label, lower case with whitespace collapsed, and compares it against a phrase list ordered from most specific to least. The first phrase found decides the effect. German phrases come first in the list because the portals Browserberg was built for are German, and the English set follows. A label that matches nothing is read or submit, and neither is ever blocked.
The element, not the instruction
The gate runs after planning and looks at the label of the element about to be acted on, never at what the user asked for. That is deliberate. A page cannot rewrite a customer's instruction, but a page can put a button labelled Konto löschen exactly where a planner looking for Weiter will find it. Classifying the element means an injected control is caught by what it says it does, regardless of how the plan came to include it. Typing into a field is never gated: filling a form is reversible until something is submitted, and the submit control is what gets classified.
Three policies
With refuse, the safe default, a high-risk step is not taken and the run reports which step was refused and why, with the matched phrase. With propose, the step is returned for a person to approve, which is how a workflow that legitimately ends in a purchase is meant to work. With allow, everything runs, which is a per-tenant decision made explicitly rather than a flag a prompt can flip. The tool shows all three outcomes for the label you entered.
The mojibake repair
Some German portals serve UTF-8 bytes declared as windows-1252, so löschen arrives in the DOM as löschen. Before matching, the classifier tries to re-decode the label as that mistake; a label that was never mojibake fails to re-decode or produces nonsense and is left alone. The gate that refuses account deletions must not be beaten by a charset header, and the tool shows when the repair changed the input.
What the classifier does not judge
It matches words, not consequences, and it is tuned to over-refuse. Filter entfernen matches entfernen and is classified destructive, which is a false positive by design: a refused filter reset costs a retry with a person in the loop, a permitted account deletion costs an account. The classifier also knows nothing about context. A Kündigen link in a footer menu and the final Kündigen button on a confirmation page classify the same, and whether the click actually ends a contract is something only the page knows. It does not read the element's surroundings, its form, or the page it leads to; that is the destination guard's job. And it is not a content policy: a label in French or Polish that carries the same meaning matches nothing and passes as read, which is why the list is public and grows with the portals customers bring.
Using the classifier while building a workflow
-
Paste the labels your run will meet
Every button the workflow has to press, one at a time. Take the labels from the agent view or the page itself.
-
Note which ones are high risk
A step that ends in payment, destructive or bulk_export will be refused under the default policy. That is expected for a purchase or a cancellation.
-
Decide the policy per workflow
propose for a run that legitimately ends in a high-risk click and has a person to approve it. refuse for everything else. allow only when your organisation has decided that unattended payments are acceptable.
-
Check the false positives
A label like Entfernen on a harmless control will be refused. Rephrase your instruction to use a different control, or accept the approval step.
Questions about effect gates
What is an effect gate in a browser agent?
A check between planning and acting that classifies what a click would do, by the label of the element, and refuses or escalates the high-risk kinds: payments, deletions and bulk exports of personal data.
Why does the gate look at the button and not at my instruction?
Because a page can inject a button but cannot change your instruction. A gate on the instruction would let a page steer an agent into a Konto löschen click that the instruction never mentioned.
Does the gate stop the agent typing into fields?
No. Typing is never gated; it is reversible until a submit control is pressed, and that control is what gets classified.
My harmless button is classified destructive. Is that a bug?
Usually not. Single words like löschen, entfernen, delete and remove are on the list on purpose, because a specific phrase list misses too much. Use propose so a person confirms, or route the workflow through another control.
Can an agent be talked into allow by the page?
No. The policy is set by the caller per run and per tenant, outside the model's context. Page content reaches the model fenced as untrusted and cannot change the policy.
Read next
Run a task with the gate in front of it
Five browser hours, no card. Send an agent to a real portal and read what it refused and why.