Files
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Voice Workbench / headless workbench (mocked backends) (push) Waiting to run
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00
..

packages/benchmarks

The elizaOS evaluation suite — 44 registered benchmarks (the canonical set in registry/commands.py; 53 publicly runnable once adapter-only ids are counted) spanning agent autonomy, tool-call correctness, long-horizon reasoning, voice/vision multimodal, embodied control, onchain trading, and adversarial robustness, plus shared agent-harness adapters.

Primarily Python, with several TypeScript/Bun and Rust harnesses. Lives outside the TypeScript workspace; not an npm package. Each benchmark is self-contained in its own directory and carries README.md + AGENTS.md + CLAUDE.md.

Honest coverage breakdown (#9475). "Registered" does not mean "runs in CI on a real model." The de-larp pass (#9475) deleted the directories that never benchmarked Eliza (no @elizaos wiring, no registry entry): the vendored upstreams claw-eval / qwen-claw-bench / swe-bench-pro / swe-bench-multilingual / loca-bench, the qwen-web-bench stub, the compactor-strategy harness compactbench, the abandoned evm, and the import-shim / dup matrix adapters (app_eval, clawbench_matrix, claw_eval_matrix, qwen_claw_bench_matrix, swe_bench_pro_matrix, openclaw_benchmark). What remains is classified explicitly:

  • Registered — 44 benchmarks in registry/commands.py.
  • Bridge-wired & real — ~25 route through the eliza-adapter (which boots a real AgentRuntime + real model plugins and serves /api/benchmark/message) on their default/real path.
  • CI lane — every registered benchmark now carries an explicit CI lane in orchestrator/ci_coverage.py (tests/test_ci_coverage.py keeps it 1:1 with the registry, so no benchmark silently has zero coverage):
    • scheduled — a core real-model subset (bfcl, action-calling, agentbench, tau_bench, mint, context_bench) runs weekly via .github/workflows/benchmark-orchestrator-scheduled.yml; hyperliquid_bench and lifeops_bench have their own dedicated live lanes.
    • smoke — has a no-key mock/sample path exercisable in CI.
    • manual — live-gated / Docker / sandbox / real-audio; run on demand (workflow_dispatch / operator runbook), never silently.

Keep this section and orchestrator/ci_coverage.py in sync when adapters are added or benchmarks are dropped.

How it fits together

Piece Role
registry/ Source of truth. get_benchmark_registry() defines every benchmark: id, run command, requirements, result locator, scorer.
orchestrator/ Runs benchmarks from the registry, normalizes results into SQLite/JSON, computes calibration/readiness/leaderboards, serves the viewer.
<benchmark>/ One directory per benchmark — harness code, data, tests, and docs.
*-adapter/ Harness bridges (eliza, hermes, openclaw, smithers) that let one benchmark run against different agent backends.
agentbench_matrix/ Code-agent comparison adapter for the real agentbench, driven by orchestrator/code_agent_matrix.py. (The dup *_matrix / import-shim variants for vendored sources were removed in #9475.)
loadperf/, memperf/, mobile-resource/, view-bundle-size/ Direct resource/load/bundle KPI workbenches with their own CI lanes; not suite-orchestrator adapters.
framework/, lib/, standard/ Shared harness framework, helpers, and the standard academic adapters (MMLU, HumanEval, GSM8K, MT-Bench, dispatched by run.py).
viewer/ Static browser UI for inspecting normalized results.
tests/ Suite-level tests (registry scores, runner normalization, acceptance gate, …).

Running

List everything the registry knows about and verify adapter coverage:

python -m benchmarks.orchestrator list-benchmarks

Run one benchmark (idempotent — successful signatures are skipped):

python -m benchmarks.orchestrator run --benchmarks <id> --provider <p> --model <m>

Run the whole suite:

python -m benchmarks.orchestrator run --all --provider cerebras --model gemma-4-31b

Each benchmark can also be run directly from its own directory — see that benchmark's AGENTS.md for the exact command and a no-key smoke path.

Use your workspace Python so dependency versions stay consistent across benchmark subprocesses. Full operator runbook (remote GPU, sub-agent matrix, calibration gates): ORCHESTRATOR_SUBAGENT_BENCHMARK_RUNBOOK.md and orchestrator/README.md.

Testing the harnesses

# Suite-level tests (registry, scoring, normalization, acceptance gate)
pytest tests/ -v

# A single benchmark's tests — see its AGENTS.md for the exact path, e.g.
pytest rlm-bench/elizaos_rlm_bench/tests/ -v

Results

Run output (per-task traces, scorecards, the orchestrator SQLite DB, and viewer data) lands under benchmark_results/ and is gitignored — it is generated, never committed. Inspect history with:

python -m benchmarks.orchestrator serve-viewer

Adding a benchmark

  1. Create <your-benchmark>/ with the harness, tests, and the three docs.
  2. Register it in registry/commands.py (id, build_command, locate_result, requirements) and add a scorer in registry/scores.py.
  3. Classify its CI lane in orchestrator/ci_coverage.py (scheduled / smoke / manual) — tests/test_ci_coverage.py fails until you do (#9475).
  4. Confirm it appears in python -m benchmarks.orchestrator list-benchmarks.

Docs

User-facing summary: Benchmarks track page.