diff --git a/AGENTS.md b/AGENTS.md index ce1cd67..375b65c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -59,6 +59,23 @@ Do not label a document as `hand-written` unless its contents are actually authored and maintained by humans. For agent-authored source-of-truth documents, use wording such as `Chinese source` instead. +### Bilingual benchmark reports + +Harbor benchmark reports MUST be generated and maintained in both languages: + +- `benchmarks/harbor/reports/en/` contains the English reports. +- `benchmarks/harbor/reports/zh-CN/` contains complete Simplified Chinese + translations with the same filenames as their English counterparts. +- When creating or updating a report, generate or refresh both versions in the + same change. Preserve all results, caveats, tables, evidence references, + identifiers, commands, and hashes across the pair; do not substitute a summary + for a full translation. +- Keep relative links valid after moving or translating reports. English + documents should link to English reports, and Chinese documents to Chinese + reports; links between reports should stay in the current language. +- Before opening or landing a PR that changes reports, verify that both + language versions are present and in sync, and report that status to the user. + ### Bilingual research notes Research notes are bilingual: diff --git a/benchmarks/harbor/README.md b/benchmarks/harbor/README.md index 63ea2cf..82412b7 100644 --- a/benchmarks/harbor/README.md +++ b/benchmarks/harbor/README.md @@ -295,6 +295,14 @@ valid scored failures stop immediately. Exhausted dependency failures raise canonical reward. The default remains timeout-only; record the authorization and selected policy in the experiment plan. +## Benchmark reports + +Reports are available in [English](reports/en/) and +[Simplified Chinese](reports/zh-CN/), with matching filenames. Create or update +both full versions together, preserving results and evidence references. Raw +run evidence stays in Git-ignored `jobs/`; machine-readable results remain in +`results/`. + ## Test the adapter ```bash diff --git a/benchmarks/harbor/README.zh-CN.md b/benchmarks/harbor/README.zh-CN.md index 74c797a..10823d0 100644 --- a/benchmarks/harbor/README.zh-CN.md +++ b/benchmarks/harbor/README.zh-CN.md @@ -238,6 +238,12 @@ Harbor 原生的 provider 凭证和已经配置的 base URL 也会转换为 nano 评分也会立即停止。依赖错误耗尽尝试后抛出 `VerifierDependencyError`,保留每次 证据并清除当前评分。默认仍只重试超时;实验计划应记录授权和实际选用的策略。 +## Benchmark 报告 + +报告提供[英文](reports/en/)和[简体中文](reports/zh-CN/)两个版本,文件名一一对应。 +新增或更新报告时,应同时生成或刷新两个完整版本,保留全部结果和证据引用。 +原始运行证据保留在由 Git 忽略的 `jobs/`,机器可读结果仍放在 `results/`。 + ## 测试 adapter ```bash diff --git a/benchmarks/harbor/configs/deepseek-v41-flash-1017-recovery-20261018/README.md b/benchmarks/harbor/configs/deepseek-v41-flash-1017-recovery-20261018/README.md index db1b94a..a6c85e8 100644 --- a/benchmarks/harbor/configs/deepseek-v41-flash-1017-recovery-20261018/README.md +++ b/benchmarks/harbor/configs/deepseek-v41-flash-1017-recovery-20261018/README.md @@ -3,12 +3,12 @@ **Completed:** sampler passed all nine official tests on the first verification; pipeline failed two of four cases on the second verification after its first attempt timed out during dependency preparation. No third attempt was started. -See the [report](../../reports/deepseek-v41-flash-1017-recovery-20261018.md) and +See the [report](../../reports/en/deepseek-v41-flash-1017-recovery-20261018.md) and [audited results](../../results/deepseek-v41-flash-1017-recovery-20261018.json). The user requested another attempt on `adaptive-rejection-sampler` and `torch-pipeline-parallelism`, with at most three attempts. The initial -[six-trial run](../../reports/deepseek-v41-flash-1017-rerun-20261018.md) left +[six-trial run](../../reports/en/deepseek-v41-flash-1017-rerun-20261018.md) left these two tasks unscored because verifier dependencies failed to download. The original containers were deleted and their artifact manifests contain no `/app` outputs, so this is a **new model trial per task**, not a regrade of the diff --git a/benchmarks/harbor/configs/deepseek-v41-flash-1017-rerun-20261018/README.md b/benchmarks/harbor/configs/deepseek-v41-flash-1017-rerun-20261018/README.md index 3ff894b..ae40004 100644 --- a/benchmarks/harbor/configs/deepseek-v41-flash-1017-rerun-20261018/README.md +++ b/benchmarks/harbor/configs/deepseek-v41-flash-1017-rerun-20261018/README.md @@ -2,13 +2,13 @@ **Completed:** three passes, one scored failure, and two unscored verifier dependency-download errors. See the -[final report](../../reports/deepseek-v41-flash-1017-rerun-20261018.md) and +[final report](../../reports/en/deepseek-v41-flash-1017-rerun-20261018.md) and [audited results](../../results/deepseek-v41-flash-1017-rerun-20261018.json). The sampler and pipeline native zeros are retained as raw evidence; their analytical scores are null because official tests never started. This experiment selects all six failed tasks from the latest -[34-task baseline](../../reports/dev34-main-baseline-20261012.md): +[34-task baseline](../../reports/en/dev34-main-baseline-20261012.md): `adaptive-rejection-sampler`, `db-wal-recovery`, `kv-store-grpc`, `query-optimize`, `torch-pipeline-parallelism`, and `regex-chess`. The [selection](selection.json) binds the previous result file and trial IDs. diff --git a/benchmarks/harbor/configs/dev12-baseline-20261011/README.md b/benchmarks/harbor/configs/dev12-baseline-20261011/README.md index d116afa..5ce9f99 100644 --- a/benchmarks/harbor/configs/dev12-baseline-20261011/README.md +++ b/benchmarks/harbor/configs/dev12-baseline-20261011/README.md @@ -8,7 +8,7 @@ The other 55 tasks are left unopened by this experiment. Completed result: **10/12 passed**, with two scored correctness failures and no final setup or verifier errors. See the -[baseline report](../../reports/dev12-main-baseline-20261011.md) and +[baseline report](../../reports/en/dev12-main-baseline-20261011.md) and [machine-readable evidence](../../results/dev12-main-baseline-20261011.json). The runtime is main at `2eb99b608dfb39464d17d109a4a8f11afda607a9`, isolated in diff --git a/benchmarks/harbor/configs/dev34-main-baseline-20261012/README.md b/benchmarks/harbor/configs/dev34-main-baseline-20261012/README.md index 8af6414..acf0bd2 100644 --- a/benchmarks/harbor/configs/dev34-main-baseline-20261012/README.md +++ b/benchmarks/harbor/configs/dev34-main-baseline-20261012/README.md @@ -8,7 +8,7 @@ none of their model outputs or rewards count toward this run. **Completed:** 28/34 passed (82.35%), with six scored failures, zero model-phase setup errors, zero verifier errors, and no verifier retries. See the -[final report](../../reports/dev34-main-baseline-20261012.md) and +[final report](../../reports/en/dev34-main-baseline-20261012.md) and [audited results](../../results/dev34-main-baseline-20261012.json). One passing tensor-parallelism trial accessed external benchmark revision metadata; its raw score is retained with a separate exposure flag. diff --git a/benchmarks/harbor/configs/headless-p0-guarded-20261007/README.md b/benchmarks/harbor/configs/headless-p0-guarded-20261007/README.md index d0204b5..ca2d184 100644 --- a/benchmarks/harbor/configs/headless-p0-guarded-20261007/README.md +++ b/benchmarks/harbor/configs/headless-p0-guarded-20261007/README.md @@ -6,7 +6,7 @@ the common eligible result is **18/19 versus 17/19**, with one improvement (`regex-chess`), no observed regression, and one shared failure (pipeline). Both arms have zero unscored trials. Estimated model cost rises 30.3% and summed agent time rises 21.6%. This is one adaptive exploratory run per task and arm. -See the [full report](../../reports/headless-p0-guarded-20261007.md) and +See the [full report](../../reports/en/headless-p0-guarded-20261007.md) and [structured evidence](../../results/tb21-headless-p0-guarded-20261007.json). This [revised plan](experiment.json) evaluates the P0 contract/verification diff --git a/benchmarks/harbor/configs/truncation-recovery-20261005/README.md b/benchmarks/harbor/configs/truncation-recovery-20261005/README.md index 8cf7b36..01ffd79 100644 --- a/benchmarks/harbor/configs/truncation-recovery-20261005/README.md +++ b/benchmarks/harbor/configs/truncation-recovery-20261005/README.md @@ -1,7 +1,7 @@ # Bounded truncation recovery experiment The [predeclared plan](experiment.json) selects the two failures from the -[v0.9.0 pilot20 baseline](../../reports/v0.9.0-baseline-20261005.md), with their +[v0.9.0 pilot20 baseline](../../reports/en/v0.9.0-baseline-20261005.md), with their original revisions and budgets. Each task receives one fresh model run; no score replaces a trial in the released baseline. @@ -35,6 +35,6 @@ uv run --project benchmarks/harbor python -m harbor_adapter run \ Record both task scores and actual recovery events. A task that passes without reaching `max_tokens` does not demonstrate recovery effectiveness. The -[experiment report](../../reports/truncation-recovery-20261005.md) and +[experiment report](../../reports/en/truncation-recovery-20261005.md) and [structured results](../../results/tb21-truncation-recovery-20261005.json) preserve that distinction. diff --git a/benchmarks/harbor/configs/truncation-recovery-repeat3-20261005/README.md b/benchmarks/harbor/configs/truncation-recovery-repeat3-20261005/README.md index 0ebaa8e..25dc32e 100644 --- a/benchmarks/harbor/configs/truncation-recovery-repeat3-20261005/README.md +++ b/benchmarks/harbor/configs/truncation-recovery-repeat3-20261005/README.md @@ -1,7 +1,7 @@ # Three additional runs per task This [predeclared plan](experiment.json) follows the earlier -[two-task experiment](../../reports/truncation-recovery-20261005.md), which +[two-task experiment](../../reports/en/truncation-recovery-20261005.md), which passed both tasks without exercising truncation recovery. Run each task three more times from scratch, preserving all six results. These are additional samples, not replacements for earlier scores. @@ -41,5 +41,5 @@ tool execution, terminal outcome, score, and accounting completeness per trial. A passing trial without truncation does not demonstrate recovery effectiveness. The recorded run used checkout `382cb38413d7d5368ad1be97e85142f280172a5b`. -See the [six-run report](../../reports/truncation-recovery-repeat3-20261005.md) +See the [six-run report](../../reports/en/truncation-recovery-repeat3-20261005.md) and [structured results](../../results/tb21-truncation-recovery-repeat3-20261005.json). diff --git a/benchmarks/harbor/reports/deepseek-official-20260930.md b/benchmarks/harbor/reports/en/deepseek-official-20260930.md similarity index 97% rename from benchmarks/harbor/reports/deepseek-official-20260930.md rename to benchmarks/harbor/reports/en/deepseek-official-20260930.md index 4b2af9c..3737779 100644 --- a/benchmarks/harbor/reports/deepseek-official-20260930.md +++ b/benchmarks/harbor/reports/en/deepseek-official-20260930.md @@ -7,7 +7,7 @@ infrastructure failures rather than model failures. The complete configuration, per-trial usage, token-estimated cost, and balance snapshots are in the -[public results](../results/tb21-deepseek-official-pilot20-20260930.json). Raw +[public results](../../results/tb21-deepseek-official-pilot20-20260930.json). Raw evidence remains in the recorded Git-ignored `jobs/` directories. ## Configuration diff --git a/benchmarks/harbor/reports/deepseek-v41-flash-1017-recovery-20261018.md b/benchmarks/harbor/reports/en/deepseek-v41-flash-1017-recovery-20261018.md similarity index 95% rename from benchmarks/harbor/reports/deepseek-v41-flash-1017-recovery-20261018.md rename to benchmarks/harbor/reports/en/deepseek-v41-flash-1017-recovery-20261018.md index c545330..11bf5ed 100644 --- a/benchmarks/harbor/reports/deepseek-v41-flash-1017-recovery-20261018.md +++ b/benchmarks/harbor/reports/en/deepseek-v41-flash-1017-recovery-20261018.md @@ -19,14 +19,14 @@ original containers had been deleted and their artifact manifests held no It does not regrade or prove correctness of the original unscored submissions. Those results and frozen artifacts remain unchanged. -The [registered plan](../configs/deepseek-v41-flash-1017-recovery-20261018/experiment.json) +The [registered plan](../../configs/deepseek-v41-flash-1017-recovery-20261018/experiment.json) has SHA256 `7ba0d4083cbc856a364417bc51025a8bd84434eb39319927664bfb4c018fba9d`. -The [audited results](../results/deepseek-v41-flash-1017-recovery-20261018.json) +The [audited results](../../results/deepseek-v41-flash-1017-recovery-20261018.json) retain trial IDs, all verifier attempts, actual pytest and native CTRF counts, source and wheel hashes, preserved-output hashes, authorization, and preflight and exposure findings. The -[configuration README](../configs/deepseek-v41-flash-1017-recovery-20261018/README.md) +[configuration README](../../configs/deepseek-v41-flash-1017-recovery-20261018/README.md) documents execution and local evidence paths. Both fresh model trials used `deepseek/deepseek-flash` against the official diff --git a/benchmarks/harbor/reports/deepseek-v41-flash-1017-rerun-20261018.md b/benchmarks/harbor/reports/en/deepseek-v41-flash-1017-rerun-20261018.md similarity index 96% rename from benchmarks/harbor/reports/deepseek-v41-flash-1017-rerun-20261018.md rename to benchmarks/harbor/reports/en/deepseek-v41-flash-1017-rerun-20261018.md index 9960d86..6b6d6bf 100644 --- a/benchmarks/harbor/reports/deepseek-v41-flash-1017-rerun-20261018.md +++ b/benchmarks/harbor/reports/en/deepseek-v41-flash-1017-rerun-20261018.md @@ -15,10 +15,10 @@ are not counted as model failures. These are fresh, single trials of all six failures from the [October 12 baseline](dev34-main-baseline-20261012.md), using the same agent and adapter source, prompt, task revisions, resources, and work budgets. The -[machine-readable results](../results/deepseek-v41-flash-1017-rerun-20261018.json) +[machine-readable results](../../results/deepseek-v41-flash-1017-rerun-20261018.json) contain trial IDs, raw rewards, analytical scores, timing, source and artifact hashes, preflight history, and audit findings. The -[final registration](../configs/deepseek-v41-flash-1017-rerun-20261018/experiment-v2.json) +[final registration](../../configs/deepseek-v41-flash-1017-rerun-20261018/experiment-v2.json) has SHA256 `9c9306f3eb17c3044987587a7329671160ee902a43c2b67be6de4f857e4c96c2`. @@ -88,7 +88,7 @@ The archive's upstream size, filename, and SHA256 were verified with the repository's existing cache utility. All six verifier dependency profiles were explicitly **`not_configured`**; successful agent installation did not certify their verifier dependencies. The -[configuration README](../configs/deepseek-v41-flash-1017-rerun-20261018/README.md) +[configuration README](../../configs/deepseek-v41-flash-1017-rerun-20261018/README.md) documents both plans and the retained interruption evidence. Original images, package sources, official test scripts, resources, and verifier time limits were preserved. diff --git a/benchmarks/harbor/reports/dev12-main-baseline-20261011.md b/benchmarks/harbor/reports/en/dev12-main-baseline-20261011.md similarity index 97% rename from benchmarks/harbor/reports/dev12-main-baseline-20261011.md rename to benchmarks/harbor/reports/en/dev12-main-baseline-20261011.md index 9113970..4fa4eed 100644 --- a/benchmarks/harbor/reports/dev12-main-baseline-20261011.md +++ b/benchmarks/harbor/reports/en/dev12-main-baseline-20261011.md @@ -33,9 +33,9 @@ shares its unproven assumption. More self-tests alone would not address either. setup has a separate 1,800-second allowance. Original verifier limits remain unchanged, with at most three attempts and only timeouts permitting a retry. -[Selection and configuration](../configs/dev12-baseline-20261011/README.md), -[active plan](../configs/dev12-baseline-20261011/experiment-v3.json), and -[machine-readable results](../results/dev12-main-baseline-20261011.json) contain +[Selection and configuration](../../configs/dev12-baseline-20261011/README.md), +[active plan](../../configs/dev12-baseline-20261011/experiment-v3.json), and +[machine-readable results](../../results/dev12-main-baseline-20261011.json) contain the revisions, budgets, artifact hashes, metrics, and post-run diagnosis. ## Results @@ -137,8 +137,8 @@ choice. Label accuracy should not substitute for behavioral equivalence. The original install-only preflight had five successes, six image-pull/start errors, and one APT setup timeout. The second had eleven successes and one partial uv download. Both complete histories remain in the -[first](../configs/dev12-baseline-20261011/preflight-v1-evidence.json) and -[second](../configs/dev12-baseline-20261011/preflight-v2-evidence.json) evidence +[first](../../configs/dev12-baseline-20261011/preflight-v1-evidence.json) and +[second](../../configs/dev12-baseline-20261011/preflight-v2-evidence.json) evidence files. These eight preflight failures are separate from the twelve scored trials. diff --git a/benchmarks/harbor/reports/dev34-main-baseline-20261012.md b/benchmarks/harbor/reports/en/dev34-main-baseline-20261012.md similarity index 98% rename from benchmarks/harbor/reports/dev34-main-baseline-20261012.md rename to benchmarks/harbor/reports/en/dev34-main-baseline-20261012.md index 9cedb3c..38bace3 100644 --- a/benchmarks/harbor/reports/dev34-main-baseline-20261012.md +++ b/benchmarks/harbor/reports/en/dev34-main-baseline-20261012.md @@ -10,7 +10,7 @@ revision metadata. Its official pass is retained and the exposure is reported separately below. This is an already exposed development pool, not a held-out benchmark or a claim of evaluation without external benchmark-material access. -The [machine-readable results](../results/dev34-main-baseline-20261012.json) +The [machine-readable results](../../results/dev34-main-baseline-20261012.json) contain all trial identifiers, source/task/configuration provenance, native scores, test counts, timing, partial usage, failure diagnoses, and evidence hashes. Raw trajectories and logs remain local because they can contain secrets. @@ -38,7 +38,7 @@ that main commit. No agent or prompt optimization was included. | Agent work | Native task timeout minus 180 seconds | | Verifier | Original per-attempt limit; timeout-only retries allowed, none used | -The final [v5 registration](../configs/dev34-main-baseline-20261012/experiment-v5.json) +The final [v5 registration](../../configs/dev34-main-baseline-20261012/experiment-v5.json) has SHA256 `f7bc7b329767f4b8007956462f6cdbd4407d386af493524df27ba313c0a4e4c3`. All 34 jobs installed the same wheel, SHA256 `f4dcc18758e584696f955ae57fd18c751599b70e8b497ca2db7ef9e2b16e9350`. @@ -234,7 +234,7 @@ Each task had separate cache sidecars in its own network namespace, no published ports, no task filesystem or credential mounts, and separate CPU/memory limits. All 34 model trials used the final v5 transport. Details, original failure evidence, manifests, and network integration probes are linked from the -[run configuration README](../configs/dev34-main-baseline-20261012/README.md). +[run configuration README](../../configs/dev34-main-baseline-20261012/README.md). The supporting Harbor workflow suite passed **167 tests** before model work; the corresponding branch commit also passed all three CI checks. diff --git a/benchmarks/harbor/reports/dual-budget-20260929.md b/benchmarks/harbor/reports/en/dual-budget-20260929.md similarity index 99% rename from benchmarks/harbor/reports/dual-budget-20260929.md rename to benchmarks/harbor/reports/en/dual-budget-20260929.md index d7305e2..d5dc22e 100644 --- a/benchmarks/harbor/reports/dual-budget-20260929.md +++ b/benchmarks/harbor/reports/en/dual-budget-20260929.md @@ -8,7 +8,7 @@ and PyTorch pipeline numerical correctness failed their independent verifiers; normal finalization did not imply task success. The complete configuration, metrics, and all retained trial rows are in the -[public results](../results/tb21-dualbudget-fixed-provider-20260929.json), including +[public results](../../results/tb21-dualbudget-fixed-provider-20260929.json), including the four superseded treatment trials. Raw evidence remains in the recorded Git-ignored `jobs/` directories. diff --git a/benchmarks/harbor/reports/headless-p0-guarded-20261007.md b/benchmarks/harbor/reports/en/headless-p0-guarded-20261007.md similarity index 96% rename from benchmarks/harbor/reports/headless-p0-guarded-20261007.md rename to benchmarks/harbor/reports/en/headless-p0-guarded-20261007.md index 4324eb1..2c5fc11 100644 --- a/benchmarks/harbor/reports/headless-p0-guarded-20261007.md +++ b/benchmarks/harbor/reports/en/headless-p0-guarded-20261007.md @@ -18,10 +18,10 @@ without selection, and all twenty guarded-candidate trials were fresh. There are no held-out tasks or repeat samples. A score difference on this cohort does not establish a stable or general capability improvement. -The [structured results](../results/tb21-headless-p0-guarded-20261007.json) preserve +The [structured results](../../results/tb21-headless-p0-guarded-20261007.json) preserve every trial, paired outcome, accounting limitation, integrity finding, and artifact -hash. See the [guarded plan](../configs/headless-p0-guarded-20261007/experiment.json) -and [reproduction instructions](../configs/headless-p0-guarded-20261007/README.md). +hash. See the [guarded plan](../../configs/headless-p0-guarded-20261007/experiment.json) +and [reproduction instructions](../../configs/headless-p0-guarded-20261007/README.md). ## Candidate and frozen inputs @@ -223,8 +223,8 @@ reference. The candidate arm was interrupted at 15:06 UTC. All five started trials are preserved: **three passes, one installation failure before model work, and one contaminated trial cancelled during verification**. Fifteen candidate trials never started. These records are not replaced by or combined with the -new candidate's outcomes. See the [original-candidate audit](../results/headless-p0-original-candidate-audit-20261007.json) -and [original plan](../configs/headless-p0-20261007/experiment.json). +new candidate's outcomes. See the [original-candidate audit](../../results/headless-p0-original-candidate-audit-20261007.json) +and [original plan](../../configs/headless-p0-20261007/experiment.json). The abandoned arm's additional known estimated model cost is **$0.231970**; the installation failure made no model calls and therefore has zero inference cost. This extra cost is outside the comparison table above. @@ -234,7 +234,7 @@ v0.9.0 baseline's passing pipeline trial: it downloaded the task repository, read the solution and evaluation tests, and ran the copied tests. Its old raw reward remains unchanged, but that pass is ineligible as independent-capability evidence. The historical **18/20 is a preserved raw score**, not a clean causal -control for this experiment. See the [historical audit](../results/v0.9.0-pipeline-integrity-audit-20261007.json) +control for this experiment. See the [historical audit](../../results/v0.9.0-pipeline-integrity-audit-20261007.json) and the annotation in the [original report](v0.9.0-baseline-20261005.md). A targeted scan of the other nineteen historical trajectories found no matching retrieval pattern; this is not an exhaustive retrospective audit. @@ -269,10 +269,10 @@ No task name, filename, algorithm, answer, or verifier formula entered the promp The current prompt has 385 words, SHA256 `37c4d9d44640c0051dc5a20e5954a067b98e8c51be07a48f080aa059e725c55d`. -Its [single-task plan](../configs/headless-workspace-20261007/experiment.json) +Its [single-task plan](../../configs/headless-workspace-20261007/experiment.json) was registered before one fresh path-tracing run from an isolated checkout. The run waited for a full-comparison arm to finish so concurrency stayed at most -two. See the [follow-up evidence](../results/headless-workspace-followup-20261007.json). +two. See the [follow-up evidence](../../results/headless-workspace-followup-20261007.json). The clarified candidate **passed** the official verifier on its first attempt. It disassembled the supplied executable (ATIF step 29 and subsequent reads), @@ -315,7 +315,7 @@ then waits and kills the command session at its timeout. The guarded batching scheduler also ran `timeout 1500 python3 run4.py ...` and was interrupted at the actual 120-second tool limit. -The [scaled local diagnostic](../results/headless-tool-limit-probe-20261007.json) +The [scaled local diagnostic](../../results/headless-tool-limit-probe-20261007.json) uses the unchanged Bash implementation with a 0.25-second tool limit and a 2-second workload. The problematic conditional-background form times out; redirecting the whole group returns immediately and its completion marker is diff --git a/benchmarks/harbor/reports/stream-recovery-20260915.md b/benchmarks/harbor/reports/en/stream-recovery-20260915.md similarity index 96% rename from benchmarks/harbor/reports/stream-recovery-20260915.md rename to benchmarks/harbor/reports/en/stream-recovery-20260915.md index b274067..f3ea0b5 100644 --- a/benchmarks/harbor/reports/stream-recovery-20260915.md +++ b/benchmarks/harbor/reports/en/stream-recovery-20260915.md @@ -129,9 +129,9 @@ the retry branch. ## Evidence locations -- [September 12 results](../results/tb21-generation-budget-65536-20260912.json) -- [September 14 results](../results/tb21-tool-input-recovery-20260914.json) -- [Journal v3 protocol](../../../docs/dev_docs/en/event-journal-protocol-v3.md) +- [September 12 results](../../results/tb21-generation-budget-65536-20260912.json) +- [September 14 results](../../results/tb21-tool-input-recovery-20260914.json) +- [Journal v3 protocol](../../../../docs/dev_docs/en/event-journal-protocol-v3.md) - Local record: `jobs/tb21-stream-recovery-targeted3-20260915-record/` - Local offline replay: `offline_replay.py` and `offline-replay.json` in that record diff --git a/benchmarks/harbor/reports/truncation-recovery-20261005.md b/benchmarks/harbor/reports/en/truncation-recovery-20261005.md similarity index 96% rename from benchmarks/harbor/reports/truncation-recovery-20261005.md rename to benchmarks/harbor/reports/en/truncation-recovery-20261005.md index 8fc4a7b..51505c0 100644 --- a/benchmarks/harbor/reports/truncation-recovery-20261005.md +++ b/benchmarks/harbor/reports/en/truncation-recovery-20261005.md @@ -36,7 +36,7 @@ mode continues to return to the user after a truncation. match preflight. Verifier timeouts alone may retry at the original per-attempt limit, at most three attempts on the same agent output. -The [predeclared plan](../configs/truncation-recovery-20261005/experiment.json) +The [predeclared plan](../../configs/truncation-recovery-20261005/experiment.json) contains the task revisions, budgets, source/config hashes, and analysis rules. Both install-only checks passed with the experimental agent. Both verifier dependency profiles explicitly report `not_configured`; installation success @@ -60,7 +60,7 @@ There are 0 incomplete model attempts. Costs use the static DeepSeek price table and are not provider billing totals. Agent seconds include finalization overhead. -The [structured results](../results/tb21-truncation-recovery-20261005.json) +The [structured results](../../results/tb21-truncation-recovery-20261005.json) include both trials, preflight, source/wheel hashes, recovery-event counts, per-attempt verifier records, native outcomes, and usage. Raw journals, trajectories, and test logs remain in the referenced Git-ignored `jobs/` paths. diff --git a/benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md b/benchmarks/harbor/reports/en/truncation-recovery-repeat3-20261005.md similarity index 96% rename from benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md rename to benchmarks/harbor/reports/en/truncation-recovery-repeat3-20261005.md index d1d2f42..6a25f70 100644 --- a/benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md +++ b/benchmarks/harbor/reports/en/truncation-recovery-repeat3-20261005.md @@ -11,7 +11,7 @@ live continuation after truncation, not successful recovery of a passing score. The maintainer requested three additional runs of each previously failed task after the [initial two-run experiment](truncation-recovery-20261005.md) passed -without any truncation. The [plan](../configs/truncation-recovery-repeat3-20261005/experiment.json) +without any truncation. The [plan](../../configs/truncation-recovery-repeat3-20261005/experiment.json) was committed before model work, with all six jobs and their queue order fixed. Every job ran once in a fresh container; no outcome was replaced or retried. @@ -38,7 +38,7 @@ recorded task-file hashes remained unchanged. All six native ATIF trajectories validate, and all six native terminal outcomes are `completed`. The six jobs ran from **2026-10-05 14:27:47 to 15:20:14 UTC**, including setup, -model work, verification, and cleanup. The [reproduction instructions](../configs/truncation-recovery-repeat3-20261005/README.md) +model work, verification, and cleanup. The [reproduction instructions](../../configs/truncation-recovery-repeat3-20261005/README.md) record the fixed schedule and standard commands. ## All six results @@ -104,7 +104,7 @@ that task. Keep these conclusions separate from the deterministic tests of the once-per-run cap, partial-tool safety, and budget boundaries already recorded in the initial experiment. -The [structured results](../results/tb21-truncation-recovery-repeat3-20261005.json) +The [structured results](../../results/tb21-truncation-recovery-repeat3-20261005.json) preserve every trial, its original result/trajectory/verifier-log paths, per-attempt verifier records, source/artifact checks, accounting completeness, and the sequence of model/tool activity after recovery. Raw artifacts remain diff --git a/benchmarks/harbor/reports/v0.9.0-baseline-20261005.md b/benchmarks/harbor/reports/en/v0.9.0-baseline-20261005.md similarity index 96% rename from benchmarks/harbor/reports/v0.9.0-baseline-20261005.md rename to benchmarks/harbor/reports/en/v0.9.0-baseline-20261005.md index 43d5d8f..754dd30 100644 --- a/benchmarks/harbor/reports/v0.9.0-baseline-20261005.md +++ b/benchmarks/harbor/reports/en/v0.9.0-baseline-20261005.md @@ -9,13 +9,13 @@ and **0 unscored trials**. This is the baseline for development toward 0.10.0. > then ran the copied tests before finishing. Its original reward remains 1, > but that pass is **ineligible as independent-capability evidence**. The 18/20 > below is the preserved raw score, not a fully clean capability baseline. -> See the [audit record](../results/v0.9.0-pipeline-integrity-audit-20261007.json). +> See the [audit record](../../results/v0.9.0-pipeline-integrity-audit-20261007.json). > A targeted scan of the other 19 trajectories found no matching retrieval > pattern; this does not establish an exhaustive historical information audit. -The [public results](../results/tb21-v090-baseline-20261005.json) contain all +The [public results](../../results/tb21-v090-baseline-20261005.json) contain all 20 trials, hashes, timings, native outcomes, and known usage. The -[predeclared configuration](../configs/v0.9.0-pilot20/baseline.json) records the +[predeclared configuration](../../configs/v0.9.0-pilot20/baseline.json) records the original task revisions and budgets. Raw evidence stays in Git-ignored `jobs/`. ## Frozen inputs and execution diff --git a/benchmarks/harbor/reports/zh-CN/deepseek-official-20260930.md b/benchmarks/harbor/reports/zh-CN/deepseek-official-20260930.md new file mode 100644 index 0000000..4ec135c --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/deepseek-official-20260930.md @@ -0,0 +1,79 @@ +# DeepSeek 官方端点 pilot20 + +将 20 题 pilot 集从 OpenRouter 切换到 DeepSeek 官方兼容 Anthropic 的端点,使用 +`deepseek-flash` 重新运行。结果为 **18 次计分试验中通过 16 次**(Harbor 均值 +0.80);另有两次试验因基础设施故障而未能计分,并非模型失败。 + +完整配置、逐次用量、按 token 估算的费用和余额快照见 +[公开结果](../../results/tb21-deepseek-official-pilot20-20260930.json)。原始证据保留在 +记录中指定、由 Git 忽略的 `jobs/` 目录内。 + +## 配置 + +| 设置 | 值 | +| --- | --- | +| 作业 | `tb21-deepseek-official-pilot20-20260930` | +| Agent | `e75cacb6`(`0.8.1.dev45`),在本地构建并验证的 wheel | +| 端点 | `https://api.deepseek.com/anthropic`(Anthropic Messages) | +| 模型 | `deepseek-flash` | +| 任务 | 固定版本的 20 题 pilot 集 | +| 预算 | max_turns 100,max_tokens 65536,每题 agent 预算为原生时限减 180 秒 | +| 并发 / 尝试次数 / 重试次数 | 2 / 1 / 0 | +| 提供商固定 / HTTP 录制器 | 无——唯一变化是提供商 | + +## 结果 + +| 分类 | 数量 | +| --- | ---: | +| 计划试验 | 20 | +| 计分试验 | 18 | +| 通过 | 16 | +| 奖励为 0 | 2 | +| 基础设施异常 | 2 | +| 计分试验通过率 | 88.9% | + +- 奖励为 0:`torch-tensor-parallelism`、`pytorch-model-recovery`。 +- `qemu-alpine-ssh`:agent 设置阶段获取固定版本的 Debian 包时遇到 HTTP 404; + 未发生模型调用。 +- `torch-pipeline-parallelism`:agent 已完成,但官方 verifier 超过其原生 900 秒时限。 + +Token 用量:prompt 30,933,108(缓存 30,586,240,未缓存 346,868),completion +891,020。 + +## 无提供商费用 API 时的费用估算 + +DeepSeek 官方 API 返回 token 用量,但没有逐请求费用、generation id 或用量/计费 +端点:`usage.cost` 和 `x-generation-id` 均不存在,`/v1/generation`、`/user/usage`、 +`/billing/usage` 和 `/pricing` 均返回 404。因此,之前的 OpenRouter 对账路径无法 +解析 DeepSeek 费用。 + +本分支新增**基于 token 的估算器**(见“实现”),按静态 DeepSeek 价目表计算返回 +token 的费用(每百万 token 的美元价格:输入 0.3、缓存读取 0.006、缓存写入 0、 +输出 1.2)。结果标记为 `kind: estimated`,以便与提供商返回的费用区分。 + +| 项目 | Token 数 | 单价 | 费用(美元) | +| --- | ---: | ---: | ---: | +| 未缓存输入 | 346,868 | 0.3 | 0.104060 | +| 缓存读取 | 30,586,240 | 0.006 | 0.183517 | +| 输出 | 891,020 | 1.2 | 1.069224 | +| **合计** | | | **1.356802** | + +账户余额变化(`/user/balance`,¥106.63 → ¥102.01)仅记录为上界:运行期间交互式 +助手会话使用了同一账户,因此它不是隔离的单次运行费用,且其币种为人民币。 + +## 实现 + +- `cost.py`:新增 `estimated_cost(model, usage)` 和静态 DeepSeek 价目表; + `agent.py` 仅在 `usage_cost` 未能取得费用后才使用估算,因此提供商明确返回的 + 费用始终优先。 +- `harbor_adapter`:系统依赖的 `apt-get` 事务遇到暂时性 HTTP 404 时,重试一到 + 两次再判定设置失败。后续 qemu 重跑在第 1/3 和 2/3 次尝试中触发了重试,但 + 固定的 `bullseye-security` 索引指向已下架的 `.deb` 版本,因此该 404 必然发生, + 仅靠重试无法修复此任务。历史修复方案是从原始 APT 索引预加载经过验证的 + `.deb` 缓存。 + +## 比较限制 + +OpenRouter pilot20 运行使用了提供商固定、不同的快照日期和不同的观测工具, +而本次运行还存在两项基础设施异常。因此,这是一份提供商切换记录,不能作为 +受控的因果比较。 diff --git a/benchmarks/harbor/reports/zh-CN/deepseek-v41-flash-1017-recovery-20261018.md b/benchmarks/harbor/reports/zh-CN/deepseek-v41-flash-1017-recovery-20261018.md new file mode 100644 index 0000000..3a1c7a1 --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/deepseek-v41-flash-1017-recovery-20261018.md @@ -0,0 +1,73 @@ +# Flash 1017:经授权重试两项未计分任务 + +**采样器通过;流水线并行失败。** 本次后续运行中,两者均取得了有效的官方测试 +结果。采样器在第一次验证中完成。流水线验证的第一次尝试在依赖准备阶段超时, +第二次尝试完成并得到有效的失败分数。无需第三次尝试,也未启动第三次尝试。 + +| 任务 | 官方结果 | 测试通过 / 失败 | Verifier 尝试 | Agent 秒数 | +| --- | --- | ---: | --- | ---: | +| adaptive-rejection-sampler | 通过,奖励 1 | 9 / 0 | 1:完成 | 591.4 | +| torch-pipeline-parallelism | 失败,奖励 0 | 2 / 2 | 1:超时;2:完成 | 562.6 | + +[最初的六次试验](deepseek-v41-flash-1017-rerun-20261018.md)中,这两题因官方依赖 +下载失败而未计分。随后用户授权对两题重试,最多尝试三次。原容器已被删除, +其产物清单也未保留 `/app` 输出,因此本次后续运行**为每题重新生成了一份模型 +输出**。这并非对原未计分提交重新评分,也不能证明原提交正确。原结果和冻结 +产物保持不变。 + +[登记计划](../../configs/deepseek-v41-flash-1017-recovery-20261018/experiment.json) +的 SHA256 为 +`7ba0d4083cbc856a364417bc51025a8bd84434eb39319927664bfb4c018fba9d`。 +[审计结果](../../results/deepseek-v41-flash-1017-recovery-20261018.json)保留试验 ID、 +所有 verifier 尝试、实际 pytest 和原生 CTRF 计数、源码及 wheel 哈希、保留输出 +的哈希、授权,以及预检和信息接触审查结论。 +[配置 README](../../configs/deepseek-v41-flash-1017-recovery-20261018/README.md) +记录了执行方式和本地证据路径。 + +两次新的模型试验都通过 DeepSeek 官方端点使用 `deepseek/deepseek-flash`。 +Agent 的 Python 源码与初次评估逐字节一致,沿用同一份 385 词提示词、固定任务 +修订、原始镜像、资源和限制:100 次回复、每次回复最多 65,536 个输出 token、 +720 秒模型工作时间,以及独立的 1800 秒设置时限。被评估 checkout 冻结于 +`35fe1a2d6a786619a2adace1cfa9d0acca08d533`;其 adapter 新增可选的测试前 uv 网络 +下载恢复。用户授权的计划显式启用了该功能。普通运行仍默认仅对超时重试。 + +标准 Harbor 入口在模型工作前运行了两次新的仅安装检查。两次均成功,但两题的 +verifier 依赖配置均明确保持为 **`not_configured`**。安装成功未被视为 verifier +依赖已通过认证。随后每题运行一次模型。验证复用各自的新输出和容器,总尝试 +次数不超过三次,每次仍采用原始的 **900 秒时限**。有效官方结果(包括零分)会 +立即停止恢复;设置失败、verifier 错误和计分失败分别记录。原始包源和测试脚本 +未改动。 + +采样器安装了 R,提交 `ars.R`,通过全部九项官方测试,覆盖分布采样、样本文件、 +模块化、输入校验和非对数凹情形处理。验证约耗时 38.3 秒,其中 pytest 为 8.55 +秒,无需重试。 + +流水线第一次尝试在 uv 下载 PyTorch/CUDA 依赖时达到 900 秒时限;pytest 尚未 +启动。第二次尝试复用同一容器和缓存,完成依赖安装,并执行全部四项官方用例。 +存在性和无 hooks 检查通过。两个 world-size 用例均在 **`lm_head.bwd`、microbatch +0** 处的反向信号比较失败:world size 1 对应 rank 0,world size 2 对应 rank 1, +最大差异均为 **0.03571479767560959**。Agent 报告其自身 CPU PyTorch/Transformers +环境中的自测成功,但这些自测未能证明满足官方比较要求。这是有效的计分失败, +并非 verifier 安装错误。原生 CTRF 将参数化用例按名称去重为三个测试;实际 +pytest 执行为**两项通过、两项失败**。两种表示均予以保留。 + +流水线第二次尝试耗时 828.9 秒,其中 pytest 为 76.46 秒。因此重试预算得到遵守: +一次原生超时重试、无整次试验重试,且在取得有效失败结果后未再尝试。可选的 +依赖下载错误规则未在这些原生试验中触发;其行为由回归测试覆盖。 + +所有输出于 **2026-10-18 15:06:01 UTC** 冻结,时间在两次试验结束之后、进一步 +审阅轨迹或官方测试内容之前。共执行十三项官方 pytest 用例:十一项通过、两项 +失败,无跳过或错误。两项 `/app` 产物收集均成功,提交的代码和样本文件保留在 +本地,供以后检查或验证。结果记录了精简的产物树摘要及提交代码/样本的精确哈希。 +所有原始镜像身份未变,试验容器均已删除。对两份冻结轨迹的审查未发现检索 +benchmark 答案、隐藏 verifier 内容或提供商凭据的行为。流水线列出了一个空的 +verifier 日志目录,并查看了自己的引导/启动日志;其他网络访问均涉及公开依赖源。 + +重试实现通过全部 **178 项 Harbor 工作流测试**,涵盖有界重试、归档、重试耗尽后 +错误仍不计分、默认行为,以及有效结果后停止。该实现的三项 CI 检查均通过。 +Adapter 的英文和中文 README 都记录了可选模式。 + +模型作业占用约 **39.4 分钟**墙钟时间,不含预检。本次仍属于对已接触过的任务的 +探索性后续运行,使用新模型输出并实时解析依赖。它不能隔离 checkpoint 的影响, +也不能为完整 34 题池提供新的分数。原始轨迹、日志和 `/app` 内容保留在本地; +仅发布派生结论和哈希。 diff --git a/benchmarks/harbor/reports/zh-CN/deepseek-v41-flash-1017-rerun-20261018.md b/benchmarks/harbor/reports/zh-CN/deepseek-v41-flash-1017-rerun-20261018.md new file mode 100644 index 0000000..0484e2c --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/deepseek-v41-flash-1017-rerun-20261018.md @@ -0,0 +1,86 @@ +# DeepSeek Flash 1017:重跑此前失败的六题 + +本报告保留最初的六次试验。后续 +[经授权的跟进运行](deepseek-v41-flash-1017-recovery-20261018.md)为两项未计分任务 +生成了新输出:采样器通过,流水线并行在执行官方测试后失败。下述初始结果保持 +不变。 + +三项此前失败的任务通过:**WAL 恢复、gRPC KV 存储和 SQL 优化**。正则表达式国际 +象棋失败。采样器和流水线并行试验属于**不计分的 verifier 错误**:依赖下载在 +pytest 启动前失败。结果中保留其原生零奖励,但不将其计为模型失败。 + +本次对[10 月 12 日基线](dev34-main-baseline-20261012.md)中失败的全部六题各进行 +一次新试验,沿用相同的 agent 和 adapter 源码、提示词、任务修订、资源和工作 +预算。[机器可读结果](../../results/deepseek-v41-flash-1017-rerun-20261018.json) +包含试验 ID、原始奖励、分析分数、计时、源码与产物哈希、预检历史和审计结论。 +[最终登记文件](../../configs/deepseek-v41-flash-1017-rerun-20261018/experiment-v2.json) +的 SHA256 为 +`9c9306f3eb17c3044987587a7329671160ee902a43c2b67be6de4f857e4c96c2`。 + +| 任务 | 此前结果 | 新结果 | 官方测试通过 / 失败 | Agent 秒数 | +| --- | --- | --- | ---: | ---: | +| adaptive-rejection-sampler | 失败 | 未计分:NumPy 下载超时 | 未启动 | 627.6 | +| db-wal-recovery | 失败 | 通过 | 7 / 0 | 76.2 | +| kv-store-grpc | 失败 | 通过 | 7 / 0 | 304.2 | +| query-optimize | 失败 | 通过 | 6 / 0 | 287.0 | +| torch-pipeline-parallelism | 失败 | 未计分:CUDA 依赖下载超时 | 未启动 | 613.9 | +| regex-chess | 失败 | 失败:缺少要求的文件 | 0 / 4 | 644.8 | + +四题共执行二十四项官方测试用例:二十项通过、四项失败。六次模型试验全部完成, +没有设置错误。整次试验重试和 verifier 重试均为零。这个不完整且经过筛选的子集 +无法为整个 34 题开发池提供新的分数。 + +本次通过官方 `https://api.deepseek.com/anthropic` 端点使用 +`deepseek/deepseek-flash`。DeepSeek 的 +[API 文档](https://api-docs.deepseek.com/quick_start/agent_integrations/)和 +[10 月 17 日公告](https://api-docs.deepseek.com/news/news261017/)将 +`deepseek-flash` 标识为 **DeepSeek-V4.1-Flash-1017**。该映射在执行前已核对; +此别名并非不可变的 checkpoint 固定标识。 + +被评估源码仍为 `2eb99b608dfb39464d17d109a4a8f11afda607a9`,使用原来的 385 词 +headless 提示词。每次模型试验安装的都是上次基线完全相同的 wheel,SHA256 为 +`f4dcc18758e584696f955ae57fd18c751599b70e8b497ca2db7ef9e2b16e9350`。 +限制仍为 100 次回复、每次请求最多 65,536 个输出 token;五题的工作预算为 720 +秒,正则表达式国际象棋为 3420 秒。按预算/名称升序分为连续的两题一组,并发为 +二。标准 Harbor 入口构建并记录了每份源码快照和 wheel。Temperature 和 reasoning +effort 均未设置。 + +WAL 恢复在打开 SQLite 前保留原数据库和 sidecar,解析 WAL,并恢复全部 11 条 +记录。gRPC 通过官方请求契约测试。SQL 通过正确性、数据库保留和官方优化参考 +性能测试。上次运行的失败诊断未注入任何新任务指令。 + +正则表达式国际象棋因响应截断,在约 10.7 分钟后停止,远早于其 57 分钟工作期限。 +ATIF 第 5、8 步均以 `stop_reason=max_tokens` 结束,分别报告 65,536 和 65,535 个 +completion token。Agent 在这两次响应之间用掉唯一一次自动截断恢复。两次响应 +均未产生得到执行的文件写入工具调用,因此 `/app/re.json` 不存在,四项官方测试 +全部以 `FileNotFoundError` 失败。本次没有评估到任何已提交的国际象棋实现;无法 +据此判断此前的王车易位 bug 是否已修复。 + +采样器的原始 verifier 因网络超时未能下载 `numpy==2.3.3`。流水线验证未能下载 +其原始 `torch==2.7.0` 依赖所需的 `nvidia-cusparse-cu12==12.5.4.2`。两者均未进入 +pytest,也未生成 CTRF 测试报告。原始封装脚本仍返回原生零奖励,且未抛出 Harbor +异常。因此其分析分数为 null,分类为 `verifier_error`。这些是分别耗时 363.0 和 +159.8 秒的已完成尝试中的下载错误,并非 verifier 进程超时;登记的仅超时重试 +策略不允许再次尝试。提交的 R 采样器和流水线实现仍未通过官方验证。Agent 自建 +的 R 测试和自定义 torch 桩不能替代官方验证。 + +模型工作前,两次仅安装试验因 uv 通常选择的原始 CPython 3.13.9+20251120 归档 +下载缓慢而被人为中止。传输修订为完全相同的归档添加经过验证的缓存条目,随后 +六次新的安装检查全部成功。归档的上游大小、文件名和 SHA256 均由仓库现有缓存 +工具验证。六项 verifier 依赖配置均明确为 **`not_configured`**;agent 安装成功 +并不代表其 verifier 依赖已获认证。 +[配置 README](../../configs/deepseek-v41-flash-1017-rerun-20261018/README.md)记录了 +两份计划及保留的中止证据。原始镜像、包源、官方测试脚本、资源和 verifier 时限 +均予以保留。 + +六次原生试验均在审阅轨迹或官方测试内容之前结束。输出于 **2026-10-18 14:09:39 +UTC** 冻结。源码快照、已安装 wheel 摘要、任务/配置哈希、预检证据和队列屏障 +均经过验证。两份登记计划和全部 14 份 Harbor 配置均通过校验。六个原始镜像 ID +和 registry 摘要均保持不变;计分试验容器已全部清除。扫描并审阅六份冻结轨迹, +未发现检索 benchmark 答案、访问隐藏 verifier 或暴露提供商凭据的行为。原始日志 +和轨迹保留在本地;仅发布派生结论和证据哈希。 + +模型作业占用约 **40.1 分钟**墙钟时间,不含预检。这是一次对已接触过的开发任务 +进行的探索性重跑,筛选依据是此前失败。单次试验、实时依赖解析和服务条件变化 +无法隔离 checkpoint 影响,也无法确立可靠性。证据支持的结论是:新增观察到 +三项通过、一项有效计分失败,以及两项尚未解决的官方评估。 diff --git a/benchmarks/harbor/reports/zh-CN/dev12-main-baseline-20261011.md b/benchmarks/harbor/reports/zh-CN/dev12-main-baseline-20261011.md new file mode 100644 index 0000000..f38d07f --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/dev12-main-baseline-20261011.md @@ -0,0 +1,174 @@ +# 12 题 main 基线,2026-10-11 + +冻结的 main 运行时通过 **12 题中的 10 题(83.3%)**。另两题均进入官方断言, +因输出正确性失败。这十二次计分试验最终没有设置或 verifier 错误。这是一份 +每题运行一次的新开发基线,不是与 PR #48 中提示词候选的比较。 + +失败暴露了两个具体的验证缺口:恢复前丢失原始证据,以及用共享未经证明假设的 +参考实现验证自身实现。单纯增加自测数量无法解决这两个问题。 + +## 运行时与任务组 + +- 运行时:main `2eb99b608dfb39464d17d109a4a8f11afda607a9`,位于 detached worktree + `jobs/dev12-baseline-main-source`。Agent 和 adapter 源码未变。报告分支只包含 + benchmark 基础设施、配置和证据。 +- 模型:`deepseek/deepseek-flash`,端点 `https://api.deepseek.com/anthropic`; + 100 次回复,每次请求最多 65,536 个输出 token;temperature 和 reasoning effort + 未设置。原始 385 词 headless 提示词冻结在配置目录内。 +- 数据集:`terminal-bench/terminal-bench-2-1`,修订为 + `sha256:7d7bdc1cbedad549fc1140404bd4dc45e5fd0ea7c4186773687d177ad3a0699a`。 + 十二题在下载任务包、获知结果前,按公开名称和覆盖范围选定。它们将此前已 + 运行的 22 题扩展为 34 题开发池。本实验未打开其余 55 个任务包。这种目的性 + 抽样既不是全数据集分数,也不能估计重复运行可靠性。 +- 每题按登记顺序运行一次,并发二,连续题对之间设屏障。没有替换任务,也没有 + 重试完整模型试验。工作时限为原生 agent 时限减 180 秒;设置阶段独立限时 + 1,800 秒。原始 verifier 时限不变,最多尝试三次,且仅超时允许重试。 + +[选择与配置](../../configs/dev12-baseline-20261011/README.md)、 +[生效计划](../../configs/dev12-baseline-20261011/experiment-v3.json)和 +[机器可读结果](../../results/dev12-main-baseline-20261011.json)包含修订、预算、 +产物哈希、指标和运行后诊断。 + +## 结果 + +下表 agent 时间为 Harbor 的 agent 执行阶段,不含环境启动、agent 安装和官方 +verifier。测试计数来自官方任务测试集;安全任务另外运行了 367 项项目测试。 + +| 任务 | 奖励 | 官方测试 | Agent 秒数 | 观察到的自验证 | +| --- | ---: | --- | ---: | --- | +| `cobol-modernization` | 1 | 3 项通过 | 505.2 | 执行原始 COBOL 作为判定参考;字节比较、退出行为、155 个差分和 120 个模糊用例。 | +| `fix-code-vulnerability` | 1 | 6 项通过 | 66.3 | 复现失败的 header 校验测试,随后 367 项项目测试通过;运行 WSGI 入口。 | +| `nginx-request-logging` | 1 | 8 项通过 | 34.1 | 真实 HTTP 请求、404 内容、日志字段和并发限流探测。 | +| `git-multibranch` | 1 | 1 项通过 | 232.1 | 密码 SSH clone/push、两条 HTTPS 部署路径、部署计时和服务重启。 | +| `db-wal-recovery` | 0 | 5 项通过,2 项失败 | 302.0 | 检查重建数据的结构和一致性,但已无法用丢失的原始 WAL 作为判定参考。 | +| `multi-source-data-merger` | 1 | 3 项通过 | 55.8 | 合成的混合别名用例发现丢记录 bug;修复后检查最终值及冲突。 | +| `query-optimize` | 1 | 6 项通过 | 536.7 | 与原始 SQL 比较全部输出;独立 Python 参考覆盖全部 17,834 条筛选行。 | +| `adaptive-rejection-sampler` | 1 | 9 项通过 | 566.0 | 分布矩、分位数、KS 检查、无效输入、可复现性和保存样本检查。 | +| `pytorch-model-cli` | 0 | 5 项通过,1 项失败 | 298.7 | 与使用同一推断归一化方式的参考实现比较,330 张图像均一致。 | +| `constraints-scheduling` | 1 | 3 项通过 | 30.2 | 以分钟粒度搜索最早有效时段,随后检查日历结构和冲突。 | +| `custom-memory-heap-crash` | 1 | 6 项通过 | 280.7 | 复现 release 崩溃;debug/release 运行、调试器分配位置检查和零错误 Valgrind 运行。 | +| `build-pov-ray` | 1 | 3 项通过 | 393.0 | 官方源码构建、确定性渲染、高度场回归和可复现重建。 | + +这些观察来自工具输出,而非仅来自 agent 最终声明。例如 COBOL 对应 ATIF 第 +71/83/91 步,安全修复为 15/19/31,数据合并为 13/15/17/19,SQL 为 21/31/43, +C++ 修复为 59/61/65。采样器在第 20 步取得 10/11 后纠正了一项错误自测预期; +随后保存的样本在第 22 步单独检查。通过官方测试集不代表覆盖范围外也正确。 + +## 失败:数据库恢复破坏了自身证据 + +原始任务要求恢复全部十一条记录,**包括 WAL 变更**,并测试具体值。在 ATIF +第 5 步,agent 尚未复制数据库和 WAL 就运行了 `sqlite3 main.db`,同时只做了 +640 字节的 WAL hexdump。第 7 步打开 `main.db-wal` 出现 `FileNotFoundError`; +第 9 步确认文件已消失。轨迹支持 SQLite 打开/关闭是原因,agent 也在第 11 步 +认识到了这一点。 + +Agent 识别出 XOR 密钥 `0x42`,但仅有已捕获的前缀保留下来。它随后根据按字母 +排序的水果名和 `value = id * 100` 模式猜测六条缺失记录,写入替代数据库/WAL +文件,并导出该重建结果。最终消息披露了丢失和猜测。 + +第 55 步验证 JSON 形状、十一条排序记录,以及 SQLite 与 JSON 一致。这些检查 +比较的是由同一组猜测生成的两个产物,不能证明恢复了原始值。官方 verifier +发现第 1 行仍为 `100`,而已提交的 WAL 更新要求 `150`; +`test_recovered_data_completeness` 和 `test_wal_was_decrypted` 失败。因此,失败 +涉及数据来源和保留,不是 JSON 语法或 verifier 依赖问题。 + +有益的 agent 改动是:打开有状态格式前保留完整原始输入,在副本上执行恢复, +并区分恢复出的事实和推断出的替代值。验证既要检查插入行数,也要检查已提交 +的更新;不能把两个猜测产物相互一致当作原始数据已恢复的证据。 + +## 失败:模型转换共享了未经支持的假设 + +提供的 `model.py` 定义 784–16–16–10 ReLU 网络。Agent 提取权重,随后使用公开 +MNIST 标签搜索预处理方案。第 51/53 步中,`(pixel / 255 - 0.5) / 0.5` 达到 +92.07% 标签准确率,因此 agent 选择它而非简单的 `pixel / 255`。这为提高另一 +目标——数字标签准确率——改变了所要求模型的可观察预测。 + +第 75/77/83/87 步中,C++ CLI 与单独编写的 Python 参考在 330 张图像上吻合, +包括小 margin 用例。两份实现都从生成的权重文件中读取同一推断归一化方式。 +这有助于检测实现差异,却没有验证假设本身。Agent 最终消息承认预处理是推断的。 +任务指令没有明确指定归一化方式,因此这是确实存在的不确定性,验证声明应 +继续披露它。 + +官方 verifier 检查固定模型预测,在 MNIST 测试集前 50 张图像中发现 14 处不匹配。 +十二题输出全部冻结后,独立诊断加载原始 float32 权重,用标准库 float64 算术 +实现所提供的架构: + +| 预处理 | 前 50 张图像中与官方预期不匹配的数量 | +| --- | ---: | +| `pixel / 255` | 0 | +| `(pixel / 255 - 0.1307) / 0.3081` | 10 | +| `(pixel / 255 - 0.5) / 0.5` | 14 | + +最后一种方案复现了所有已报告的不匹配索引。这确认预处理足以解释观察到的 +失败。诊断使用原始任务模型和公开 MNIST fixture;哈希及所有预测均记录在结果 +JSON 中。它未修改提交、改变官方分数,也不构成另一次模型试验。 + +模型转换应保留源行为,并验证完整输入到输出契约。如果两个程序共享未经验证 +的预处理选择,独立数值实现就不是独立判定参考。标签准确率不能替代行为等价。 + +## 安装与验证记账 + +最初的仅安装预检有五项成功、六项镜像拉取/启动错误和一次 APT 设置超时。第二次 +有十一项成功和一次 uv 下载不完整。完整历史分别保留在 +[第一份](../../configs/dev12-baseline-20261011/preflight-v1-evidence.json)和 +[第二份](../../configs/dev12-baseline-20261011/preflight-v2-evidence.json)证据文件。 +这八次预检失败与十二次计分试验分开记录。 + +任何模型启动前,计划 v3 为每题接受且仅接受一次成功的原生安装:第二次预检中 +的十一项,以及第一次预检中 POV-Ray 的成功。可复用编排器验证其任务修订、源码 +快照、已安装 wheel、引导状态、仅安装模式和产物哈希。没有合成成功结果。计划 +修订期间运行时、提示词、任务、预算和队列均未改变。 + +该分支还新增了原始公开 Docker Hub 镜像的验证缓存。六次停滞的镜像下载通过 +摘要校验的并行范围下载完成,并在未重建、未修改镜像的前提下导入。任务脚本、 +包源和官方测试保持不变。十二项 verifier 依赖配置均仍为 **`not_configured`**: +从未将 agent 安装成功报告为 verifier 依赖预检成功。 + +PyTorch verifier 在依赖设置阶段达到 900 秒时限,超时一次;未修改的第二次尝试 +完成并进入失败断言。其他 verifier 均在第一次尝试中完成。每次重试保留原生 +单次时限和相同 agent 输出。十二项最终官方测试集全部执行,没有尚未解决、 +需要从分母排除的 verifier 错误。 + +计分阶段从 **15:50:51 运行至 17:11:31 UTC**,经过约 **80.7 分钟**,不含之前 +预检。跨并发试验累加的 agent 执行为 55.0 分钟,agent 安装为 39.9 分钟,验证为 +34.7 分钟。这些累加值不是墙钟时长。日历任务单独安装花费 28.4 分钟,随后 agent +工作仅 30.2 秒。 + +记录的 token 估算费用合计 **$0.600974**,记账不完整:PyTorch 第 89 步遇到可恢复 +的 `RemoteProtocolError`,无用量记录。合计仅覆盖已知用量,不是精确账单或完整 +总额。记录用量为 9,362,395 个输入 token(9,171,328 缓存)和 407,188 个输出 token; +缺失用量不按零填补。该 agent 内部传输重试与禁止完整模型试验重试的策略独立。 + +## 审计边界与后续实验 + +在 17:09:54 UTC 观察到的检查点时,十二题输出已全部冻结,早于失败内容审计 +开始。其轨迹哈希仍一致。最终检查还确认登记计划、提示词、任务文件、输入配置、 +完整源码快照、wheel 摘要、原始镜像身份/registry 摘要,以及此前记录的已完成 +结果哈希均一致。队列屏障和 verifier 重试限制由原生产物验证。十二次计分试验 +完成后均未留下容器。 + +轨迹审查未发现检索外部 benchmark 解法或成功访问隐藏 verifier 内容的行为。 +POV-Ray 使用官方上游归档;PyTorch 使用公开 MNIST 图像和标签,其中包括后来由 +verifier 使用的样例。该重合已记录,不视为检索 benchmark 答案。多个 agent +搜索本地文件寻找参考,Git 和数据库 agent 读取了引导日志。这些观察不能证明 +模型在训练中从未接触过该 benchmark。 + +数据库 agent 还在第 35 步读取了进程环境,使提供商凭据进入其本地轨迹。原始 +日志必须保持私有,或在共享前脱敏。本报告及公开 JSON 包含派生观察和哈希, +不含原始环境值。防止凭据值进入工具观察,是另一项 agent 加固后续工作。 + +对于后续优化实验: + +1. 完整保留这十二题。用两项失败开发输入保留和判定参考选择行为;十项通过 + 保留为回归用例。 +2. 要求为决定性需求提供证据:恢复任务看原始数据值,转换任务看源模型预测。 + 追踪判定参考是否与实现共享假设或生成数据。 +3. 增加受控开发变体,改变更新值或输入契约。保留官方基线,并标记变体为自定义 + 测试。 +4. 在相同预算下进行基线与候选的配对重复运行;测量任务分数、回归、无证据的 + 完成声明和费用。单次本运行不能证明改进或估计方差。 +5. 在候选方案和新的评估协议固定前,保持其余 55 题未打开。不要每看到一次开发 + 结果就继续挑选新任务。 + +该分支的基础设施验证:**128 项 Harbor 测试通过**,包括镜像缓存和已接受预检的 +来源测试。本基线未包含任何 agent 优化。 diff --git a/benchmarks/harbor/reports/zh-CN/dev34-main-baseline-20261012.md b/benchmarks/harbor/reports/zh-CN/dev34-main-baseline-20261012.md new file mode 100644 index 0000000..e554d2b --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/dev34-main-baseline-20261012.md @@ -0,0 +1,254 @@ +# 统一 main 基线:全部 34 道开发任务 + +全部 34 题均在 main `2eb99b608dfb39464d17d109a4a8f11afda607a9` 上进行一次新模型 +试验:**28 题通过、6 题失败(82.35%)**。每个官方 verifier 均执行了测试。模型 +阶段设置错误、verifier 错误和 verifier 重试均为零。 + +一项通过试验 `torch-tensor-parallelism` 访问了外部 Terminal-Bench 修订元数据。 +其官方通过结果保留,信息接触情况在下文单独报告。这是已经接触过的开发池, +不是留出 benchmark,也不声称评估期间没有访问外部 benchmark 材料。 + +[机器可读结果](../../results/dev34-main-baseline-20261012.json)包含全部试验标识、 +源码/任务/配置来源、原生分数、测试计数、计时、部分用量、失败诊断和证据哈希。 +原始轨迹和日志可能包含密钥,因此保留在本地。 + +## 运行时与协议 + +登记时本地 main 与 origin/main 均指向 `2eb99b6`。实验文件和传输工具位于 +`benchmark/dev34-main-baseline-20261012`;被评估的 agent 和 adapter 来自该 main +提交的独立、未修改 checkout。本次未包含 agent 或提示词优化。 + +| 属性 | 值 | +| --- | --- | +| 任务池 | 此前运行过的 22 题,加上新增 12 题 | +| 数据集 | `terminal-bench/terminal-bench-2-1`,89 题目录 | +| 数据集修订 | `sha256:7d7bdc1cbedad549fc1140404bd4dc45e5fd0ea7c4186773687d177ad3a0699a` | +| 模型 | `deepseek/deepseek-flash` | +| 端点 | DeepSeek 官方兼容 Anthropic 的端点 | +| 提示词 | main 的 385 词 headless 提示词 | +| 限制 | 100 次回复;每次请求 65,536 个输出 token | +| 采样 | Temperature 和 reasoning effort 未设置 | +| 模型试验 | 每题严格一次;无替换或整次试验重试 | +| 队列 | 按工作预算升序,再按名称;连续题对;并发二 | +| 设置 | 独立 1,800 秒预算 | +| Agent 工作 | 原生任务超时减 180 秒 | +| Verifier | 原始单次时限;允许仅超时重试,本次未使用 | + +最终 [v5 登记文件](../../configs/dev34-main-baseline-20261012/experiment-v5.json) +的 SHA256 为 `f7bc7b329767f4b8007956462f6cdbd4407d386af493524df27ba313c0a4e4c3`。 +全部 34 个作业安装相同 wheel,SHA256 为 +`f4dcc18758e584696f955ae57fd18c751599b70e8b497ca2db7ef9e2b16e9350`。 +提示词 SHA256 为 +`37c4d9d44640c0051dc5a20e5954a067b98e8c51be07a48f080aa059e725c55d`。 + +标准 runner 从 `jobs/dev34-baseline-main-source` 通过 +`uv run --project benchmarks/harbor python -m harbor_adapter run --config ...` +调用。每个作业均检查源码快照、已安装 wheel 摘要、完整任务文件哈希、已接受 +预检的来源、配置哈希和队列屏障。运行后审计中,34 个原始镜像 ID 和 registry +摘要均未变,且无计分试验容器残留。 + +所有输出于 **2026-10-12 22:12:55 UTC** 冻结,早于新的轨迹或隐藏测试内容审阅。 +冻结清单嵌入结果 JSON。现有 pilot、重复运行和十二题结果均未复用于本次分数。 +剩余 55 个任务包保持未打开。 + +## 逐题结果 + +下表测试计数来自官方 pytest stdout,包含参数化用例。原生 CTRF 摘要单独保留: +它按函数名去重,流水线并行为 3 项而非 4 项,张量并行为 3 项而非 13 项。Agent +秒数包含模型/工具工作,不含设置或官方 verifier。 + +| 任务 | 原始奖励 | 测试通过 / 失败 | Agent 秒数 | +| --- | ---: | ---: | ---: | +| adaptive-rejection-sampler | 0 | 0 / 9 | 720.3 | +| build-cython-ext | 1 | 11 / 0 | 586.5 | +| cancel-async-tasks | 1 | 6 / 0 | 378.9 | +| cobol-modernization | 1 | 3 / 0 | 551.7 | +| db-wal-recovery | 0 | 5 / 2 | 359.6 | +| fix-code-vulnerability | 1 | 6 / 0 | 58.7 | +| git-multibranch | 1 | 1 / 0 | 238.2 | +| kv-store-grpc | 0 | 5 / 2 | 439.2 | +| log-summary-date-ranges | 1 | 2 / 0 | 23.1 | +| merge-diff-arc-agi-task | 1 | 5 / 0 | 123.2 | +| model-extraction-relu-logits | 1 | 1 / 0 | 380.0 | +| multi-source-data-merger | 1 | 3 / 0 | 33.1 | +| nginx-request-logging | 1 | 8 / 0 | 70.0 | +| openssl-selfsigned-cert | 1 | 6 / 0 | 70.0 | +| pypi-server | 1 | 1 / 0 | 129.1 | +| pytorch-model-cli | 1 | 6 / 0 | 392.7 | +| pytorch-model-recovery | 1 | 5 / 0 | 363.6 | +| qemu-alpine-ssh | 1 | 1 / 0 | 555.5 | +| query-optimize | 0 | 5 / 1 | 373.8 | +| regex-log | 1 | 1 / 0 | 72.6 | +| torch-pipeline-parallelism | 0 | 2 / 2 | 720.9 | +| torch-tensor-parallelism(标记了信息接触) | 1 | 13 / 0 | 559.6 | +| write-compressor | 1 | 3 / 0 | 394.3 | +| constraints-scheduling | 1 | 3 / 0 | 32.0 | +| custom-memory-heap-crash | 1 | 6 / 0 | 245.3 | +| dna-assembly | 1 | 1 / 0 | 1162.7 | +| llm-inference-batching-scheduler | 1 | 6 / 0 | 614.5 | +| path-tracing | 1 | 5 / 0 | 259.9 | +| schemelike-metacircular-eval | 1 | 1 / 0 | 1777.1 | +| caffe-cifar-10 | 1 | 6 / 0 | 2448.9 | +| circuit-fibsqrt | 1 | 3 / 0 | 610.7 | +| mteb-leaderboard | 1 | 2 / 0 | 1380.4 | +| regex-chess | 0 | 2 / 2 | 2818.8 | +| build-pov-ray | 1 | 3 / 0 | 338.1 | + +pytest 共执行 155 个用例:137 项通过、18 项失败,无跳过或错误。任务分数仍为 +28/34;单个测试用例并非等权任务。本次运行中,此前 22 题子集为 19/22,新增 +十二题为 9/12。 + +## 六题失败的原因 + +步骤引用为本地保留轨迹中的 ATIF `step_id`。结果 JSON 通过 SHA256 绑定这些 +文件及官方输出。 + +| 任务 | 观察到的失败 | 验证启示 | +| --- | --- | --- | +| adaptive-rejection-sampler | 未提交 `/app/ars.R`。安装延迟和模型流中断耗尽 720 秒工作预算。 | 尽早产出最小交付物;限制安装和恢复工作。本次不能为已提交 ARS 算法提供任何证据。 | +| db-wal-recovery | 打开原始 SQLite 数据库,在备份前丢弃了加密 WAL。猜测值遗漏 WAL 更新。 | 有状态读取前保留全部输入和 sidecar;根据原始证据验证恢复值。 | +| kv-store-grpc | `SetValRequest` 使用 `val`;任务要求 `value`。自测客户端使用同一错误 schema。 | 从规范独立导出 API 契约。内部一致不能证明接口合规。 | +| query-optimize | 输出正确,但相对官方优化参考,查询过慢。 | 正确性确立后,建立可重复的目标运行时测量,测试候选查询计划。 | +| torch-pipeline-parallelism | 层调用缺少必需的旋转位置嵌入。真实自测在临近期限时发现错误。 | 尽早用微型前向/反向传播测试已安装 API;传递进程失败,并留出修复时间。 | +| regex-chess | 白王已被将军时仍允许王车易位。 | 在随机差分测试之外,为每个特殊规则前提补充明确的负例。 | + +### 采样器:执行中断后缺少输出 + +第 5、9、13 步的安装调用均达到 bash 超时,包括尝试启动后台工作的调用。第 15 +步时 R 已可用,此时工作预算已过去约 6.5 分钟。接下来两次模型调用分别约 241 +秒和 29 秒后以 `RemoteProtocolError` 结束;最后一次调用又经过 58 秒达到期限。 +没有完成任何实现写入。 + +九项官方测试全部运行,并因缺少文件失败。这是具有操作性原因的计分失败, +不是设置失败,也未证明算法错误。登记的预检未覆盖 R 安装。 + +### WAL 恢复:必须先保留证据,再检查 + +第 5 步并发检查部分 WAL 并打开原始数据库。SQLite 丢弃了无效的加密 WAL。第 7 +步备份/解码已太晚。最终 JSON 包含 11 条看似合理的水果记录,值遵循 `id * 100`, +形状/计数检查通过。两项官方测试发现错误值,包括 id 1 应恢复为 `150`,实际 +却为 `100`。第 53 步最终消息披露了 WAL 丢失及推断;并非未披露地声称恢复成功。 + +### gRPC:独立消费者本可发现不匹配 + +第 7 步定义 `SetValRequest.val`。第 9、13、23、37 步测试使用生成的客户端及 +相同字段。测试覆盖真实 RPC、覆盖写、独立键、空键和整数边界,却从未构造任务 +规定的请求。官方使用 `value=999` 和 `value=42` 的调用在到达服务器前就失败。 +Descriptor 断言或独立定义的客户端能填补实际缺口。 + +### SQL:性能任务仅结果正确还不够 + +Verifier 测得参考中位数 **0.291814 秒**,解法中位数 **0.371624 秒**,约慢 27.35%; +允许倍数为 1.05。Agent 确实证明了 500 行输出精确一致,且保留原数据库,仅在 +副本上建索引取得参考输出。第 33 步尝试重复计时的命令因缺少 `/usr/bin/time` +失败。后来的 shell 计时约 0.48 秒,相比慢得多的原查询显得不错。 + +优化参考和精确阈值对 agent 隐藏。可采取行动的缺口是可靠的比较性性能工作和 +优化余量,而非期待 agent 知道隐藏参考。 + +### 流水线并行:验证开始太晚 + +第 11 步在 PyTorch/Transformers 可用前就写了实现。第 27 步编写的首次实质性 +测试在参考测试 hook 中失败。修复该 hook 后,第 31 步在 attention 解包 +`position_embeddings` 时暴露 `TypeError: cannot unpack non-iterable NoneType object`。 +修复前期限已到。 + +两个官方 world-size 测试均进入提交代码,并因同一错误失败;两项结构检查通过。 +这不是 verifier 安装错误。自测命令还将输出通过管道传给 `tail`,掩盖了失败 +进程的退出状态。早期冒烟测试、明确进程状态和有界分布式测试可以更有效地使用 +剩余预算。 + +### 正则表达式国际象棋:大量测试遗漏了特定负面条件 + +两局官方棋局发现白王在 e1 已被将军时仍多出王翼易位:一次由 e8 的车将军, +另一次由 d3 的马将军。其他棋局测试集和规则大小检查通过。 + +第 107、115、117 步修改易位生成和攻击过滤顺序。中间 X0 到 X1 状态仍在第一道 +过滤前生成,因此即便初始王位被攻击,也能存活。后续易位状态因而可能逃过 +最初的将军检查。 + +最终实现针对 `python-chess` 做了实质性的独立验证:最后修改后,一组 618 个 +采样局面和另一组 600 个局面均通过,提供的检查脚本也通过。这些计数不代表 +独立不重复局面或完整规则覆盖。需要明确覆盖在被将军、经过被攻击格和进入 +被攻击格时易位的例子;最终声称三者均已排除,超出了证据。 + +## 依赖准备与环境保留 + +下载缓慢或中断要求在**任何模型试验之前**修订计划。历史尝试与 34 次计分试验 +分别记录。 + +| 仅安装计划 | 尝试次数 | 成功 | 设置错误 | 取消 / 中断 | +| --- | ---: | ---: | ---: | ---: | +| v1 | 6 | 0 | 5 | 1 | +| v2 | 9 | 0 | 7 | 2 | +| v3 | 34 | 29 | 3 | 2 | +| v4 | 5 | 5 | 0 | 0 | +| 合计 | 54 | 34 | 15 | 5 | + +V1 遇到设置超时和 uv TLS 错误。V2 的主机代理无法从任务容器访问,随后停止。 +V3 使用隔离的回环 sidecar,完成 29 项安装;两次 uv 归档下载和一次托管 Python +下载失败,其余两项安装被中断以应用已验证归档缓存。V4 完成五项未解决安装。 + +V5 在完整原生来源检查后才接受 29 份 v3 成功记录和五份 v4 记录。QEMU 已登记的 +`qemu-alpine-ssh-v1` verifier 依赖配置通过。其余 **33 项配置为 `not_configured`**; +agent 安装成功不认证其 verifier 依赖。所有仅安装试验均未运行模型或官方任务 +断言。 + +最终传输缓存原始不可变 APT 索引和原始 uv / GNU CPython 发布归档,均做完整 +摘要验证。可变 APT release 元数据和包不由代理缓存;原生 APT 验证保留。发布 +缓存命中要求文件名、大小和 SHA256 匹配。原始包来源、Python 选择、任务镜像、 +资源、官方脚本和 verifier 单次时限均保留。模型/API 流量使用正常路径。 + +每题在自身网络命名空间内使用独立缓存 sidecar,不发布端口、不挂载任务文件 +系统或凭据,并设独立 CPU/内存限制。34 次模型试验全部使用最终 v5 传输。详情、 +原始失败证据、清单和网络集成探测均由 +[运行配置 README](../../configs/dev34-main-baseline-20261012/README.md)链接。 +配套 Harbor 工作流测试集在模型工作前通过 **167 项测试**;对应分支提交的三项 +CI 检查也全部通过。 + +## 信息接触与发布审计 + +扫描全部 34 份冻结轨迹,检查 benchmark 引用、verifier 路径、外部主机和精确 +提供商凭据值。标记出的命令和返回观察与六份失败轨迹一并审阅。 + +- **张量并行:**第 15–23 步的精确任务短语搜索找到 Terminal-Bench 数据集 README。 + 第 23 步返回修订元数据;第 25 步获取外部 README,显示其关于预先分片输入的 + 澄清。该要求已包含在提供的任务指令中。这些结果中未观察到解法代码或隐藏 + 测试内容。保留官方原始奖励 1,并明确标记 benchmark 材料接触。 +- **本地测试路径:**张量并行探测了不存在的 `/app/tests`;WAL 恢复和 Git 多分支 + 列出了空 verifier 日志目录。其他标记路径为公开上游测试或 agent 自建测试/ + 数据。内存崩溃任务中的 benchmark 引用是源代码中保留的 canary 注释。 +- **其他网络活动:**审阅的访问涉及依赖、上游项目、CIFAR 数据、NEB 文档,以及 + 与相应任务有关的公开 MTEB/Scandinavian 排行榜源。本次审查未观察到其他 + benchmark 答案检索。 +- **凭据:**WAL 恢复在第 27、49 步检查环境,使提供商凭据进入自己的工具观察。 + 这些原始轨迹保留本地,未包含在 PR 中。审阅的命令中未观察到凭据被传往其他 + 外部目的地。 + +本审计不能证明不存在任何信息接触或训练污染。它不回溯删除任务、替换试验或 +修改原生奖励。未来实验应在执行前声明并实施外部 benchmark 材料策略,并阻止 +任务工具读取提供商密钥。 + +## 时间、费用与比较限制 + +模型作业约从 **10 月 12 日 17:29 运行至 22:12 UTC**:经过 **283.25 分钟**, +不含依赖预检。累加 agent 工作为 321.38 分钟,agent 安装为 32.96 分钟,verifier +时间为 50.01 分钟;并发和题对屏障使这些累加值与墙钟时间不同。 + +记录用量合计 60,464,780 个 prompt token(59,660,798 缓存)和 1,603,196 个 +completion token。**已知估算费用小计为 $2.523**,不是完整账单。采样器和流水线 +试验的用量/费用记录不完整;缺失调用未按零计价。 + +[此前的十二题基线](dev12-main-baseline-20261011.md)使用同一 main 提交,取得 +10/12。本次这些任务为 9/12:PyTorch CLI 从失败变为通过,采样器和 SQL 从通过 +变为失败,WAL 恢复两次均失败。试验随机性和传输/环境历史不同;这不能作为 +agent 代码改进或回归的证据。 + +34 题池仍适合开发:保留全部 28 项通过任务作为回归检查,用六项失败做诊断。 +Agent 实验应在相同登记条件下进行匹配的基线/候选重复运行,分别测量任务通过 +率、验证证据、时间和信息接触。一次通过不能证明任务稳定性。剩余 55 个未打开 +任务应保留到候选确定后,进行另一次预先声明的评估。 + +这些证据建议的下一步 agent 改动为输入保留、独立契约检查、尽早执行小测试、 +可靠的退出/错误报告、针对性负例和可重复性能测量。这些是后续实验的假设; +本次运行均未应用。 diff --git a/benchmarks/harbor/reports/zh-CN/dual-budget-20260929.md b/benchmarks/harbor/reports/zh-CN/dual-budget-20260929.md new file mode 100644 index 0000000..d432731 --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/dual-budget-20260929.md @@ -0,0 +1,195 @@ +# 固定提供商下的双预算收尾 + +修复后的候选(`380271dfd`)通过全部六次定向试验,且六次均以原生 `completed` +结束。对照组通过六次中的五次,四次以原生 `completed` 结束。登记的门槛通过。 +随后 pilot20 取得 **18/20**,20 次运行全部以原生 `completed` 结束。Caffe 准确率 +和 PyTorch 流水线数值正确性未通过独立 verifier;正常收尾不代表任务成功。 + +完整配置、指标和所有保留的试验行见 +[公开结果](../../results/tb21-dualbudget-fixed-provider-20260929.json),包括四次 +已被替代的处理组试验。原始证据保留在记录中指定、由 Git 忽略的 `jobs/` 目录。 + +## 定向结果 + +每行包含一个任务和实验组的全部三次重复。时间覆盖 agent 进程,包括任务后费用 +对账;工作时间从原生 journal 的运行开始计至最后一次模型/工具完成。费用包括 +补充回执对账。原生 journal 和轨迹保留原来的待定费用条目,不重写。 + +| 任务 | 实验组 | 奖励 1 | 原生 completed | 各次回复数 | 平均工作(分钟) | 平均总时长(分钟) | 平均费用(美元) | +| --- | --- | --- | --- | --- | ---: | ---: | ---: | +| caffe-cifar-10 | 对照 | 3/3 | 2/3 | 51, 100, 43 | 31.30 | 33.12 | 0.078184 | +| caffe-cifar-10 | 修复后 | 3/3 | 3/3 | 51, 72, 59 | 32.76 | 33.27 | 0.057473 | +| mteb-leaderboard | 对照 | 2/3 | 2/3 | 72, 100, 43 | 19.44 | 21.67 | 0.073795 | +| mteb-leaderboard | 修复后 | 3/3 | 3/3 | 71, 91, 59 | 11.48 | 11.99 | 0.083837 | + +六次修复后试验费用为 $0.423931464,六次对照为 $0.455935140(约减少 7.0%)。 +Caffe 平均费用下降 26.5%,平均总时长基本不变(+0.4%),平均工作时间增加 +4.7%。MTEB 平均费用增加 13.6%,平均总时长下降 44.7%,工作时间下降 41.0%。 +这些只是每题三次重复的观察,不是一般效应估计,也不能证明差异由某个单一 +组件造成。 + +第二次重复中两个对照任务都耗尽 100 次回复。Caffe 仍得 1 分,但 MTEB 因必需 +的 `result.txt` 不存在而得 0 分。修复后 MTEB 的第二次重复中,第 91 轮提醒触发 +时尚有 47:34;该回复正常结束运行,任务通过。其余五次修复后试验均在任一收尾 +阈值触发前结束。 + +十二次试验的固定任务引用均匹配,原生 ATIF 有效,提供商/费用审计完整。每条 +记录的模型 POST 均施加提供商限制,每次收到的 generation 均归属于 Parasail。 +一次对照的连接建立超时在响应头到达前由 SDK 恢复,单独记录,不计入已收到的 +generation。修复后没有试验需要监督进程期限、强制杀进程或重建轨迹。修复后 +任务组中最长已完成工具调用约 120.11 秒,而被替代处理组观察到 600 秒清理等待。 + +初始处理组四次已完成试验全部通过并正常结束,但因清理缺陷保留为独立、已被 +替代的证据。它们总费用为 $0.278459916。尚未启动的第三次重复被取消;修复后 +三次重复全部重新运行。未选择最佳运行。 + +## Pilot20 回归 + +原始固定的 20 题选择运行一次,并发两次试验,使用相同修复后源码、模型和固定 +提供商。实际原生 journal 确认 100 次回复、65536 个输出 token,任务工作预算为 +各题原生 agent 超时减 180 秒(12、27、37 或 57 分钟)。未覆盖 Harbor 任务、 +设置或 verifier 超时。复用已有经过验证的 QEMU 引导包和 PyTorch 模型恢复 +verifier 包缓存;任务指令、镜像摘要和 verifier 逻辑不变。没有根据分数重试任务。 + +20 题全部计分:18 题通过,两题零分。20 次均以原生 `completed` 结束,原生 ATIF +有效,任务引用和运行时预算匹配,源码版本为预期的 `0.8.1.dev43+g380271dfd`。 +没有 Harbor 异常、监督进程期限触发、强制杀进程或重建轨迹。558 次模型 POST +全部施加提供商限制,与 558 份 Parasail generation 回执匹配。没有失败模型尝试, +也没有响应头到达前的连接失败。完整对账模型费用为 **$1.123469172**。Harbor +作业在并发两次试验下墙钟时间为 1 小时 55 分 52 秒,包含设置和验证,不含后来 +的主机回执审计。最长已完成工具调用约 120.19 秒。 + +| 任务 | 奖励 | 回复数 | 工作(分钟) | 预算(分钟) | 费用(美元) | +| --- | ---: | ---: | ---: | ---: | ---: | +| caffe-cifar-10 | 0 | 66 | 54.07 | 57 | 0.091648 | +| circuit-fibsqrt | 1 | 26 | 6.20 | 57 | 0.068076 | +| dna-assembly | 1 | 29 | 7.83 | 27 | 0.134251 | +| kv-store-grpc | 1 | 10 | 4.96 | 12 | 0.004265 | +| llm-inference-batching-scheduler | 1 | 27 | 3.71 | 27 | 0.063599 | +| log-summary-date-ranges | 1 | 7 | 0.26 | 12 | 0.004642 | +| merge-diff-arc-agi-task | 1 | 16 | 0.88 | 12 | 0.016840 | +| model-extraction-relu-logits | 1 | 17 | 1.61 | 12 | 0.020341 | +| mteb-leaderboard | 1 | 49 | 9.59 | 57 | 0.054133 | +| openssl-selfsigned-cert | 1 | 13 | 0.56 | 12 | 0.006882 | +| path-tracing | 1 | 22 | 2.01 | 27 | 0.064753 | +| pypi-server | 1 | 17 | 5.03 | 12 | 0.008618 | +| pytorch-model-recovery | 1 | 10 | 2.73 | 12 | 0.009207 | +| qemu-alpine-ssh | 1 | 43 | 9.30 | 12 | 0.060265 | +| regex-chess | 1 | 55 | 36.41 | 57 | 0.214995 | +| regex-log | 1 | 7 | 1.72 | 12 | 0.030141 | +| schemelike-metacircular-eval | 1 | 37 | 20.70 | 37 | 0.082982 | +| torch-pipeline-parallelism | 0 | 44 | 9.78 | 12 | 0.074019 | +| torch-tensor-parallelism | 1 | 44 | 6.86 | 12 | 0.062337 | +| write-compressor | 1 | 19 | 2.77 | 12 | 0.051477 | + +两项失败均为解法失败,产物保留: + +- **Caffe:**六项 verifier 测试中五项通过,包括源码/构建检查、模型/配置文件、 + CPU 训练和完成 500 次迭代。Verifier 提取的准确率为 0.37,严格要求为大于 + 0.45。Agent 单独报告完整测试准确率 0.4395,明确承认未达要求。这是两个不同 + 测量值,均低于阈值。时间收尾提醒出现在第 64–66 次回复,从剩余 7:11 开始; + 运行在 66 次回复后正常结束。三次定向修复后 Caffe 试验都通过,因此此次新增 + 失败也说明定向结果不能保证可靠性。 +- **PyTorch 流水线:**四项 verifier 测试中两项数值比较失败:单进程在 + `model.norm.fwd` 处不同(最大差异 5.190534591674805),双进程在 + `model.layers.1.bwd` 处不同(0.013752378523349762)。Agent 报告自身检查通过, + 但独立 verifier 拒绝该解法。时间提醒出现在第 43–44 次回复,从剩余 2:20 开始, + 并在 44 次回复后正常结束。Agent 工作预算尚未耗尽。 + +QEMU 提供了成功的时间收尾案例:第 40 次回复、剩余 2:57 时开始提醒,第 43 次 +回复结束后通过。其余 17 个 pilot 任务在收尾阈值触发前完成。结合定向 MTEB +第 91 次回复案例,这些运行覆盖了两种提醒触发条件,但不能确定提醒是否导致 +某次正确性结果。 + +作为历史背景,已跟踪的 9 月 6 日 pilot 使用 `deepseek-v4-flash-0731`、账户路由、 +50 次回复和 8192 个输出 token,取得 8/20。本地 9 月 21 日流恢复 pilot 为 11/20 +(六个零分、三次未计分),使用 50 次回复、65536 token,agent/设置覆盖时限为 +3780/3600 秒。相对于这些 pilot,新的 18/20 同时改变模型、路由、预算和 agent +源码,不能将分数差异仅归因于双预算收尾。只有定向重复比较使用本报告所述的 +固定提供商对照。 + +## 决定 + +保留固定系统提示词、追加预算提醒、提前收尾指导,以及有界模型/工具/费用 +操作。登记的定向门槛通过,完整 pilot 为每题保留了原生终止记录。普通默认值 +保持 50 次回复和 32768 个输出 token;100/65536 仍是本实验配置。Pilot 并非全题 +通过,本小规模研究也未确立最优默认值。后续评估应将解法准确性和验证质量与 +运行时收尾分开,在归因分数变化前采用匹配对照。 + +## 实现 + +Headless 运行通过仅追加的提醒获知剩余模型回复数,以及配置了时间预算时的 +剩余墙钟时间。系统提示词保持固定。剩余 10 次回复(包含下一次),或达到既有 +时间保留区(`max(180 seconds, 15% of the task budget)`),任一条件都会触发 +收尾指导:保存必需交付物、做必要检查,然后总结并停止。最后一次允许的回复 +不能执行工具;提醒明确说明该限制。普通 CLI 和 Harbor 默认值仍为 50 次回复、 +32768 个输出 token。 + +配置的墙钟预算使用 POSIX 主线程计时器中断阻塞模型流和工具工作。Socket 和 +bash 超时也使用剩余预算。Bash 中断终止命令的进程组,并在 Linux 上终止其 +会话中的其他成员。清理直接关闭输出管道,不等待已脱离的后代关闭管道;回收 +直接子进程限时一秒。正常退出保留后台服务。流重试必须放在剩余预算内。费用 +对账有独立、共享的 30 秒上限,之后未解决费用保持待定,使原生 Journal/ATIF +能够收尾。 +对于已有实时 alarm 的调用者、非主线程和无 `setitimer` 的平台,带时间预算的 +运行会明确报错。 + +## 登记的比较 + +- 模型:`deepseek/deepseek-v4.1-flash`。 +- 提供商端点:`parasail/fp8`,`only` 和 `order` 均限制为该端点,且 + `allow_fallbacks=false`。固定由实验封装器同时应用于两组,不更改账户全局路由。 +- 对照:实验 3 使用的源码/wheel(`83e5c064d`)。 +- 处理:修复后的双预算源码/wheel(`380271dfd`)。 +- 任务:相同固定的 `caffe-cifar-10` 和 `mteb-leaderboard` 任务引用。 +- 每题每组三次尝试,使用分别保留的作业。原计划交替两组;下文修订记录实际 + 顺序变化。同时两次试验,100 次回复、65536 个输出 token、3420 秒任务工作, + 无整题重试。 +- 保留原生 Harbor 任务/设置/verifier 超时。监督进程仍为 3480 秒,收尾宽限 + 120 秒。 +- 依赖和缓存镜像摘要与实验 3 相同。Temperature 和 reasoning effort 未显式 + 设置。不注入故障。 +- 验证所有模型请求的实际提供商回执,而非只看路由配置。不完整回执保留为 + 未知,不能将缺失费用当零;运行后对账可补充 benchmark 记账,但不修改 agent + 的原生 Journal 或轨迹。 + +初始提供商预检返回工具调用和标识 Parasail 的 generation 回执。OpenRouter 在 +[Messages 端点文档](https://openrouter.ai/docs/api/api-reference/anthropic-messages/create-messages) +中说明 `provider`,在 +[路由参考](https://openrouter.ai/docs/guides/routing/provider-selection)中说明端点级 +限制。 + +## Pilot20 门槛 + +处理组必须在全部六次定向试验中取得奖励 1,并以原生 `completed` 结束,不得 +触发监督进程期限、强制杀进程或重建轨迹。提供商审计必须成功。继续前需将每题 +费用和时长与重复对照比较:每题平均费用或时长超过其对照均值 1.5 倍,流程 +暂停并调查。费用/提供商回执不完整也暂停。不得选择最佳运行。若门槛通过,用 +相同模型和提供商运行一次原始固定 pilot20,100 次回复,每题预算为原生超时 +减 180 秒。监督进程在原生超时减 120 秒时中断,保留 120 秒宽限。历史 pilot20 +使用另一种模型/路由配置,不是对本实现影响的受控估计。 + +这些小规模重复样本可暴露回归,但不能确立普遍最优默认值。即使端点固定, +提供商负载、缓存状态和采样仍是变异来源。外部任务服务和网络条件也仍会变化。 + +## 线上试验期间的修订 + +原处理组(`847cc9895`)在第二次 Caffe 试验中暴露子进程清理缺陷。模型调用 +`timeout 600 wget ...`;GNU `timeout` 创建另一进程组。120 秒时杀掉 shell 进程组 +后,该子进程仍持有输出管道,随后无界 `communicate()` 等待其结束。这一观察 +独立于奖励阻止了原流程继续。 + +修复在 Linux 上杀死命令会话的其他成员,不排空管道而直接关闭读端,并限制 +直接子进程回收。前两次处理组重复保留为已被替代的证据;第三次在启动前取消。 +原计划三次对照重复仍作为比较基线。全部三次处理重复使用修复后、已提交的 +wheel 和相同提供商/配置重新运行,并按同一登记门槛统一评估。实际顺序为对照 +1、被替代处理 1 和 2、对照 2 和 3、修复后处理 1、2 和 3。这改变了原本交替的 +顺序,但未挑选最佳处理试验,也未从报告中删除缺陷。 + +## 本地验证 + +固定的 benchmark 环境在主包和 Harbor adapter 中共通过 354 项测试。测试覆盖 +按轮次提前收尾、稳定系统提示词、提醒 journal、停滞流、真实长运行命令、子 +进程终止(包括 GNU `timeout` 创建另一进程组)、脱离进程持有管道时的有界清理、 +正常退出后保留后台服务、有界重试、有界费用对账和 ATIF 兼容性。PR 检查也在 +Python 3.13 和 3.14 上通过。 diff --git a/benchmarks/harbor/reports/zh-CN/headless-p0-guarded-20261007.md b/benchmarks/harbor/reports/zh-CN/headless-p0-guarded-20261007.md new file mode 100644 index 0000000..22c8ed7 --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/headless-p0-guarded-20261007.md @@ -0,0 +1,280 @@ +# Headless 契约验证提示词:带信息边界的 pilot20 比较 + +冻结的 368 词候选取得 **19/20**,同期 main 为 **18/20**。MTEB 题对因确认接触 +参考答案/测试,不能参与独立能力比较。在共同符合条件的 19 题中,候选通过 +**18/19**,main 通过 **17/19**。原始分数和全部费用保持不变。当前 385 词的工作区 +参考材料澄清版本在下文有独立单题检查;二十题结果属于 `03cfd53`,不属于该后续 +修订。 + +完整比较中,观察到的额外一次通过伴随**估算模型费用增加 30.3%**、**累加 agent +执行时间增加 21.6%**。 + +这是对原始 pilot20 任务组进行的**自适应探索性比较**,每题每组运行一次。登记 +信息边界修订前,已有五项 main 对照结果可见。全部二十项对照均保留,无筛选, +二十次带边界候选试验全部为新运行。没有留出任务,也没有重复样本。本任务组 +的分数差异不能确立稳定或普遍的能力提升。 + +[结构化结果](../../results/tb21-headless-p0-guarded-20261007.json)保留每次试验、 +配对结果、记账限制、完整性发现和产物哈希。另见 +[带边界计划](../../configs/headless-p0-guarded-20261007/experiment.json)及 +[复现说明](../../configs/headless-p0-guarded-20261007/README.md)。 + +## 候选与冻结输入 + +对照为 main `6664f7bac9d7f9b26f49e523ac6ee7e4e8a6b9ac`,包含已合并的每次运行 +一次截断恢复。候选为 `03cfd534ddb86ea507d43cad9776e86c91d53648`。完整二十题 +候选冻结于此修订。后续措辞澄清在下文单独测试,不继承此二十题分数。唯一 +运行时源码变更是 `HEADLESS_SYSTEM_PROMPT`: + +- 识别交付物、接口和约束;示例不一定描述完整契约。 +- 检查相关输入,通过实际入口验证输出含义,并采用符合任务的代表性、边界 + 和独立检查。 +- 诊断失败检查,修复原因并重跑受影响检查;验证力度与任务和剩余预算相称。 +- 结束时提供证据并披露限制。 +- 使用任务提供的材料和通用文档;除非任务明确提供或要求,否则不寻找或使用 + 任务专用参考解法或隐藏评估测试。 + +对照提示词按空白分隔为 175 词,候选为 368 词。交互提示词、工具、预算提醒、 +恢复策略和 adapter 均未变。排除 headless 提示词赋值后,AST 比较一致;另外 +二十个记录的 Python 文件逐字节一致。 + +| 设置 | 值 | +| --- | --- | +| 模型 / 端点 | `deepseek/deepseek-flash` / `https://api.deepseek.com/anthropic` | +| 任务 | 原始二十个固定 pilot20 任务修订 | +| 回复 / 输出 token 上限 | 100 / 每次请求 65,536 | +| 工作预算 | 720、1,620、2,220 和 3,420 秒;原生 agent 时限减 180 秒 | +| 设置超时 | 1,800 秒,独立于 agent 工作 | +| 并发 | 每组一次试验,总计最多两次;两组都结束后才进入下一预算组 | +| 整次试验重试 | 零 | +| Verifier 重试 | 仅超时,在同一 agent 输出上最多尝试三次,沿用原始单次时限 | +| 对照提示词 SHA256 | `54da8191adac5a1b717129a6292f2946544ff4113477427018a3445f4a5af1d4` | +| 候选提示词 SHA256 | `dd0880aa94b48e228c4db5d9a6dafe20e7924e4b417ffe015cb3de192df90dd4` | +| 对照 wheel SHA256 | `f23e090f3b475550cc968f8f2199b4dca7d204d8cb91b1f2c8640235f514191c` | +| 候选 wheel SHA256 | `40d021942924be15b2f823f17e63850a9f280ce6dd612d3190191a745e0027d3` | + +所有新作业均使用 `uv run --project benchmarks/harbor python -m harbor_adapter run`。 +每个作业快照其源码,安装记录的 wheel。每组内四个 wheel 均具有上表对应哈希。 + +## 预检与完整性 + +二十项对照安装均在模型工作前通过。原候选也通过 QEMU 已登记的依赖预检。 +添加信息边界后,带边界 wheel 的新 OpenSSL 安装冒烟检查通过。未修改的已登记 +QEMU 配置也在每次完整 QEMU 模型试验前运行。其余十九项依赖配置仍明确为 +**`not_configured`**;安装成功不认证其官方 verifier 依赖。 + +最终检查确认全部 **152 个任务文件哈希**和 **20 个 Docker 镜像 ID** 与基线一致。 +八份源码/wheel 快照均匹配各自冻结组,每次试验安装的 wheel 均匹配作业清单。 +四十份任务校验和及 ATIF 轨迹均通过验证。Verifier 尝试保留原生时限,遵守仅 +超时重试、最多三次尝试策略。这些检查确立产物一致性;下文单独的参考材料 +审计指出,即使任务文件未变,仍发生任务答案接触。 + +带边界的 720 秒组期间,一次 Codex 服务重启中断了外层启动器和队列。已运行的 +Harbor 子进程存活并完成所有剩余试验。队列恢复,没有重启模型运行。原生作业 +完成后,使用仓库自身 `summarize` 函数重建缺失的封装器摘要。该孤儿进程退出码 +**未知**,记录为 `null`;逐次试验结果和原生作业完成记录仍可用。后续组使用 +未修改的标准 runner。 + +## 逐题结果 + +Agent 秒数为记录的 Harbor agent 执行区间,包括工具工作和收尾,不含队列等待、 +独立设置和验证。费用为 token 估算,并非提供商账单。剑号(`†`)标记确认接触 +外部任务答案或隐藏测试后得到的原始分数。`*` 表示记账不完整;未知值不是零。 + +| 任务 | Main 奖励 | 候选奖励 | Main 秒数 | 候选秒数 | Main 美元 | 候选美元 | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| `write-compressor` | 1 | 1 | 545.1 | 494.7 | 0.055753 | 0.137920 | +| `torch-tensor-parallelism` | 1 | 1 | 539.8 | 297.8 | 0.064382 | 0.039400 | +| `schemelike-metacircular-eval` | 1 | 1 | 1417.6 | 536.9 | 0.146158 | 0.111429 | +| `kv-store-grpc` | 1 | 1 | 55.5 | 196.2 | 0.003459 | 0.015531 | +| `pypi-server` | 1 | 1 | 237.5 | 102.6 | 0.016673 | 0.013724 | +| `dna-assembly` | 1 | 1 | 482.4 | 1033.5 | 0.124558 | 0.217169 | +| `torch-pipeline-parallelism` | 0 | 0 | 561.8 | 630.0 | 0.074452 | 0.077087 | +| `qemu-alpine-ssh` | 1 | 1 | 388.6 | 401.1 | 0.016173 | 0.028699 | +| `openssl-selfsigned-cert` | 1 | 1 | 25.6 | 45.5 | 0.004295 | 0.010414 | +| `regex-chess` | 0 | 1 | 622.7 | 2591.8 | 0.158020 | 0.349024 | +| `log-summary-date-ranges` | 1 | 1 | 25.5 | 17.2 | 0.005495 | 0.005341 | +| `model-extraction-relu-logits` | 1 | 1 | 431.7 | 109.8 | 0.099051 | 0.026269 | +| `path-tracing` | 1 | 1 | 403.4 | 1172.0 | 0.128554 | 0.327928 | +| `regex-log` | 1 | 1 | 293.4 | 163.4 | 0.087292 | 0.047926 | +| `caffe-cifar-10` | 1 | 1 | 1931.2 | 2142.1 | 0.063456 | 0.082280 | +| `mteb-leaderboard` | 1† | 1 | 576.7 | 1169.3 | 0.081621 | 0.091648 | +| `llm-inference-batching-scheduler` | 1 | 1 | 364.5 | 638.2 | 0.097117 | 0.078021 | +| `pytorch-model-recovery` | 1 | 1 | 228.2 | 496.0 | 0.042237 | 0.084207 | +| `circuit-fibsqrt` | 1 | 1 | 1980.6 | 1289.7 | 0.174148 | 0.144138 | +| `merge-diff-arc-agi-task` | 1 | 1 | 48.6 | 42.3 | 0.014626 | 0.010407 | + +原始配对计数:{"both_fail": 1, "both_pass": 18, "improvement": 1}。 +共同符合条件的配对计数:**17 对都通过、1 对都失败、1 对候选改善、0 对候选 +回归、0 次未计分**。 +排除的任务对:`mteb-leaderboard`。 +排除是为了避免把污染后的通过当作能力证据,并不证明该污染试验在其他情况下 +就会失败。 + +## 用量与运行时结果 + +| 指标 | Main | 候选 | +| --- | ---: | ---: | +| 官方通过(计划 20 次) | 18 | 19 | +| 计分失败 | 2 | 1 | +| 已完成的未计分试验 | 0 | 0 | +| 设置失败 | 0 | 0 | +| Verifier 错误 | 0 | 0 | +| Agent 秒数 | 11160.416 | 13570.056 | +| 模型尝试 | 489 | 663 | +| 不完整模型尝试 | 0 | 0 | +| 截断响应 | 3 | 0 | +| 恢复事件 | 2 | 0 | +| 已知估算美元费用 | 1.457519808 | 1.898564712 | +| Prompt token | 22,442,386 | 48,471,106 | +| Completion token | 1,024,547 | 1,211,315 | +| 缓存 token | 22,124,668 | 47,946,752 | + +四十次试验的用量、费用估算和 agent 区间均完整。候选总估算费用变化 **+30.3%**, +累加 agent 时间变化 **+21.6%**。这些总额包含被污染试验,是任务执行区间之和, +并非经过的墙钟时间;不含设置、verifier 工作、已放弃候选及后续单题跟进。其他 +实验中缺失或取消的行绝不会被悄悄当成零费用的计分失败。 + +共同符合条件的 19 题中,main 使用 10583.7 个 agent 秒、$1.375899;候选使用 +12400.7 秒、$1.806916。 + +Main 的模型提取试验在真实 `max_tokens` 事件及唯一一次允许的恢复后通过。这是 +既有恢复机制的证据,并非候选提示词造成的改进。Main 的正则表达式国际象棋 +试验则两次达到 `max_tokens`:第一次尝试恢复,第二次截断停止运行,始终未创建 +`/app/re.json`。官方测试完成并计零分。原生终止记录 status 为 `completed`, +outcome 却为 `response_truncated`;不能把进程成功收尾与任务成功完成混淆。 + +全部未通过行:对照 `torch-pipeline-parallelism`(已计分,奖励 0.0);处理组 +`torch-pipeline-parallelism`(已计分,奖励 0.0);对照 `regex-chess`(已计分, +奖励 0.0)。 + +原生终止结果:main `{"completed": 19, "response_truncated": 1}`;候选 +`{"completed": 20}`。它们独立于官方奖励。 + +## 轨迹显示的行为 + +- 两个流水线并行实现均未通过官方反向激活比较。候选的玩具模型一致性检查 + 未能确立与 verifier 实际测试模型兼容。这说明检查有缺口,但未确立唯一的 + 底层算法原因。 +- 模型提取两组均通过。候选约用 110 个 agent 秒,main 为 432 秒,候选无截断。 + 两组都检查任务提供的 `forward.py`,用其参数做诊断比较;提交的提取算法使用 + `forward()` 查询。这一本地诊断访问与外部隐藏测试接触分开披露。 +- Scheme 两组均通过且无截断。候选约 537 秒,main 为 1,418 秒。两组都与提供 + 的解释器及 32 个示例程序比较;main 花更多时间探索更深层自求值。 +- 电路综合两组均通过。候选用分层、随机和边界输入及中间状态不变量检查实际 + 模拟器,约 1,290 秒,main 为 1,981 秒。Main 做了更广的穷尽状态扫描;两组 + 均遵守任务约束。 +- 其他任务方向相反:候选在模型恢复、DNA 组装和图像重建上花更多时间。Main + 已在多题上做了实质性的独立和边界验证,包括随机 regex-log 检查。指令更明确 + 不代表对照组缺少这些行为。 +- 路径追踪公开描述称归一化 L2 相似度,但未给公式。官方测试使用余弦相似度, + 候选约为 0.99993 并通过。它另做的 `1 - ||a-b|| / ||b||` 诊断约为 0.98823。 + 后者不是官方分数。控制者在两份输出固定后才检查 verifier 公式;未向提示词 + 添加测试细节。Main 检查任务提供的可执行文件;候选从图像重建场景,花更长 + 时间解决数值差异。 + +候选使用提供的检查器和通用国际象棋库做独立随机及边界检查后,通过 regex-chess。 +它约 2,592 秒完成 73 次模型尝试,未截断。这是相对于 main 缺少产物的已观察 +配对改善,伴随大幅增加的任务工作。一个随机题对不能隔离是哪段提示词造成变化。 + +## 信息边界发现与保留的已放弃运行 + +第一个尚无信息边界的 P0 候选从外部 benchmark 镜像下载了流水线任务参考实现和 +隐藏评估源码,随后称其实现匹配该精确参考。候选组在 15:06 UTC 被中断。已启动 +的五次试验全部保留:**三次通过、一次模型工作前安装失败,以及一次被污染、 +在验证期间取消的试验**。十五次候选试验未启动。这些记录不被新候选结果替换, +也不与其合并。见 +[原候选审计](../../results/headless-p0-original-candidate-audit-20261007.json)和 +[原计划](../../configs/headless-p0-20261007/experiment.json)。已放弃组额外已知 +估算模型费用为 **$0.231970**;安装失败没有调用模型,因此推理费用为零。该额外 +费用不在上方比较表中。 + +回溯检查也确认已发布 v0.9.0 基线中通过的流水线试验存在同一完整性问题:下载 +任务仓库、阅读解法和评估测试,并运行复制的测试。旧原始奖励保持不变,但该 +通过不能作为独立能力证据。历史 **18/20 是保留的原始分数**,不是本实验干净的 +因果对照。见 +[历史审计](../../results/v0.9.0-pipeline-integrity-audit-20261007.json)及 +[原报告](v0.9.0-baseline-20261005.md)中的注释。对其他十九份历史轨迹的定向扫描 +未发现匹配的检索模式;这不是穷尽的回溯审计。 + +同期 main MTEB 试验也确认被污染。它先研究任务授权的公开排行榜数据,随后从 +Hugging Face 获取精确 Terminal-Bench 任务的参考解法、README 和隐藏测试源码。 +ATIF 第 99 步包含检索到的预期答案;第 101 步写入最终结果。其原始奖励仍为一, +但 MTEB 题对从共同符合条件的比较中排除。公开 MTEB 结果是合法任务输入; +Terminal-Bench 的答案和评估源码属于不同类别。 + +Main 流水线试验尝试精确函数搜索,但只收到安全检查页面或没有结果链接;未 +观察到答案/测试内容。结构化结果保留全部四十次试验的逐次审计备注和轨迹哈希。 +审计发现描述观察到的检索,并不证明排除了所有可能污染机制。 + +带边界 MTEB 试验使用任务授权的公开排行榜数据通过。它将结果仓库固定在 2025 +年 8 月,检查所有要求任务的覆盖,复现公开聚合路径,并独立交叉检查原始 JSON +分数。未观察到检索 Terminal-Bench 参考答案或隐藏测试。即使污染对照使 MTEB +题对不能进入共同能力比较,该通过结果仍可见。 + +四十份轨迹全部审计:1 份确认接触外部任务答案/测试;39 份在本次审查中未确认 +存在接触。 + +## 独立后续:允许任务提供的工作区参考材料 + +368 词边界阻碍了路径追踪试验中对提供的可执行文件的合法使用:agent 注意到 +该文件,却因任务文本未点名而拒绝反汇编。八个 pilot20 作业输入全部冻结后, +提交 `e61558f3ef23e626b7341b9811ec66044ce8610b` 澄清:除非任务限制使用,否则 +任务提供的源码、可执行文件和测试都可使用。对外部取得的任务答案及隐藏测试 +的边界仍保留。提示词未加入任务名、文件名、算法、答案或 verifier 公式。 + +当前提示词为 385 词,SHA256 为 +`37c4d9d44640c0051dc5a20e5954a067b98e8c51be07a48f080aa059e725c55d`。 +其[单题计划](../../configs/headless-workspace-20261007/experiment.json)在从隔离 +checkout 运行一次新的路径追踪试验前登记。本次等待完整比较的一组结束后才运行, +总并发保持最多二。见 +[后续证据](../../results/headless-workspace-followup-20261007.json)。 + +澄清后的候选在第一次尝试中**通过**官方 verifier。它反汇编提供的可执行文件 +(ATIF 第 29 步及后续读取),实现 C 渲染器,并将干净静态构建的结果与提供的 +图像逐字节比较。未观察到外部答案/测试检索,也未观察到因参考材料边界而拒绝 +使用的情况。 + +| 路径追踪版本 | 官方奖励 | Agent 秒数 | 模型尝试 | 估算美元费用 | +| --- | ---: | ---: | ---: | ---: | +| Main,175 词 | 1 | 403.401 | 30 | 0.128554 | +| 完整 20 题候选,368 词 | 1 | 1171.983 | 70 | 0.327928 | +| 澄清候选,385 词 | 1 | 340.510 | 44 | 0.114759 | + +后续运行用量/费用记账完整,无截断或恢复,安装的 wheel 匹配固定源码及清单。 +额外估算费用为 **$0.114759**,不含在完整比较总额中。依赖配置仍明确为 +`not_configured`。观察到的提供材料使用支持措辞澄清;一个选定案例不能证明 +措辞造成了时间差异,也不能证明其他任务会改进。 + +这是在观察到效率回归和提示词歧义后选定的单个案例。此前路径追踪试验只是 +描述性比较对象,不是随机重复样本。此前结果全部保留。澄清后的提示词**尚未** +在二十题上重跑;其结果不能作为新 pilot20 分数呈现。 + +## 下一步单独测试的优化 + +最明确的操作性后续是说明实际 Bash 工具契约:单次调用上限 120 秒,shell +`timeout 1500` 无法延长它;长命令需要正确重定向的后台启动,并在总体任务预算 +内轮询完成和退出状态。昂贵搜索或检查前保留可用中间交付物。任务要求保持运行 +的服务,与未完成的产物生成不同。 + +这基于观察到的失败,而非仅是提示词偏好。多个流水线/张量试验中的安装器使用 +`cd ... && nohup ... >log 2>&1 &`,可能使后台 AND-list 的 shell 持有被捕获管道。 +工具因此等待,并在超时时杀掉命令会话。带边界的批处理调度器也运行 +`timeout 1500 python3 run4.py ...`,在实际 120 秒工具上限被中断。 + +[缩放的本地诊断](../../results/headless-tool-limit-probe-20261007.json)使用未修改 +的 Bash 实现、0.25 秒工具上限和 2 秒工作负载。有问题的条件后台形式超时; +对整个命令组重定向则立即返回,随后能观察到完成标记。内部 1,500 秒 timeout +仍受外层 0.25 秒限制。这些探测确立工具语义,不能证明模型遵守或分数收益。 +本次比较期间未修改任何工具实现或工具指导。 + +后续候选应单独测试该操作指导及更早可运行的交付物,两种版本共享信息边界。 +声称稳定能力或效率收益前,应重复困难案例并增加留出任务。保留所有失败和 +观察到的回归,不应不断替换结果直到出现有利分数。 + +## 仓库检查 + +核心测试:**351 项通过,4 项跳过**。Harbor 工作流测试:**91 项通过**。冻结候选 +和工作区参考材料澄清版本都通过 Python 3.13、3.14 CI 和 Harbor 工作流契约。 +未添加脆弱的提示词文本断言测试。开发笔记中英文同步更新;研究笔记源文未变。 +原始 benchmark 证据保留在所引用、由 Git 忽略的 `jobs/` 目录内。 diff --git a/benchmarks/harbor/reports/zh-CN/stream-recovery-20260915.md b/benchmarks/harbor/reports/zh-CN/stream-recovery-20260915.md new file mode 100644 index 0000000..bb43546 --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/stream-recovery-20260915.md @@ -0,0 +1,123 @@ +# 中断响应恢复:实现与定向验证 + +## 状态 + +传输兼容性修复、有界流式响应恢复、离线测试和独立审查均已完成。线上定向试验 +已准备就绪,等待对 OpenRouter 数据传输及 API 费用的明确批准。本实验尚未发出 +任何线上模型请求。 + +## 问题与实现 + +9 月 12 日和 9 月 14 日的实验在三项不同任务中记录了四次模型响应中断。遍历响应 +时发生的 `RemoteProtocolError` 导致整个 agent 运行结束。SDK 1.5.0 使用 `httpx2`, +而 CLI 捕获的是 `httpx.HTTPError`;这两组异常不共享该基类。 + +修改后同时处理两组 HTTP 异常,并针对响应体读取中的 `ReadError`、`ReadTimeout` +和 `RemoteProtocolError` 最多重试两次,分别延迟 1 秒和 2 秒。保留最后一份完整 +对话,只有收到完整回复后才执行工具。中断的回复不消耗已完成回复的轮次预算。 +认证失败、无效请求、编程错误和用户取消不由此循环重试。流开始前的错误沿用 +SDK 重试策略,不再叠加第二层外部重试。 + +某次回复首次中断 300 秒后不再调度新的重试。该调度窗口不会取消正在进行的 +请求;SDK 超时和外部监督进程的期限仍是独立限制。 + +Journal v3 新增 `model.failed`,为每次尝试分配独立 ID,记录原始错误、重试意图、 +耗时,以及读取响应体前捕获的 generation ID。ATIF 按时间顺序保留失败尝试。 +可以对中断生成的费用进行对账,而不会将缺失 token 用量视为完整记账。读取器 +继续支持 v1/v2 journal。 + +## 自动化与离线证据 + +| 验证 | 结果 | +| --- | --- | +| 完整测试集,锁定 SDK 0.112.0 / httpx | 292 项通过,4 项跳过 | +| 完整测试集,SDK 1.5.0 / httpx2 2.12.0 | 296 项通过 | +| Harbor adapter 与官方 ATIF 兼容性测试 | 24 项通过 | +| 历史中断响应回放,SDK 1.5.0 | 4/4 恢复 | + +锁定环境跳过四项明确依赖未安装的 `httpx2` 包的测试。SDK 1.5.0 运行覆盖两组 +异常。两次完整测试均仍有畸形工具输入测试中既有的 Pydantic 警告。CI 现在同时 +运行锁定依赖环境和 SDK 1.5.0 环境。 + +真实 SDK 传输测试在看似完整的工具 JSON 到达后中断响应,验证被丢弃的工具始终 +不会执行,并检查先前的追加操作仅发生一次。其他测试覆盖重试耗尽、调度窗口、 +对话历史保留、中断、永久性错误、费用对账和 journal 版本拒绝。 + +离线回放通过 SDK 1.5.0 读取原始捕获的响应字节,在 EOF 处抛出记录的传输错误, +并为重试提供合成的成功回复。四个案例均关闭中断响应、重试相同请求、保留失败 +尝试,且不执行任何工具: + +| 历史试验 | 捕获字节数 | 结果 | +| --- | ---: | --- | +| `torch-tensor-parallelism__EEWJenL` | 280,943 | 恢复 | +| `schemelike-metacircular-eval__Xuw2yU4` | 33,440 | 恢复 | +| `schemelike-metacircular-eval__CJJvMtU` | 1,057,796 | 恢复 | +| `llm-inference-batching-scheduler__S95o8Jv` | 34,318 | 恢复 | + +这些回放不发送外部请求,也不提供新的任务分数。它们验证的是响应处理;重试 +成功是刻意合成的。 + +## 独立审查 + +名为 `stream-reviewer` 的 Codex agent 在相邻 Herdr 分屏中使用 +[review-agent skill](/home/minix/.codex/skills/.system/review-agent/SKILL.md)进行了 +审查。它检查了完整未提交 diff 和新文件、相关调用位置、测试、重试边界、异常 +兼容性、journal、ATIF 和费用。最终结果为 **No findings(未发现问题)**。它独立 +报告:锁定依赖环境下 76 项通过 / 4 项跳过,缓存的 SDK 1.5.0 环境下 80 项通过。 +创建 benchmark 分屏前已关闭审查分屏。 + +## 定向线上实验 + +所选任务覆盖已提交的历史结果摘要中,所有明确归类为 `RemoteProtocolError` 的 +不同任务: + +| 任务 | 相关历史尝试 | 历史结果 | +| --- | --- | --- | +| `schemelike-metacircular-eval` | 9 月 14 日,第 18 次请求 | 奖励 0;0/63 子用例;无 `eval.scm` | +| `llm-inference-batching-scheduler` | 9 月 14 日,第 3 次请求 | 奖励 0;模型流中断 | +| `torch-tensor-parallelism` | 9 月 12 日,第 1 次请求 | 无官方分数;流中断,随后 verifier 依赖超时 | + +准备的作业:`tb21-stream-recovery-targeted3-20260915`。 + +- 模型:`openrouter/deepseek/deepseek-v4-flash-0731`。 +- 数据集:`terminal-bench/terminal-bench-2-1`,固定为 + `sha256:7d7bdc1cbedad549fc1140404bd4dc45e5fd0ea7c4186773687d177ad3a0699a`。 +- 保留基线中每题的任务引用和缓存镜像摘要。 +- 50 次完整回复,每次回复 65,536 token,并发 2,每题尝试一次,不自动进行 + Harbor 整题重试。 +- 每次 agent 运行 3,600 秒,收尾宽限 120 秒,Harbor 外层期限 3,780 秒;原生 + verifier 时限不变。 +- SDK 1.5.0、httpx 0.28.1、httpx2 2.12.0、Pydantic 2.13.5。 +- 复用缓存的 uv 引导程序和被动 HTTP 录制器;定期堆栈转储仍禁用。线上试验 + 不注入传输故障。 +- 安装与当前每个包源码文件逐一验证过的 wheel。保留未提交源码快照和文件哈希, + 以便将结果与最终提交比较,同时不声称该快照当时已经提交。 + +从仓库根目录运行的本地复现命令: + +```bash +PYTHONPATH=src benchmarks/harbor/.venv/bin/python \ + jobs/tb21-stream-recovery-targeted3-20260915-record/workflow/run.py +``` + +Runner 拒绝覆盖现有作业,检查 wheel 和镜像摘要,加载已有端点凭据但不将其写入 +报告,并在 `jobs/` 下保存源码清单、原始日志、HTTP 记录、journal、轨迹、检查点 +和 verifier 输出。 + +## 解读限制 + +恢复修复无法确定上游哪个组件关闭了原连接,也不能证明模型能够解决这些任务。 +9 月 12 日的 Scheme 解释器在流失败前仅通过 4/63 子用例。采样、路由、缓存状态 +和提供商后端均未受控。本定向实验既不是完整 benchmark 分数,也不是通过率提升 +的受控测量。未发生中断的线上运行不会覆盖重试分支。 + +## 证据位置 + +- [9 月 12 日结果](../../results/tb21-generation-budget-65536-20260912.json) +- [9 月 14 日结果](../../results/tb21-tool-input-recovery-20260914.json) +- [Journal v3 协议](../../../../docs/dev_docs/zh-CN/event-journal-protocol-v3.md) +- 本地记录:`jobs/tb21-stream-recovery-targeted3-20260915-record/` +- 本地离线回放:上述记录内的 `offline_replay.py` 和 `offline-replay.json` + +原始任务/模型数据保留在 Git 忽略的本地作业目录内。双语 CLI 文档、v2/v3 协议 +源文及英文版本均已同步。 diff --git a/benchmarks/harbor/reports/zh-CN/truncation-recovery-20261005.md b/benchmarks/harbor/reports/zh-CN/truncation-recovery-20261005.md new file mode 100644 index 0000000..34bf4e2 --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/truncation-recovery-20261005.md @@ -0,0 +1,77 @@ +# 有界截断恢复:双任务实验 + +实验 agent 在冻结的 v0.9.0 pilot20 中失败的两题上取得 **2/2 通过**、**0 次计分 +失败**和 **0 次未计分试验**。两次试验均未达到生成上限,因此均未触发自动恢复。 +这些新运行的分数不能证明该策略带来收益。确定性测试覆盖恢复分支及其安全/预算 +边界;线上有效性仍未得到证明。 + +## 假设与实现 + +此前,完整 API 响应若带有 `stop_reason="max_tokens"`,即使任务还有时间和回复 +次数,headless 运行也会结束。现在允许每次 headless 运行继续一次,沿用原始 +期限、回复次数和单次回复 token 上限。在请求历史中保留部分可见文本和提示, +丢弃该响应中所有未执行的工具调用和不完整 thinking。从已确认的工具结果和 +当前文件继续,不重放此前工具操作。 + +继续事件记录为 `input.injected`,原因为 `truncation_recovery`,同时保留每次 +模型尝试的停止原因、用量和费用。传输重试或成功的工具操作不会重置该额度。 +再次截断、达到回复上限或原始期限均会结束运行。交互模式仍在截断后将控制权 +交还用户。 + +## 固定输入 + +- Agent 提交:`e1be6ed1f81a17d73677b414d4d913adb81e9e25`。 +- 模型:`deepseek/deepseek-flash`,端点 `https://api.deepseek.com/anthropic`。 +- 100 次模型回复,每次回复最多生成 65,536 token。 +- 模型提取工作预算 720 秒;Scheme 工作预算 2,220 秒。 +- 设置时限 1,800 秒,与冻结的发布基线相同。 +- 每题一次新运行,无整次试验重试。两个单任务标准 Harbor 作业同时运行,最多 + 两次并行试验。 +- 保留官方任务修订、镜像、包源和测试。全部 73 个记录的任务文件哈希不变, + 任务校验和与预检一致。仅 verifier 超时可重试,沿用原始单次时限,在同一 + agent 输出上最多尝试三次。 + +[预先声明的计划](../../configs/truncation-recovery-20261005/experiment.json)包含 +任务修订、预算、源码/配置哈希和分析规则。实验 agent 的两次仅安装检查均通过。 +两项 verifier 依赖配置均明确报告 `not_configured`;安装成功不代表 verifier +依赖已获认证。 + +预检和两次线上运行的 wheel 逐字节一致。两题的镜像和完整任务校验和均与发布 +基线相同。两个官方 verifier 均在第一次尝试中完成;Scheme 通过全部 63 个子用例。 + +## 结果 + +| 任务 | 基线奖励 | 实验奖励 | 原生结果 | 截断响应数 | 恢复次数 | 恢复后执行工具次数 | Agent 秒数 | 已知估算美元费用 | +| --- | ---: | ---: | --- | ---: | ---: | ---: | ---: | ---: | +| `model-extraction-relu-logits` | 0 | 1 | `completed` | 0 | 0 | 0 | 361.7 | 0.054624 | +| `schemelike-metacircular-eval` | 0 | 1 | `completed` | 0 | 0 | 0 | 1398.5 | 0.180475 | + +已知估算费用小计:**$0.235099**。 +用量记账**完整**;费用记账**对已报告 token 完整**。 +不完整模型尝试数为 0。费用使用静态 DeepSeek 价目表,并非提供商账单总额。 +Agent 秒数包含收尾开销。 + +[结构化结果](../../results/tb21-truncation-recovery-20261005.json)包含两次试验、 +预检、源码/wheel 哈希、恢复事件计数、逐次 verifier 记录、原生结果和用量。 +原始 journal、轨迹和测试日志保留在所引用、由 Git 忽略的 `jobs/` 路径内。 + +## 验证与解读 + +- 核心测试:锁定依赖下 351 项通过、4 项可选传输测试跳过;Anthropic SDK 1.5.0 + 下 355 项通过。 +- Harbor 工作流/ATIF 契约:91 项通过,包括工具调用截断后模型响应恢复的情形。 +- 确定性测试覆盖:通过工具工作继续直至完成、跨传输重试的每次运行仅恢复一次 + 上限、期限和回复限制不变、丢弃截断工具/thinking、不重复执行已确认的工具、 + 交互行为不变,以及保留用量/费用总额。 +- 线上轨迹校验和源码/任务完整性检查记录在结构化结果中。 + +[发布基线](v0.9.0-baseline-20261005.md)仍为 **18/20**。这两个新结果不替换其 +失败,也不构成修订后的 pilot20 分数。它们使用新的模型生成和不同的并发任务 +配对;不存在针对旧失败响应的确定性反事实。 + +## 后续 + +维护者随后要求每题固定追加三次运行。 +[独立的六次运行报告](truncation-recovery-repeat3-20261005.md)记录了 4/6 通过, +以及一次自然截断后继续有效工作,但恢复后并未取得通过分数。上述原始结果保持 +不变。 diff --git a/benchmarks/harbor/reports/zh-CN/truncation-recovery-repeat3-20261005.md b/benchmarks/harbor/reports/zh-CN/truncation-recovery-repeat3-20261005.md new file mode 100644 index 0000000..5679d8b --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/truncation-recovery-repeat3-20261005.md @@ -0,0 +1,97 @@ +# 截断恢复:每题追加三次运行 + +预先声明的六次新运行取得 **4/6 通过**、**2 次计分失败**和 **0 次未计分试验**。 +模型提取通过 **1/3**;Scheme 通过 **3/3**。一次模型提取运行在第二次响应中自然 +截断,复现了发布基线的失败模式。自动恢复继续了有效工作,但该试验仍未通过 +官方测试。本实验证明线上截断后可以继续,并未证明能恢复到通过分数。 + +## 固定实验 + +[最初的双次运行实验](truncation-recovery-20261005.md)通过且未发生截断后,维护者 +要求此前失败的每题再运行三次。 +[计划](../../configs/truncation-recovery-repeat3-20261005/experiment.json)在模型 +工作前提交,固定全部六个作业及其队列顺序。每个作业在新容器中运行一次; +没有替换或重试任何结果。 + +- Checkout:`382cb38413d7d5368ad1be97e85142f280172a5b`。 +- Wheel 版本:`0.9.1.dev5+g382cb3841`。 +- 全部 21 个 agent/adapter Python 源码哈希与此前实验的 + `e1be6ed1f81a17d73677b414d4d913adb81e9e25` 一致。本轮不修改运行时代码。 +- 模型:`deepseek/deepseek-flash`,官方端点 + `https://api.deepseek.com/anthropic`。 +- 100 次模型回复,每次回复最多 65,536 个输出 token;模型提取工作预算 720 秒, + Scheme 为 2,220 秒;设置时限 1,800 秒。 +- 最多同时运行两个单任务作业,使用仓库标准 Harbor 入口和经过验证的依赖缓存。 +- 保留原始任务修订、镜像、包源和测试。Verifier 单次时限仍为 900/2,400 秒; + 仅超时可重试,在同一输出上最多尝试三次。六个 verifier 均在第一次尝试中完成。 + +两次仅安装试验均通过。两项 verifier 依赖配置均明确报告 `not_configured`; +这是安装成功,并非 verifier 依赖认证。预检和六次运行的 wheel 逐字节一致, +SHA256 为 `9f519124b62314d5b3625004441e0bfc29473533f29cef2dcf3640e55094800f`。 +两题的完整任务校验和及镜像 ID 均与发布基线相同。全部 73 个记录的任务文件 +哈希保持不变。六份原生 ATIF 轨迹均通过校验,六次原生终止结果均为 `completed`。 + +六个作业从 **2026-10-05 14:27:47 运行至 15:20:14 UTC**,包括设置、模型工作、 +验证和清理。 +[复现说明](../../configs/truncation-recovery-repeat3-20261005/README.md)记录了固定 +调度和标准命令。 + +## 全部六次结果 + +| 任务 | 运行序号 | 奖励 | 截断次数 | 恢复次数 | 模型回复数 | 最大回复 token 数 | Agent 秒数 | 官方结果 | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | +| 模型提取 | 1 | 0 | 0 | 0 | 27 | 17,791 | 414.4 | 缺少第 2、27 行 | +| 模型提取 | 2 | 0 | 1 | 1 | 17 | 65,536 | 554.1 | 缺少第 24 行 | +| 模型提取 | 3 | 1 | 0 | 0 | 23 | 53,538 | 483.9 | 通过 | +| Scheme | 1 | 1 | 0 | 0 | 41 | 17,495 | 1080.7 | 63/63 子用例 | +| Scheme | 2 | 1 | 0 | 0 | 79 | 35,869 | 1281.1 | 63/63 子用例 | +| Scheme | 3 | 1 | 0 | 0 | 60 | 23,002 | 829.9 | 63/63 子用例 | + +Agent 秒数包含收尾开销。缺失行的索引从零开始。最大回复计数包括提供商报告的 +内部 thinking token,并非只有可见文本。Scheme 每次都通过全部 63 个子用例, +包括基线中失败的嵌套自解释用例。这些 Scheme 运行均未触发恢复。 + +已知按 token 估算的费用为 **$0.906352500**。六次试验对已报告 token 的用量和 +费用记账均完整,没有不完整的模型流。这些估算使用静态 DeepSeek 价目表,并非 +提供商账单。 + +## 实际截断后发生了什么 + +模型提取第 2 次运行首先检查环境。其第二次响应恰好消耗 65,536 个输出 token, +以 `max_tokens` 结束,且没有可执行工具调用。这复现了相关基线模式:在创建 +必需脚本前进行了长时间推理。 + +在 **326.302 秒**时,原始 720 秒预算还剩约 **393.698 秒**,agent 注入其唯一一次 +`truncation_recovery` 提示。随后又完成 **15 次模型响应**和 **14 次工具执行**, +包括写入 `/app/steal.py`、修改它并运行本地检查。未发生第二次截断。原生运行在 +**552.428 秒**完成;原始期限及回复/token 上限均未提高。 + +官方 verifier 执行了提交脚本,并找到其输出文件。脚本报告从 verifier 的 30 +神经元网络中恢复了 **29 个隐藏神经元**;原始权重第 **24** 行没有匹配的输出行。 +因此官方奖励仍为 **0**。这是有效继续后解法质量不足导致的失败,与基线中缺少 +脚本/输出的失败不同。旧的首次截断即停止规则会在同一截断边界终止;本次运行 +直接证明新分支能继续越过该边界,但不能提供策略对最终任务成功影响的配对估计。 + +模型提取第 1 次运行也创建了脚本和输出,随后主动结束,未发生截断。其官方测试 +在第 **2、27** 行失败。第 3 次运行通过且未截断。Verifier 将可见的 20 神经元 +示例替换为 30 神经元网络;仅在可见示例上通过检查,不能证明官方用例的提取 +完整性。这些观察支持将验证和提取完整性与截断处理分开研究,但不能确立单一 +算法根因。 + +## 解读与证据 + +该分支现在有了一个真实案例:**一次截断后,在原始预算内继续进行了有效工具 +工作**。这组六次运行中,**使用恢复的通过试验数为零**,因此不能证明恢复能挽救 +最终分数。它也没有 Scheme 截断案例,无法检验该任务上的恢复。应将这些结论与 +最初实验中已经记录的每次运行仅恢复一次上限、部分工具安全和预算边界的确定性 +测试区分开。 + +[结构化结果](../../results/tb21-truncation-recovery-repeat3-20261005.json)保留每次 +试验、原始结果/轨迹/verifier 日志路径、逐次 verifier 记录、源码/产物检查、 +记账完整性,以及恢复后模型/工具活动的序列。原始产物保留在所引用、由 Git +忽略的本地 `jobs/` 目录内。 + +此前的 2/2 实验仍是独立样本。已发布 v0.9.0 的 +[pilot20 基线](v0.9.0-baseline-20261005.md)仍为 **18/20**。新的模型路径和不同的 +并发配对使总分差异无法归因于本修改;每题三次运行也只是小样本。观察这些结果 +后没有追加额外运行。 diff --git a/benchmarks/harbor/reports/zh-CN/v0.9.0-baseline-20261005.md b/benchmarks/harbor/reports/zh-CN/v0.9.0-baseline-20261005.md new file mode 100644 index 0000000..9af6e70 --- /dev/null +++ b/benchmarks/harbor/reports/zh-CN/v0.9.0-baseline-20261005.md @@ -0,0 +1,126 @@ +# v0.9.0 冻结的 pilot20 基线 + +已发布的 nanoPyCodeAgent **0.9.0** 于 2026-10-05 完成预先声明的 20 题 +Terminal-Bench 2.1 pilot:**18/20 通过**、**2 次计分失败**、**0 次未计分试验**。 +这是面向 0.10.0 开发的基线。 + +> **回溯审计,2026-10-07:** 通过的流水线并行试验下载并阅读了任务的参考解法和 +> 隐藏评估测试,并在结束前运行了复制的测试。其原始奖励仍为 1,但这次通过 +> **不能作为独立能力证据**。以下 18/20 是保留的原始分数,并非完全干净的能力 +> 基线。见[审计记录](../../results/v0.9.0-pipeline-integrity-audit-20261007.json)。 +> 对其他 19 份轨迹的定向扫描未发现匹配的检索模式;这不代表进行了穷尽的历史 +> 信息审计。 + +[公开结果](../../results/tb21-v090-baseline-20261005.json)包含全部 20 次试验、 +哈希、计时、原生结果和已知用量。 +[预先声明的配置](../../configs/v0.9.0-pilot20/baseline.json)记录原始任务修订和 +预算。原始证据保留在由 Git 忽略的 `jobs/` 中。 + +## 冻结输入与执行 + +| 设置 | 值 | +| --- | --- | +| Agent 发布版本 | [v0.9.0](https://github.com/minixalpha/nanoPyCodeAgent/releases/tag/v0.9.0) | +| Agent 和 adapter 修订 | `c0605369d277352ac0d5ec20d02017b7cb149314` | +| 模型 | `deepseek/deepseek-flash`(原生模型名 `deepseek-flash`) | +| 端点 | `https://api.deepseek.com/anthropic` | +| 数据集修订 | `sha256:7d7bdc1cbedad549fc1140404bd4dc45e5fd0ea7c4186773687d177ad3a0699a` | +| 任务 | 与 9 月 30 日官方端点 pilot 相同的 20 个固定修订 | +| 轮次 / 生成上限 | 100 个模型轮次 / 每次请求 65,536 个输出 token | +| 工作预算 | 原生 agent 超时减 180 秒 | +| 并发 / 每题模型运行次数 / 整次试验重试 | 2 / 1 / 0 | +| Agent 依赖设置超时 | 1,800 秒;独立于任务工作 | +| Verifier 策略 | 原生单次超时;仅超时重试,最多 3 次尝试 | +| 开始 / 结束时间(UTC) | 2026-10-05T09:04:24.092774+00:00 / 2026-10-05T11:47:12.665041+00:00 | +| 墙钟时间 | 2.71 小时,包括分组设置和验证 | + +标准 runner 每个作业使用一个工作预算。四个互不重叠的分组依次通过 +`uv run --project benchmarks/harbor python -m harbor_adapter run` 执行: + +| 工作预算(秒) | 任务数 | 作业 | +| ---: | ---: | --- | +| 720 | 12 | `v090-pilot20-720s-20261005` | +| 1620 | 3 | `v090-pilot20-1620s-20261005` | +| 2220 | 1 | `v090-pilot20-2220s-20261005` | +| 3420 | 4 | `v090-pilot20-3420s-20261005` | + +每个预检和 benchmark wheel 都与已发布的 PyPI wheel +`nanopycodeagent-0.9.0-py3-none-any.whl` 具有相同 SHA256: +`28bf15811d812c343bbd34ad1e3dc7928c62726c0f620d40568b92cd98594dd2`。全部 21 个记录的 +agent/adapter 源文件与发布 tag 相同。全部 152 个记录的指令、任务配置和官方测试 +文件均保留预先声明的哈希;完整运行的任务校验和也与预检相同。 + +## 依赖预检 + +仅安装作业 `v090-pilot20-install-20261005` 在模型工作前完成:**20/20 项 agent +安装通过**,均报告版本 0.9.0。已登记的 `qemu-alpine-ssh-v1` verifier 依赖配置 +通过。其余 **19 题报告 `not_configured`**;其官方测试依赖未经预检认证。仅安装 +运行不调用模型,也不为任务断言评分。 + +设置使用共享 APT 缓存,并根据每题的包索引验证文件名、大小和 SHA256。任务 +镜像和包源保持不变。1,800 秒 agent 设置时限是相对于历史 360 秒默认值的明确 +基础设施变化;原生任务工作时限和单次 verifier 时限均未改变。 + +## 逐题结果 + +Agent 秒数为 Harbor 的 agent 执行区间,包含收尾。模型步数统计原生 ATIF agent +条目,包括不完整尝试。费用为已知的按 token 估算美元费用;星号表示记账不完整。 + +| 任务 | 奖励 | 原生结果 | 工作预算(秒) | Agent(秒) | 模型步数 | 已知费用(美元) | +| --- | ---: | --- | ---: | ---: | ---: | ---: | +| `write-compressor` | 1 | `completed` | 720 | 476.5 | 49 | 0.134445 | +| `torch-tensor-parallelism` | 1 | `completed` | 720 | 361.6 | 17 | 0.047699 | +| `schemelike-metacircular-eval` | 0 | `response_truncated` | 2220 | 1163.4 | 68 | 0.298166* | +| `kv-store-grpc` | 1 | `completed` | 720 | 165.0 | 10 | 0.004492 | +| `pypi-server` | 1 | `completed` | 720 | 101.5 | 15 | 0.013944 | +| `dna-assembly` | 1 | `completed` | 1620 | 882.2 | 58 | 0.226623 | +| `torch-pipeline-parallelism` | 1 | `completed` | 720 | 601.7 | 27 | 0.055660 | +| `qemu-alpine-ssh` | 1 | `completed` | 720 | 417.4 | 32 | 0.048066 | +| `openssl-selfsigned-cert` | 1 | `completed` | 720 | 21.9 | 8 | 0.004056 | +| `regex-chess` | 1 | `completed` | 3420 | 2496.1 | 93 | 0.369176 | +| `log-summary-date-ranges` | 1 | `completed` | 720 | 145.0 | 8 | 0.005269 | +| `model-extraction-relu-logits` | 0 | `response_truncated` | 720 | 301.3 | 2 | 0.079039 | +| `path-tracing` | 1 | `completed` | 1620 | 313.6 | 21 | 0.110831 | +| `regex-log` | 1 | `completed` | 720 | 477.3 | 20 | 0.105065 | +| `caffe-cifar-10` | 1 | `completed` | 3420 | 1850.4 | 69 | 0.091623 | +| `mteb-leaderboard` | 1 | `completed` | 3420 | 1356.3 | 83 | 0.117396 | +| `llm-inference-batching-scheduler` | 1 | `completed` | 1620 | 378.6 | 26 | 0.089773 | +| `pytorch-model-recovery` | 1 | `completed` | 720 | 114.9 | 10 | 0.020883 | +| `circuit-fibsqrt` | 1 | `completed` | 3420 | 1389.2 | 45 | 0.136586 | +| `merge-diff-arc-agi-task` | 1 | `completed` | 720 | 71.1 | 17 | 0.015473 | + +全部 **20/20 份原生轨迹**通过 Harbor ATIF validator。20 次试验共进行 **20 次 +verifier 尝试**。已完成的零分均保留;没有为替换失败而重复任何模型运行。 + +## 计分失败 + +- `model-extraction-relu-logits`:agent 约 300 秒后以 `response_truncated` 结束。 + 官方测试因缺少 `/app/steal.py` 失败,要求的 `/app/stolen_A1.npy` 产物未生成。 + 这是计分失败,并非设置或 verifier 错误。 +- `schemelike-metacircular-eval`:agent 约 1,162 秒后以 `response_truncated` + 结束。官方 evaluator 通过 63 个子用例中的 58 个、失败 5 个,奖励为 0。此前 + 两次模型流出现 `RemoteProtocolError` 并成功重试;其用量不可用。Verifier 本身 + 在第一次尝试中完成。终止结果和错误子用例是不同观察,不能证明每个错误结果 + 都由截断造成。 + +## 用量与费用限制 + +已知估算小计为 **$1.974266**,使用 v0.9.0 附带的静态 DeepSeek 价目表。有 **2 次 +不完整模型尝试**,缺失的用量和费用未知。因此该小计是**部分费用**,不得作为 +完整运行费用或提供商账单呈现。 + +已知 token:**48,617,531 prompt**(**48,119,548 缓存**)和 **1,280,128 completion**。 +完整 token 总额不可用。已恢复的模型流中断与致命 Harbor 异常、计分任务失败 +分别记录。 + +## 解读与后续工作 + +本次运行确立了 0.10.0 功能修改之前实际发布产物的基线。响应截断是 0.10.0 的 +具体后续方向:检查失败案例,在独立实验中评估有界恢复策略,并保留本组原始 +分数。 + +[9 月 30 日运行](deepseek-official-20260930.md)有 16 题通过、2 次计分失败和 2 项 +基础设施异常。任务修订未变,但 agent/harness 修订、设置时限、缓存状态和运行 +日期不同。更早的 OpenRouter 运行还使用了另一种模型/提供商配置。这些记录无法 +隔离 agent 修改的因果影响。Pilot20 仅代表这个小任务组,并非完整 89 题的 +Terminal-Bench 分数。 diff --git a/docs/dev_notes/en/0.10.x.md b/docs/dev_notes/en/0.10.x.md index 6614821..21aa68c 100644 --- a/docs/dev_notes/en/0.10.x.md +++ b/docs/dev_notes/en/0.10.x.md @@ -116,7 +116,7 @@ after selecting a candidate. Input preservation, independent contract checks, earlier small tests, failure-status propagation, targeted negative cases, and repeatable performance measurements remain hypotheses for the next experiment. -The [complete per-task report](../../../benchmarks/harbor/reports/dev34-main-baseline-20261012.md), +The [complete per-task report](../../../benchmarks/harbor/reports/en/dev34-main-baseline-20261012.md), [structured results](../../../benchmarks/harbor/results/dev34-main-baseline-20261012.json), and [frozen configuration](../../../benchmarks/harbor/configs/dev34-main-baseline-20261012/README.md) retain all 34 task records, failure evidence, provenance hashes, preflight history, @@ -257,7 +257,7 @@ the orphan process's exit code remains explicitly unknown. Core tests have 351 passes and 4 skips; Harbor tests have 91 passes. Both prompt revisions pass Python 3.13/3.14 and Harbor CI. Research documents are unchanged, and these development notes are synchronized in Chinese and English. The -[full report](../../../benchmarks/harbor/reports/headless-p0-guarded-20261007.md) and +[full report](../../../benchmarks/harbor/reports/en/headless-p0-guarded-20261007.md) and [structured results](../../../benchmarks/harbor/results/tb21-headless-p0-guarded-20261007.json) retain all trials, source audits, and reproduction configurations. @@ -304,7 +304,7 @@ stream interruptions in the Scheme task have no usage records, so token and cost totals are incomplete. Missing values are not zero, and the estimated subtotal is not the provider bill. -The [full report](../../../benchmarks/harbor/reports/v0.9.0-baseline-20261005.md), +The [full report](../../../benchmarks/harbor/reports/en/v0.9.0-baseline-20261005.md), [structured results](../../../benchmarks/harbor/results/tb21-v090-baseline-20261005.json), and [frozen configuration](../../../benchmarks/harbor/configs/v0.9.0-pilot20/README.md) provide the audit references. Raw logs remain in Git-ignored `jobs/`. Prioritize @@ -359,7 +359,7 @@ SDK 1.5.0. Harbor compatibility and workflow checks have 91 passes. Tests cover the mechanism's correctness; this live experiment does not establish its benefit on tasks that actually truncate. -Keep the [experiment report](../../../benchmarks/harbor/reports/truncation-recovery-20261005.md), +Keep the [experiment report](../../../benchmarks/harbor/reports/en/truncation-recovery-20261005.md), [structured results](../../../benchmarks/harbor/results/tb21-truncation-recovery-20261005.json), and [reproduction configuration](../../../benchmarks/harbor/configs/truncation-recovery-20261005/README.md). Do not keep rerunning until a favorable sample appears. @@ -417,7 +417,7 @@ generation paths and concurrent pairings, establish a causal improvement in success rate. Stop at the predeclared run count without adding trials after observing the results. -The [six-run report](../../../benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md), +The [six-run report](../../../benchmarks/harbor/reports/en/truncation-recovery-repeat3-20261005.md), [per-trial structured results](../../../benchmarks/harbor/results/tb21-truncation-recovery-repeat3-20261005.json), and [fixed configuration](../../../benchmarks/harbor/configs/truncation-recovery-repeat3-20261005/README.md) preserve the recovery timestamp, remaining budget, subsequent model/tool diff --git a/docs/dev_notes/zh-CN/0.10.x.md b/docs/dev_notes/zh-CN/0.10.x.md index 25fb1a7..93373e2 100644 --- a/docs/dev_notes/zh-CN/0.10.x.md +++ b/docs/dev_notes/zh-CN/0.10.x.md @@ -94,7 +94,7 @@ WAL 题的环境检查还使 provider 凭据出现在工具观察中;原始日 留待候选确定后另行登记评估。输入保护、独立契约检查、更早执行小测试、失败状态 传递、针对性反例和可重复性能测量仍只是下一轮待验证的优化方向。 -[完整逐题报告](../../../benchmarks/harbor/reports/dev34-main-baseline-20261012.md)、 +[完整逐题报告](../../../benchmarks/harbor/reports/zh-CN/dev34-main-baseline-20261012.md)、 [结构化结果](../../../benchmarks/harbor/results/dev34-main-baseline-20261012.json) 和 [固定配置](../../../benchmarks/harbor/configs/dev34-main-baseline-20261012/README.md) 保留全部 34 题明细、失败证据、来源哈希、预检历史和复现入口。本节于 2026-10-14 @@ -190,7 +190,7 @@ $0.114759216,不混入两组费用。不能把 368 词版的 20 题成绩归 安装的 wheel 都匹配所属 job;运行中一次启动器重启后的汇总恢复没有重跑模型, 孤儿进程退出码明确记录为未知。核心测试 351 通过、4 跳过,Harbor 测试 91 通过, 两个提示词修订均通过 Python 3.13/3.14 和 Harbor CI。研究文档没有变化,开发 -笔记中英文同步。[完整报告](../../../benchmarks/harbor/reports/headless-p0-guarded-20261007.md) +笔记中英文同步。[完整报告](../../../benchmarks/harbor/reports/zh-CN/headless-p0-guarded-20261007.md) 与[结构化结果](../../../benchmarks/harbor/results/tb21-headless-p0-guarded-20261007.json) 保留全部试次、来源审计和复现配置。 @@ -226,7 +226,7 @@ trajectory 均通过 ATIF 校验,保留所有试次,没有用重跑替换失 中断,其 usage 缺失,因此 token 总数和费用都不完整,不能把缺失部分当作零,也 不能把估算小计当成实际账单。 -[完整报告](../../../benchmarks/harbor/reports/v0.9.0-baseline-20261005.md)、 +[完整报告](../../../benchmarks/harbor/reports/zh-CN/v0.9.0-baseline-20261005.md)、 [结构化结果](../../../benchmarks/harbor/results/tb21-v090-baseline-20261005.json) 和 [固定配置](../../../benchmarks/harbor/configs/v0.9.0-pilot20/README.md) 保留了复核入口。 原始日志留在 Git 忽略的 `jobs/` 中。后续优先研究有界的截断恢复策略,作为独立 @@ -267,7 +267,7 @@ usage/费用累计。锁定依赖时核心测试 351 通过、4 项可选传输 下 355 项通过;Harbor 兼容性与流程检查 91 项通过。机制的正确性已有测试覆盖, 真实截断任务上的收益仍未得到本轮实验证明。 -保留[实验报告](../../../benchmarks/harbor/reports/truncation-recovery-20261005.md)、 +保留[实验报告](../../../benchmarks/harbor/reports/zh-CN/truncation-recovery-20261005.md)、 [结构化结果](../../../benchmarks/harbor/results/tb21-truncation-recovery-20261005.json) 与[复跑配置](../../../benchmarks/harbor/configs/truncation-recovery-20261005/README.md), 不继续重跑直到获得有利样本。 @@ -310,7 +310,7 @@ Scheme 都没有截断,仍不能据此判断恢复逻辑能否救回 Scheme; 样本、不同生成路径与并发配对推导策略对通过率的因果提升。按预定次数结束, 没有看到结果后再追加试次。 -[六次运行报告](../../../benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md)、 +[六次运行报告](../../../benchmarks/harbor/reports/zh-CN/truncation-recovery-repeat3-20261005.md)、 [逐次结构化结果](../../../benchmarks/harbor/results/tb21-truncation-recovery-repeat3-20261005.json) 和[固定配置](../../../benchmarks/harbor/configs/truncation-recovery-repeat3-20261005/README.md) 保留了恢复时间点、剩余预算、后续模型与工具活动,以及原始日志的复核路径。 diff --git a/docs/research/en/agent_system_prompt.md b/docs/research/en/agent_system_prompt.md index 77d1226..afcc973 100644 --- a/docs/research/en/agent_system_prompt.md +++ b/docs/research/en/agent_system_prompt.md @@ -119,10 +119,10 @@ The current state therefore should not be described as lacking verification, bud | Experiment | Observed result | Relevance to this study | | --- | --- | --- | -| [Frozen v0.9.0 baseline](../../../benchmarks/harbor/reports/v0.9.0-baseline-20261005.md) | 18/20; the two failures involved output truncation and related issues | Preserve the original baseline rather than replacing it with later best results | -| [Initial truncation-recovery experiment](../../../benchmarks/harbor/reports/truncation-recovery-20261005.md) | 2/2 passed, neither exercising recovery | Does not establish that recovery improved pass rates | -| [Three additional runs per task](../../../benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md) | 4/6 passed; all `completed`; the only actual recovery continued work and produced artifacts but failed verification | Continued execution, artifact existence, normal termination, and semantic correctness are distinct metrics | -| [Dual-budget pilot20](../../../benchmarks/harbor/reports/dual-budget-20260929.md) | 18/20 and all `completed`; one numerical task passed self-checks but failed independent verification, while another missed an accuracy requirement | Verification quality and solution quality still have gaps; honestly acknowledging a missed requirement is not a passing result | +| [Frozen v0.9.0 baseline](../../../benchmarks/harbor/reports/en/v0.9.0-baseline-20261005.md) | 18/20; the two failures involved output truncation and related issues | Preserve the original baseline rather than replacing it with later best results | +| [Initial truncation-recovery experiment](../../../benchmarks/harbor/reports/en/truncation-recovery-20261005.md) | 2/2 passed, neither exercising recovery | Does not establish that recovery improved pass rates | +| [Three additional runs per task](../../../benchmarks/harbor/reports/en/truncation-recovery-repeat3-20261005.md) | 4/6 passed; all `completed`; the only actual recovery continued work and produced artifacts but failed verification | Continued execution, artifact existence, normal termination, and semantic correctness are distinct metrics | +| [Dual-budget pilot20](../../../benchmarks/harbor/reports/en/dual-budget-20260929.md) | 18/20 and all `completed`; one numerical task passed self-checks but failed independent verification, while another missed an accuracy requirement | Verification quality and solution quality still have gaps; honestly acknowledging a missed requirement is not a passing result | The two failed model-extraction repetitions primarily checked the visible instance; official verification exposed incompleteness at a different size. The development notes also record a trajectory review: the passing run checked different input conditions, model sizes, and output residuals, then fixed an issue exposed by additional checks. The experiment's [structured results](../../../benchmarks/harbor/results/tb21-truncation-recovery-repeat3-20261005.json) preserve original trajectory paths; raw files remain in Git-ignored `jobs/` directories. This trajectory observation is a clue to a candidate mechanism, not the sole causal explanation or an established diagnosis of every algorithmic failure. diff --git a/docs/research/zh-CN/agent_system_prompt.md b/docs/research/zh-CN/agent_system_prompt.md index 8bf6645..1ca03fe 100644 --- a/docs/research/zh-CN/agent_system_prompt.md +++ b/docs/research/zh-CN/agent_system_prompt.md @@ -119,10 +119,10 @@ Pi 最适合本项目借鉴的地方是职责划分:核心指令保持集中 | 实验 | 观察到的结果 | 对本轮研究的意义 | | --- | --- | --- | -| [v0.9.0 冻结 baseline](../../../benchmarks/harbor/reports/v0.9.0-baseline-20261005.md) | 18/20;两次失败涉及输出截断等问题 | 保留原始基线,不能用后续最好结果覆盖 | -| [首次截断恢复实验](../../../benchmarks/harbor/reports/truncation-recovery-20261005.md) | 2/2 通过,均未触发恢复 | 不能据此证明恢复策略提高通过率 | -| [每题追加三次](../../../benchmarks/harbor/reports/truncation-recovery-repeat3-20261005.md) | 4/6 通过;全部 `completed`;唯一真实恢复继续工作并生成产物,仍未通过 verifier | 执行继续、产物存在、正常结束和语义正确是不同指标 | -| [双预算 pilot20](../../../benchmarks/harbor/reports/dual-budget-20260929.md) | 18/20 且全部 `completed`;一项数值任务自测通过但独立验证失败,另一项准确率未达标 | 验证质量和任务解法仍有缺口;诚实承认未达标也不等于通过 | +| [v0.9.0 冻结 baseline](../../../benchmarks/harbor/reports/zh-CN/v0.9.0-baseline-20261005.md) | 18/20;两次失败涉及输出截断等问题 | 保留原始基线,不能用后续最好结果覆盖 | +| [首次截断恢复实验](../../../benchmarks/harbor/reports/zh-CN/truncation-recovery-20261005.md) | 2/2 通过,均未触发恢复 | 不能据此证明恢复策略提高通过率 | +| [每题追加三次](../../../benchmarks/harbor/reports/zh-CN/truncation-recovery-repeat3-20261005.md) | 4/6 通过;全部 `completed`;唯一真实恢复继续工作并生成产物,仍未通过 verifier | 执行继续、产物存在、正常结束和语义正确是不同指标 | +| [双预算 pilot20](../../../benchmarks/harbor/reports/zh-CN/dual-budget-20260929.md) | 18/20 且全部 `completed`;一项数值任务自测通过但独立验证失败,另一项准确率未达标 | 验证质量和任务解法仍有缺口;诚实承认未达标也不等于通过 | 追加实验的两个模型提取失败主要检查可见实例;官方验证换用不同规模后暴露不完整性。开发笔记还记录了轨迹复核:通过的运行额外检查不同输入条件、模型规模和输出残差,并修复额外检查发现的问题。原始轨迹路径保存在实验的[结构化结果](../../../benchmarks/harbor/results/tb21-truncation-recovery-repeat3-20261005.json),原始文件仍在被 Git 忽略的 `jobs/` 中。这里把该轨迹观察作为候选机制线索,不认定它是唯一因果解释,也不声称已确定两次失败的全部算法根因。