项目文件夹

文件
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

145 行
6.9 KiB
YAML

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# Cloud-OpsBench v1 — OpenAI slice (gpt-4o + gpt-5).
#
# Provider slice of cloudopsbench_v1.yml. Use this when running just the
# OpenAI models (no ANTHROPIC_API_KEY / DEEPSEEK_API_KEY required). The
# full grid (all 4 paper models in one run) is still
# cloudopsbench_v1.yml — keep that for the publication-grade comparison
# once all provider credits are available.
#
# Sibling slices:
# - cloudopsbench_v1_anthropic.yml (claude-4-sonnet)
# - cloudopsbench_v1_deepseek.yml (deepseek-v3.2)
#
# Required env at run time: OPENAI_API_KEY.
#
# Run with --dev first to verify the chain, then drop --dev for production.
# Pin the MIN_TOOL_CALLS floor explicitly so it lands in provenance.json:
# BENCH_MIN_TOOL_CALLS=5 uv run python -m tests.benchmarks._framework.cli run \
# tests/benchmarks/cloudopsbench/configs/cloudopsbench_v1_openai.yml --dev
#
# ===========================================================================
# 2026-06-07 RE-RUN NOTES (read before launching the powered run)
# ---------------------------------------------------------------------------
# 1. VOCAB FIX (predictor._ROOT_CAUSES): the 2026-06-06 run scored ~0.01 a1 on
# the entire unseen-shape stratum (performance + admission) because 7
# root-cause tokens were missing from the predictor vocabulary — a scorer
# artifact, not a model failure (object_a1 was ~0.40 there). Those tokens
# are now in the vocab, so this re-run is the FIRST whose unseen-shape
# numbers are trustworthy. Validate cheaply first via
# cloudopsbench_vocabpilot_openai.yml before spending on the full grid.
#
# 2. FARGATE WALL-TIME (the 2026-06-06 run aborted at ~9h / 28% complete).
# Observed throughput was ~14 s/cell at workers=1. The full grid is 8136
# cells, so:
# workers=1 ⇒ ~32h workers=2 ⇒ ~16h workers=4 ⇒ ~8h
# Whatever killed the task at ~9h (ECS task timeout / OOM / spot reclaim)
# WILL repeat at workers=1. Before launching, do ONE of:
# (a) Confirm the ECS stop reason and raise the task timeout / move off
# spot so a 32h task can finish, OR
# (b) Upgrade to OpenAI tier-2 (450k TPM) and set workers=4 to land near
# ~8h — but DO NOT set workers>1 on tier-1 (30k TPM): the June-3 run
# showed a rate-limit storm that crashed 78% of cells (a1 → 2.8%), OR
# (c) CHUNK the grid into independent sub-runs each well under the wall
# and merge later. Outputs are joinable by case_id + llm, e.g. split
# by llm and shape:
# BENCH_MIN_TOOL_CALLS=5 ... run <this config copy: gpt-4o, seen>
# BENCH_MIN_TOOL_CALLS=5 ... run <this config copy: gpt-4o, unseen>
# BENCH_MIN_TOOL_CALLS=5 ... run <this config copy: gpt-5, seen>
# BENCH_MIN_TOOL_CALLS=5 ... run <this config copy: gpt-5, unseen>
# Each chunk is ~2000 cells ≈ ~8h at workers=1 — survivable.
# Option (c) is the lowest-risk path that needs no infra/tier change.
# ===========================================================================
benchmark: cloudopsbench
# Three-arm contrast (locks the audit-grade attribution):
# opensre+llm full opensre prompt + MIN_TOOL_CALLS floor (=5, via env)
# llm_alone same prompt no MIN_TOOL_CALLS floor
# llm_alone_pure minimal prompt no MIN_TOOL_CALLS floor
#
# The floor is read from BENCH_MIN_TOOL_CALLS at import time (default 5) and
# stamped into provenance.json under run_inputs.min_tool_calls. Set it
# explicitly on the command line so the run records the value you intended.
#
# Reading the contrasts (cost: +50% per arm added):
# (opensre+llm) - (llm_alone) = lift from the MIN_TOOL_CALLS floor alone
# (opensre+llm) - (llm_alone_pure) = lift from opensre's full stack
# (llm_alone) - (llm_alone_pure) = lift from opensre's prompt alone
modes:
- opensre+llm
- llm_alone
- llm_alone_pure
llms:
- gpt-4o
- gpt-5
model_versions:
gpt-4o: gpt-4o-2024-11-20
gpt-5: gpt-5-2025-08-07
runs_per_case: 3
# Workers ↔ provider tier math:
# - gpt-4o tier-1 cap: 30k TPM
# - Each CloudOpsBench cell burns ~25-30k tokens per investigation
# - workers=4 ⇒ ~120k/min demand vs 30k available ⇒ rate-limit storm
# (June-3 run: 78% of cells died with "rate-limited" error,
# a1 mean fell to 2.8%)
# - workers=1 ⇒ one investigation at a time; retries drain the bucket
# between cells; ~90%+ cell-completion rate.
# Wall-time: ~3-4× longer than workers=4, but the cells actually complete.
# After upgrading to OpenAI tier-2 (450k TPM gpt-4o), can return to 4.
workers: 1
cost_budget_usd: 500.0
seed: 42
# Per-slice output dir so artifacts from different provider runs don't
# stomp on each other under .bench-results/. Each report.json is kept
# alongside its own provenance.json — joinable later by case_id + llm.
output_dir: .bench-results/cloudopsbench_v1_openai/
# Same pre-registration as the full grid — slices share the experimental
# scope; only the LLM set differs. IntegrityGuard.pre_flight still applies
# to non-dev runs.
pre_registration_path: tests/benchmarks/cloudopsbench/configs/preregistrations/cloudopsbench_v1.yml
# Power the sample for an audited bench run.
#
# 06-05 11:46 run on `limit: 30, seen_shape: [true]` produced a 95% CI half-width
# of ±0.13 on a1 — wider than the effect we're trying to resolve vs the paper
# baselines. At the full corpus (452 cases) and both shape strata, the
# scenario-clustered bootstrap CI tightens to ~±0.05, enough to make a
# "matches paper / beats paper" claim statistically defensible.
#
# Also unblocks the overfit guard — at 100% seen-shape + 100% non-held-out the
# all / seen-shape / optimize strata in the report came out identical, so the
# per-stratum mechanism couldn't surface any signal. Both shape strata + the
# 20% held-out split (from preregistrations/cloudopsbench_v1.yml) are required
# for the generalization_gate computation in the report to mean anything.
#
# Cost projection (vs 11:46's $1.67 at 180 cells, gpt-5 dispatched as gpt-4o):
# - With ALL three modes and full corpus:
# 8136 cells = 452 cases × 2 LLMs × 3 seeds × 3 modes
# - With the dispatcher fix, gpt-5 actually runs gpt-5 (~5× per-call cost
# vs gpt-4o). With llm_alone* lower MIN_TOOL_CALLS, baseline cells average
# fewer tool calls per case, partially offsetting the tripled cell count.
# - Expected total: ~$120. Well within the $500 budget but ~70× the
# 11:46 spend. Confirm budget before triggering.
# - To run cheaper:
# - Drop llm_alone_pure → saves ~$40 (loses the prompt-vs-floor attribution)
# - Drop both baselines → saves ~$80 (loses the internal contrast entirely;
# reverts to "compare against paper's number from a different harness",
# which the prereg's comparison_protocol forbids for the primary claim)
filters:
# limit: omit → run all 452 cases
seen_shape: [true, false]
systems: []
fault_categories: []
report_formats:
- json
- markdown
- html