neoagent 3.0.1-beta.16 → 3.0.1-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -90,6 +90,11 @@ changes and rough edges. Review the
90
90
  [security boundaries](docs/security-boundaries.md) before connecting sensitive
91
91
  accounts or giving the agent access to a personal workstation.
92
92
 
93
+ ## 📊 Benchmarks
94
+
95
+ ![NeoAgent benchmark dashboard](static/benchmarks/latest-dashboard.png)
96
+ See [Benchmarking](docs/benchmarking.md) for the reproducibility details and suite coverage.
97
+
93
98
  Start with the [documentation](https://neolabs-systems.github.io/NeoAgent/docs/).
94
99
  Use [GitHub Discussions](https://github.com/NeoLabs-Systems/NeoAgent/discussions)
95
100
  for questions and [GitHub Issues](https://github.com/NeoLabs-Systems/NeoAgent/issues)
@@ -0,0 +1,102 @@
1
+ # Benchmarking
2
+
3
+ NeoAgent includes an end-to-end benchmark harness that drives the app through
4
+ its authenticated HTTP surface instead of calling internal engine methods
5
+ directly. The harness configures OpenRouter models, submits benchmark tasks,
6
+ collects run events and usage data, and writes normalized result artifacts.
7
+
8
+ ## Latest dashboard
9
+
10
+ ![Latest benchmark dashboard](/benchmarks/latest-dashboard.png)
11
+
12
+ The generated image is backed by these local outputs:
13
+
14
+ - `benchmark/results/latest-results.json`
15
+ - `benchmark/results/latest-summary.json`
16
+ - `benchmark/results/latest-summary.md`
17
+ - `static/benchmarks/latest-dashboard.png`
18
+
19
+ ## Commands
20
+
21
+ ```bash
22
+ npm run benchmark:setup
23
+ npm run benchmark:run
24
+ npm run benchmark:report
25
+ ```
26
+
27
+ ## Model selection
28
+
29
+ The benchmark harness is OpenRouter-first. Edit the `OPENROUTER_MODEL_IDS`
30
+ variable in `benchmark/config.js` to pin exact model IDs, or leave it empty to
31
+ use the current cheap-tier OpenRouter models discovered at runtime.
32
+
33
+ ## Benchmark coverage
34
+
35
+ - `GAIA`, `BrowseComp`, `WebArena`, `VisualWebArena`, and `SWE-bench` are wired
36
+ as exact public-suite adapters. When their official datasets or external
37
+ runners are not installed, they are reported as blocked instead of being
38
+ approximated.
39
+ - `NeoAgent Representative Tasks` runs first-party agent tasks through
40
+ `/api/agents` and scores them from the persisted run details.
41
+ - `NeoAgent Memory Retrieval` seeds memories over `/api/memory`, recalls them
42
+ through the app routes, and scores retrieval quality with the same metric
43
+ code used by the server evaluation module.
44
+
45
+ ## Reproducibility
46
+
47
+ - Public-suite setup manifests are written under `benchmark/workdir/<suite>/`.
48
+ - The harness uses one benchmark account and persists per-run usage summaries
49
+ through the existing NeoAgent run detail endpoints.
50
+ - Blocked suites are intentional and explicit. The harness never substitutes a
51
+ simplified local task and labels it as a public benchmark result.
52
+
53
+ ## Public benchmark prerequisites
54
+
55
+ ### GAIA
56
+
57
+ - Access to the gated [GAIA dataset](https://huggingface.co/datasets/gaia-benchmark/GAIA).
58
+ - `HF_TOKEN` in the environment.
59
+ - A Python environment with `datasets` installed if you want `benchmark:setup`
60
+ to export a normalized local cache automatically.
61
+ - Either an exact evaluator wired through
62
+ `NEOAGENT_BENCHMARK_GAIA_RUNNER` or a repository-local exact runner added to
63
+ the harness. The current adapter intentionally reports `blocked` until an
64
+ official evaluator path is configured.
65
+
66
+ ### BrowseComp
67
+
68
+ - A checkout of [openai/simple-evals](https://github.com/openai/simple-evals),
69
+ which `benchmark:setup` can clone into `benchmark/workdir/browsecomp/`.
70
+ - Exact BrowseComp case extraction from that repo.
71
+ - An official evaluator command exposed through
72
+ `NEOAGENT_BENCHMARK_BROWSECOMP_RUNNER`.
73
+
74
+ ### WebArena
75
+
76
+ - Docker installed and running.
77
+ - The official [WebArena](https://webarena.dev/) environment and task sites.
78
+ - Browser automation dependencies required by the official runner.
79
+ - An exact runner command exposed through
80
+ `NEOAGENT_BENCHMARK_WEBARENA_RUNNER`.
81
+
82
+ ### VisualWebArena
83
+
84
+ - Docker installed and running.
85
+ - The official VisualWebArena environment.
86
+ - A vision-capable configured benchmark model.
87
+ - An exact runner command exposed through
88
+ `NEOAGENT_BENCHMARK_VISUAL_WEBARENA_RUNNER`.
89
+
90
+ ### SWE-bench
91
+
92
+ - Docker installed and running.
93
+ - A checkout of [SWE-bench](https://github.com/SWE-bench/SWE-bench), which
94
+ `benchmark:setup` can clone into `benchmark/workdir/swebench/`.
95
+ - The official dataset/runtime and enough disk/network budget for repo/image
96
+ setup.
97
+ - An exact runner command exposed through
98
+ `NEOAGENT_BENCHMARK_SWEBENCH_RUNNER`.
99
+
100
+ On this machine, `docker` is currently missing, so exact `WebArena`,
101
+ `VisualWebArena`, and `SWE-bench` execution remain blocked until Docker and the
102
+ official runners are installed.