Files
tracer-cloud--opensre/tests/benchmarks/cloudopsbench/configs
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00
..

CloudOpsBench configs — layout

YAML configs that drive the bench framework. Each config names the adapter (benchmark: cloudopsbench), the LLMs, the arms, the case slice, and the budget. The framework reads the config, validates it against the registered adapter's capabilities, and runs.

Layout

configs/
├── README.md                                # this file
├── experiments/                             # configs grouped by experiment
│   └── exp_db_evidence_pipeline/            # one folder per experiment
│       ├── README.md                        # experiment summary + history
│       ├── preregistration.yml              # locked predictions / decision matrix
│       ├── smoke_db_pod_logs.yml            # the first smoke
│       ├── smoke_perf_only.yml              # diagnostic smoke
│       └── full_n.yml                       # the promotable full-N
├── preregistrations/                        # standalone pre-regs
│   ├── cloudopsbench_smoke.yml              # generic smoke pre-reg (placeholder for exploratory runs)
│   ├── cloudopsbench_v1.yml                 # baseline (cycle 1) pre-reg
│   └── exp_structured_outputs_v1.yml        # legacy — to migrate into experiments/
└── (flat .yml files)                        # historical / baseline configs (see below)

Per-experiment folders are the source of truth going forward

For any new experiment:

  1. Create configs/experiments/exp_<name>/.
  2. Put the pre-registration in that folder as preregistration.yml.
  3. Put the run configs (smoke, full-N, ablations) alongside.
  4. Add a README.md that includes:
    • What the experiment tests — mechanisms by ID (M1, M2, …).
    • Locked decision matrix — what counts as ship / roll-back.
    • Tracking issue link.
    • Run ledger — a table mapping each run to (a) the config that produced it, (b) the image SHA, (c) the S3 run dir with raw artifacts, (d) the headline metrics, (e) the report doc. Every new dispatch adds a row. See experiments/exp_db_evidence_pipeline/README.md for the canonical shape.

The benefits:

  • The file tree shows which configs belong together.
  • rm -rf exp_<name>/ cleanly removes the experiment + all metadata.
  • A reviewer reads the folder's README + the pre-reg without hunting through preregistrations/ for the matching file.
  • Pre-reg + run configs cannot drift in opposite directions if they live in the same folder reviewed in the same PR.
  • Config ↔ result mapping is explicit. Anyone asking "where did this number come from?" follows the link from the report → the S3 run dir → the config + image SHA → the pre-reg in the same folder.

What's still in the flat directory

Older configs from the first ~6 weeks of bench work are still flat at configs/*.yml. They map to historical experiments (some rejected, some baseline) per ~/DevBox/tracer-cloud/opensre-notes/cloudopsbench-experiments-chain.md. Migrating each into an experiments/exp_<name>/ folder is a lazy follow-up — not blocking. Mapping below for future reference:

Flat config Likely experiment folder
cloudopsbench_definitive_openai.yml, cloudopsbench_definitive_floor0_openai.yml, cloudopsbench_definitive_trimmed_prompt_openai.yml exp_definitive_baseline
cloudopsbench_floorsweep_openai.yml, cloudopsbench_floor0_ablation_openai.yml, cloudopsbench_floor_ablation_v2_openai.yml exp_floor_ablation
cloudopsbench_fixa_validation_openai.yml exp_fixa_validation (rejected)
cloudopsbench_vocabpilot_openai.yml, cloudopsbench_vocabpilot_anthropic.yml exp_vocabpilot
cloudopsbench_trimmed_prompt_openai.yml exp_trimmed_prompt
cloudopsbench_structured_outputs_smoke_openai.yml, cloudopsbench_structured_outputs_smoke_100_openai.yml, cloudopsbench_structured_outputs_openai.yml exp_structured_outputs (rejected; pre-reg already exists)
cloudopsbench_v1.yml, cloudopsbench_v1_openai.yml, cloudopsbench_v1_anthropic.yml, cloudopsbench_v1_deepseek.yml baselines (keep flat — they're the canonical cross-LLM baseline)
cloudopsbench_smoke.yml baseline smoke (keep flat)
cloudopsbench_control_openai.yml, cloudopsbench_postpatch_anthropic.yml one-off controls (archive candidate)

Naming conventions inside experiments/exp_<name>/

Suffix Meaning
preregistration.yml The locked pre-reg (exactly one per experiment).
smoke_<focus>.yml A small-N exploratory run (≤ 100 cases). The <focus> describes the slice (e.g. perf_only, db_pod_logs).
full_n.yml The full-corpus run (n=452 for CloudOpsBench v1). Promotable.
ablation_<arm>.yml An ablation that drops one mechanism. The <arm> names what was dropped (e.g. layer1_only).

What a config must contain

Mandatory fields (per BenchmarkConfig in tests/benchmarks/_framework/config.py):

  • benchmark — adapter name; resolved via the framework registry.
  • modes, llms, model_versions, runs_per_case, cost_budget_usd, seed.
  • pre_registration_path — relative path from repo root. For experiments in this layout, point at ./preregistration.yml.
  • output_dir, filters, report_formats.

Adapter-specific knobs (agent_variant, predictor_variant, min_tool_calls) are validated against the adapter's AdapterCapabilities. A capability the adapter doesn't declare is refused at lint time.