A small sample extracted from the front of the FP-Agent project's raw_dataset.json
(dataset published by the FP-Agent authors on OSF: osf.io/j6b5p).
sample_trials.json contains the first 6 complete trials from the start of the file:
| Agent | Trials | eventFrames |
|---|---|---|
| Browser Use | 3 | 158 |
| Skyvern | 3 | 311 |
Each trial (record) is complete and untruncated:
{
"<Agent>": [
{
"fpjs_data": [ ... ], // FingerprintJS + creep browser fingerprint
"behavioral_data": [ // array of heartbeat POSTs from the browser
{
"req_headers": "...", // ASN / geo IP metadata
"req_body": "<escaped JSON string containing: visitorId, sourcePage, eventFrames>"
},
...
],
"source": { "task_name": "Shopping task - 1440x900 - los angeles - None", ... }
},
...
]
}Every step is logged as a frame [code, selector, ...fields, timestamp]. The trailing
timestamp is performance.now() — a browser monotonic clock in milliseconds relative
to page load (NOT wall-clock epoch).
| code | meaning | example |
|---|---|---|
mm / md / mu |
mouse move / down / up | ['mm','#from',269,398,16622.69] |
kd / ku |
key down / up | ['kd','#search','k',false,20163.29] |
i |
input/insert | ['i','#search','insertText','k',20171.7] |
c |
click / change | ['c','#from','San Francisco',15874.29] |
sc / su / sd |
scroll | ['sc','document',2,0,3881] |
p |
paste | ['p',sel,clipboardText,ts] |
So yes, every step carries a timestamp. It enables inter-event timing (IET), bursts, event rate, and dwell features. It does NOT support cross-session absolute-clock alignment.
- This is only the frontmost ~6 trials (~2.2 MB) of the original 4.26 GB dataset (~1600 sessions, 8 agent classes: Browser Use, Skyvern, Comet, Manus, Human, ChatGPT Agent, Atlas Agent, Claude).
- Source: FP-Agent project, OSF node
j6b5p(view-only), authors' public repo README.