Skip to main content

Agentic benchmark explorer for SGLang.

Project description

perferox

Perferox is a small agentic benchmark explorer for inference engines and ML systems performance. The first target is SGLang.

This is alpha software. It is not ready for common use yet. Expect rough edges, missing docs, changing APIs, and places where you still need to understand the repo before trusting a run.

The shape is intentionally simple: give an agent a bounded objective, let it delegate benchmark workers, run experiments through narrow tools, and save the parts worth keeping. The point is not to make a giant benchmark platform. The point is to make it easy to poke at weird corners of an inference stack without losing track of what already happened.

The first use case is SGLang serving benchmarks. Perferox is meant to try different models, backends, cache settings, request patterns, chips, and setup conditions, then preserve the useful results in SQLite. It records the normal perf signals, like request throughput, token throughput, TTFT, TPOT, cache hit rate, accept length, and error rate. It also has a place to store human-readable anomalies, because a lot of the interesting bugs are not just "number went down" but "this specific setup behaved strangely in a way a person should inspect."

The important constraint is that the host owns state. Agents do not choose run IDs, write SQLite directly, or decide whether a benchmark should bypass caps. Real experiments go through a benchmark tool. Started runs get logged. Failed runs still count once they actually start. The database is the source of truth for runs, experiments, anomalies, trace references, and compact exploration state.

Current pieces:

  • a perferox CLI
  • a Textual TUI for starting and stopping exploration
  • a LangGraph main coordinator
  • tmux-wrapped benchmark subagents
  • Paramiko remote sessions
  • structured SGLang bench_serving command construction and parsing
  • SQLite-backed runs, experiments, anomalies, notifications, and ExplorerState
  • local SGLang docs search plumbing

This is still early software. The goal is to keep the code small enough that it stays easy to inspect and change. The preferred path is boring Python, explicit state, small tools, and very few abstractions.

uvx perferox --help

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

perferox-0.1.0.tar.gz (294.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

perferox-0.1.0-py3-none-any.whl (295.6 kB view details)

Uploaded Python 3

File details

Details for the file perferox-0.1.0.tar.gz.

File metadata

  • Download URL: perferox-0.1.0.tar.gz
  • Upload date:
  • Size: 294.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for perferox-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f3990600583733dca55349321fb8f017f9258f4d0b23dd6dfefbb8c4ade5caf2
MD5 884ef61d76113145058dc080af04fcc7
BLAKE2b-256 8d2e6e237a66fb18dda621e07d06d877ded6f42086114814a46ce6f00fe3e0da

See more details on using hashes here.

File details

Details for the file perferox-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: perferox-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 295.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for perferox-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6de39709381bb5ad9b2ad91fac111ec4b76164a166e71a1e892299ad6ea15764
MD5 68782843dee357df63d80e80ff88cacc
BLAKE2b-256 144e3a472ee38fba8c3ca16f556afe88540c83f5d4f97f7a8eaec5a6be2a90e0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page