File DA-009 View as Markdown
Core
The detection engine inside the script is open source: github.com/doubleagent-so/core (MIT). Read how every verdict is made, run it yourself, or make it better.
- Runs in the page. No dependencies, no network requests.
- Returns
human,botoragent, with probabilities, the agent's identity, the reasons and a recommendation. - 226 named bots and agents in the catalog, 71 signal codes.
Script or core
Script (doubleagent.js) | Core | |
|---|---|---|
| Install | One tag | Code |
| Verdict in the page | Yes | Yes |
| Sessions across pages, consent | Yes | You build it |
| GA4, Meta, Shopify and 14 more | Yes | You build it |
| Your own tools and backend | Plugins | engine.payload() |
| Server re-scoring, HQ, tokens | With the cloud | No |
The script runs core. With data-cloud="off" it stays in the page, like core on its own.
Use it
git clone https://github.com/doubleagent-so/core && cd core && npm ci
npm run example # live verdict page
import { createEngine } from '@doubleagent-so/core';
const engine = createEngine(window, { onVerdict: (v) => console.log(v.class, v.reasons) });
const verdict = await engine.ready;
Getting started covers the options, the verdict and sending engine.payload() to your backend.
How it works
Probes and input events become signals. Each is a log-likelihood ratio in a capped group, so correlated tells can't pile up. Fusion adds them to your site profile's priors. A policy turns the result and the action into a recommendation. How it works.
The cloud re-scores every session with evidence the browser can't forge (headers, IP ranges, Web Bot Auth). It never trusts the client's verdict.
Improve it
- A real browser labelled automated, or an agent that passed: report a misclassification.
- A new agent or bot: add it to the catalog.
- A probe, better weights, fewer false positives: Extending and Contributing.
Found a way past it? Report it privately (Security).