4b6817381b
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
83 lines
2.0 KiB
Markdown
83 lines
2.0 KiB
Markdown
# Benchmark
|
|
|
|
This benchmark runs a fixed subset of synthetic scenarios:
|
|
- 001-replication-lag
|
|
- 002-connection-exhaustion
|
|
- 003-storage-full
|
|
|
|
Reported metrics:
|
|
- duration
|
|
- token usage
|
|
- estimated LLM cost
|
|
|
|
Not reported:
|
|
- accuracy
|
|
- false positives
|
|
- false negatives
|
|
|
|
## Running benchmarks
|
|
|
|
From the repository root:
|
|
|
|
```shell
|
|
make benchmark
|
|
```
|
|
|
|
This runs the benchmark suite **and** updates the `## Benchmark` section in
|
|
`README.md` with a summary table. The full report is written to
|
|
`docs/benchmarks/results.md`.
|
|
|
|
To update only the README from a previously generated report (no LLM calls):
|
|
|
|
```shell
|
|
make benchmark-update-readme
|
|
```
|
|
|
|
To skip the README update during a benchmark run:
|
|
|
|
```shell
|
|
python -m tests.benchmarks.toolcall_model_benchmark.benchmark_generator --no-update-readme
|
|
```
|
|
|
|
## How the README auto-update works
|
|
|
|
The main `README.md` contains two HTML comment markers:
|
|
|
|
```html
|
|
<!-- BENCHMARK-START -->
|
|
...summary content...
|
|
<!-- BENCHMARK-END -->
|
|
```
|
|
|
|
After each benchmark run, the content between these markers is replaced with
|
|
the latest summary table. The replacement is idempotent — running benchmarks
|
|
multiple times replaces the previous results rather than appending duplicates.
|
|
|
|
This follows the same marker-delimited replacement pattern used in other
|
|
`README.md` sections (for example the contributors block).
|
|
|
|
A GitHub Actions workflow (`.github/workflows/benchmark-readme.yml`) also
|
|
runs automatically when `docs/benchmarks/results.md` changes on `main`,
|
|
keeping the README in sync without manual intervention.
|
|
|
|
## Output files
|
|
|
|
- `docs/benchmarks/results.md` — full per-case report with detailed metrics
|
|
- `README.md` (benchmark section) — compact summary table
|
|
|
|
## Custom README path
|
|
|
|
To write the summary to a different README file:
|
|
|
|
```shell
|
|
python -m tests.benchmarks.toolcall_model_benchmark.benchmark_generator --readme-path /path/to/README.md
|
|
```
|
|
|
|
## Running selected scenarios
|
|
|
|
```shell
|
|
python -m tests.benchmarks.toolcall_model_benchmark.benchmark_generator \
|
|
--scenario 001-replication-lag \
|
|
--scenario 002-connection-exhaustion
|
|
```
|