sysml-bench
sysml-bench is an evaluation harness for one question: does giving a tool-augmented language model more tools help it answer questions about a SysML v2 model. A Python package drives models over public SysML v2 corpora through tool sets called as command-line tools, with the search and graph tools backed by sysml, the knowledge-graph CLI that parses the corpus.
- A primary corpus carries every task category; a replication corpus carries its own confirmatory suites; the others carry discovery tasks for scaling and generalization.
- Each task is a question with a typed answer schema, published with the dataset.
- A condition is one model and one tool set, run N times.
The independent variable is how much of the graph the model may see.
cli_search: find an element, open its source.cli_graphadds traversal: trace chains, check structure and metamodel conformance, query by relationship, inspect an element.cli_renderadds a report rendered from the graph, so an explanation comes from a view, not hand assembly.cli_fulladds a model-health summary and a planner from question to commands. Each set grows the tool schema the model must carry before it reads any of the corpus, so the sets are ordered by that up-front cost as well as by capability.
Scoring, in eval/scoring.py, is per field and typed: booleans, floats within a tolerance, strings with qualified-name matching, lists by set F1 against a threshold. A task scores the mean of its fields, a condition the mean of its tasks over N runs.
Replication on an independent corpus runs under pre-registration.
- The pre-registration commits one directional hypothesis, the model snapshot, minimum task counts and the analysis script before the first confirmatory run.
- Inference is an exact one-sided paired permutation test with Hedges g and a BCa bootstrap interval at α = 0.025; no task is excluded.
- The confirmatory suite matches frozen values mechanically, so the claim carries no scorer discretion.
The harness measures one modeling language on public models far smaller than a production system model, and the list scorer takes flat lists only.