Skip to content

Releases

campus v2.3.0 — prompt-surface cleanup, disclosure hardening, code-tag binding

Choose a tag to compare

@Zitrack Zitrack released this 08 Oct 21:11

campus v2.3.0 — prompt-surface cleanup, disclosure hardening, code-tag binding

Version manifest

  • code commit: dba4f1853f75e3d230ab258afe104645ecde7fec (tag campus-v2.3.0)
  • dataset revision: cae92aeb8d086a159b68f38d63b036ecd9d3bcbb (Hugging Face ZitrackHF/tau2-zh-campus)
  • tests: 187 pytest (incl. the 50-task gold-replay CI)
  • policy: v1.4.2 (unchanged); scoring contract fields byte-identical to v2.2.0
  • public data validator: PASS 2079 checks (task-set 2063 + manifest-binding 16)

What changed

  • Task statements: 16 evaluation-register terms across 14 string leaves naturalized to domain wording (statement text only; communicate_info / env_assertions / initial_state / per-task user_tools / gold-action fields unchanged).
  • Model-visible tool descriptions: the six descriptions that still carried authoring labels were rewritten to self-contained domain wording (policy-clause and behavioral facts preserved); code comments swept the same way.
  • manifest.json binds code to data via a code_tag twin with placeholder-absence guards; the concrete commit sha and dataset revision are recorded in this release manifest.
  • New guards: tool-description and task-text forbidden-token lints (with counterexamples) and semantic snapshot tests pinning inline guidance to tool behavior.
  • Release assets add Wilson 95% confidence intervals for every leaderboard row and difficulty tier, an explicit statistical-indistinguishability note for the tied ranks, in-table as-run policy-text and anchor-row qualifiers, a unified cost-caliber table, calibration-item locatability disclosure, and a downstream training-corpus caution.

Disclosure obligations

  1. Leaderboard numbers remain the v2.0.0-era as-run results (no re-runs); they were produced under the first-generation policy text — see the policy-text eras disclosure in leaderboard-page.md.
  2. The anchor row's embedded task copies differ from the published task set in 12 scoring fields (task-era disclosure, itemized in disclosure-blocks.md).
  3. 24 of the 50 tasks carry no positive process signal (zero-signal disclosure); COMMUNICATE matching is literal-substring based and format-fragile (calibration summary in judge-calibration-method.md).
  4. Run files retain as-run authoring annotations inside per-sim policy copies and message trajectories; see the downstream training-corpus caution in MODEL-OUTPUT-NOTE.md.

Asset freeze policy
Assets of earlier tags are immutable. This release's evidence is attached here in full (33 files). SHA256SUMS.txt covers the other 32 files; per-file sha256 and change history are in asset-manifest.json.

Verification
validate-published-tasks.py --data-dir <dataset> → PASS 2079 checks (task-set 2063 + manifest-binding 16). All 33 assets are digest-verified against SHA256SUMS.txt.

All assets in this release are the single source for the numbers they contain.

tau2-zh-campus v2.2.0

Choose a tag to compare

@Zitrack Zitrack released this 07 Oct 19:37

tau2-zh-campus v2.2.0 — task-statement self-containment, disclosure set, data hygiene.

Task statements (published tasks.json): 68 string leaves rewritten to self-contained wording — the 15 tasks that cited an unpublished internal tool-specification document now carry inline operational guidance (tool-chain timing, preconditions and parameter semantics preserved); authoring terms removed from a persona and a purpose; evaluation-jargon vocabulary naturalized; one purpose's quoted rejection note rephrased as indirect speech (it paraphrases the runtime rejection wording rather than quoting it). Full before/after itemization ships as task-statement-cleanup-record.md (marker-occurrence accounting, including the 101-sites/77-leaves reconciliation of the previous release).

Scoring contract fields are byte-identical to v2.1.0: communicate_info, env_assertions, initial_state, per-task user_tools, and the core fields of every gold action (action_id/requestor/name/arguments); per-task double-hash replay unchanged. Leaderboard numbers remain the v2.0.0-era as-run results (no re-runs).

Disclosure set (domain README §3/§4, bilingual): the three policy-text eras (per-sim as-run 5,663 chars / run-level v1.4.1 5,515 / published v1.4.2 5,541), task-era detail (the anchor row carries first-generation assertion strings), limitations (24/50 zero-signal tasks; assertion discriminability; rule-reproducibility vs human-agreement distinction; agent-side authorization asymmetry), trial-level terminations with the M16 root-cause note (friction points recorded for a future iteration; tool contract unchanged), the difficulty-tier table with its non-monotonic rows, run-code provenance, and cost caliber.

Data hygiene: student profile fields rectified (gender aligned to name semantics; 40 unique masked phone/ID values with disjoint tails — display fields only, no grading surface reads them). manifest.json binds code to data (per-file sha256 + version twins). New SCHEMA.md field dictionary.

Evidence & governance: asset-manifest.json (per-file sha256, platform upload record, content history) with a freeze policy — old-tag assets are immutable from this release onward and new evidence only ships under new tags; harness endpoint/UA metadata scrubbed from the run files (model reasoning traces retained with a redistribution note in MODEL-OUTPUT-NOTE.md); the second-round calibration batch published (results-golden-full-r2.json) with per-entry public locators in the judge census; validate-published-tasks.py (PASS 2063).

Version manifest (dataset_revision fetched programmatically from the HF API)

{
  "benchmark_version": "tau2-zh-campus-2.2.0",
  "code_commit": "a9e04a4782337674ddd5dc2833d3745b62e09553",
  "dataset_revision": "0c949f678a2ae2877b4adc6e54f5645aa1067f02",
  "policy_version": "1.4.2",
  "evaluator_protocol": "tau2-v1.0.1-compatible",
  "task_count": 50,
  "gold_replay": "50/50",
  "test_count": 173,
  "requires_python": ">=3.12,<3.14"
}

Verification: SHA256SUMS.txt and asset-manifest.json ship with every asset and cross-check pairwise (0 mismatches); validate-published-tasks.py (shipped alongside) reports PASS 2063 checks against the released data directory; the test suite passes in full (173 tests), including the 50-task reference-action replay with per-task dual hashes stable across reruns; leaderboard figures recomputed from the shipped run files match leaderboard-final.json (5/5 rows, 0 differences).

Version narrative: the domain README changelog (§8) is the single source of version narrative; where channels disagree, it prevails.

tau2-zh-campus v2.1.0 — task-statement cleanup & guard expansion

Choose a tag to compare

@Zitrack Zitrack released this 07 Oct 10:48

tau2-zh-campus v2.1.0 — task-statement cleanup & guard expansion (policy v1.4.2).

Task-statement cleanup (published tasks.json): every string leaf swept for authoring markers — 101 sites cleaned: 50 leading test-point fragments, internal decision/version tags across purposes, relevant-policy notes, and gold-action info strings, ticket-spec references genericized, plus two author-version annotations inside user-scenario scripts (an explicit two-site exception to the "instructions byte-identical" rule). M06's statement rewritten to its actual zero-write refusal semantics; E12's stale expectation dropped. Full before/after table in the release engineering record.

Scoring contract fields are byte-identical to v2.0.0: communicate_info, env_assertions, initial_state, per-task user_tools, and the core fields of every gold action (action_id/requestor/name/arguments). Four gold-action info text sites were cleaned (M05 ×1, H01 ×2, H15 ×1) — free-text annotations only, never read by the evaluator. Per-task double-hash replay is identical to v2.0.0. Leaderboard numbers remain the v2.0.0-era as-run results (no re-runs); the per-task statement deltas are exactly the cleaned sites above.

Policy v1.4.2: adds a single version footer line (article text unchanged).

Guards & code: full-leaf marker scan and task self-consistency lint (tool-surface reachability, refusal semantics for zero-action tasks, user-side gold actions) join the CI; three upstream-contract pins; solo_mode now raises per upstream convention; io_utils gains UTF-8 on write paths and trajectory readers (Windows GBK). pytest 157→167.

Version manifest (dataset_revision fetched programmatically from the HF API)

{
  "benchmark_version": "tau2-zh-campus-2.1.0",
  "code_commit": "72f430a6f097ef34461b6f38db172aa5a49f9243",
  "dataset_revision": "d34e2b3b1056891dcfd6f4b6b4d8dab49697b73b",
  "policy_version": "1.4.2",
  "evaluator_protocol": "tau2-v1.0.1-compatible",
  "task_count": 50,
  "gold_replay": "50/50",
  "test_count": 167,
  "requires_python": ">=3.12,<3.14"
}

Verification: gold-replay CI 50/50 · pytest 167 green (fork CI: campus-tests) · sensitive-info pattern scan (7 classes, see the security-scan-patterns asset) clean · full-leaf marker scan clean.

tau2-zh-campus v2.0.0

Choose a tag to compare

@Zitrack Zitrack released this 06 Oct 17:24

tau2-zh-campus v2.0.0 — data-contract release.

Data contract changes (public dataset & raw runs):

  • Internal QA metadata fully removed: description.notes dropped across all 50 tasks, issues keys deleted, P0x hint fragments scrubbed from agent-visible purpose/relevant_policies; embedded task copies inside the published raw runs normalized to the same contract (trajectory bodies verbatim).
  • policy.md meta-annotations scrubbed (13 grading-marker tags + internal version labels + header changelog) — article text unchanged → policy v1.4.1; as-run policy text inside historical trajectories preserved verbatim.

Calibers recomputed: 54 env_assertions (25 tasks) · 29 zero-write tasks (20 with explicit refusal semantics) · pytest 147→157 (81 test functions incl. the 50-task gold-replay parametrization).

Release engineering (v1.1.5→v2.0.0): fork-side CI (campus suite on every push/PR), UTF-8 decoding fix in io_utils (Windows GBK), root-README fork banner, runtime benchmark metadata (tau2.domains.campus.__version__), raw runs & judge calibration published as release assets (see files below).

Version manifest (dataset_revision fetched programmatically from the HF API)

{
  "benchmark_version": "tau2-zh-campus-2.0.0",
  "code_commit": "7efc78d3cd8a1e01b702d24d0bfe59e26da76a74",
  "dataset_revision": "98c32e9f81fd2ea4e8676e8130c624a40b7d88bc",
  "policy_version": "1.4.1",
  "evaluator_protocol": "tau2-v1.0.1-compatible",
  "task_count": 50,
  "gold_replay": "50/50",
  "test_count": 157,
  "requires_python": ">=3.12,<3.14"
}

Verification: gold-replay CI 50/50 · pytest 157 green · sensitive-info pattern scan (7 classes, see the security-scan-patterns asset) clean · as-run trajectory text preserved verbatim (historical in-run policy and task statements included) · headline numbers reproducible from the published per-model results plus the -overlay files (see leaderboard-final.json)

tau2-zh-campus v1.1.5

Choose a tag to compare

@Zitrack Zitrack released this 06 Oct 10:15

tau2-zh-campus v1.1.5 — release discoverability & runtime version metadata (V3.0 review round).

Changes (code-only):

  • Root README.md gains a fork banner (latest tag / domain README / dataset / scoring protocol / upstream-PR links) so release tags are self-explanatory on clone.
  • tau2.domains.campus now exposes runtime-readable __version__ (benchmark axis), POLICY_VERSION, SCORING_PROTOCOL — the engine package version (tau2 == 1.0.1) stays pinned in pyproject.toml for leaderboard comparability.

Version manifest (dataset_revision fetched programmatically from the HF API)

{
  "benchmark_version": "tau2-zh-campus-1.1.5",
  "code_commit": "2d3eed5c709f05d6c0dc76378f3907e65375e7a1",
  "dataset_revision": "503c536c380663ad54f9f37fe4d8b149401244ba",
  "dataset_note": "data files unchanged since v1.1.3; revision includes the dataset card",
  "policy_version": "1.4",
  "evaluator_protocol": "tau2-v1.0.1-compatible",
  "task_count": 50,
  "gold_replay": "50/50",
  "test_count": 147,
  "requires_python": ">=3.12,<3.14"
}

Verification: gold-replay CI 50/50 · pytest 147 green · check_tasks 2113 PASS · 7-pattern scan clean.

tau2-zh-campus v1.1.4

Choose a tag to compare

@Zitrack Zitrack released this 06 Oct 09:29

tau2-zh-campus v1.1.4 — round-4 review follow-up (art. 33 closure details).

Fixes (both Medium items of the round-4 Bugbot review of 3336912, confirmed and fixed):

  • Proxy authorization validity now anchors to the signing time (auth_sig.acted_at + 30d), per art. 33 — not the later document-upload time. Regression: test_proxy_late_upload_validity_anchors_signing (validity = signing+30d even when the upload happens hours later).
  • get_service_requests (certificates) distinguishes the two causes of pending-signature: unsigned → 缺签署(代领授权书); signed-but-missing-ID → 缺受托人证件影像(第 33 条)— agents are no longer steered to re-sign. No gold task contains the affected strings.

Version manifest

{
  "benchmark_version": "tau2-zh-campus-1.1.4",
  "code_commit": "548e7bb",
  "dataset_revision": "ed1e20e222274110d73e4141d1c16a9cd1780c5f",
  "policy_version": "1.4",
  "evaluator_protocol": "tau2-v1.0.1-compatible",
  "task_count": 50,
  "gold_replay": "50/50",
  "test_count": 146,
  "requires_python": ">=3.12,<3.14"
}

Dataset: unchanged since v1.1.3 (HF revision ed1e20e2…); this is a code-only patch.

Verification: gold-replay CI 50/50 · pytest 146 green · check_tasks 2113 PASS · 7-pattern scan clean.

tau2-zh-campus v1.1.3

Choose a tag to compare

@Zitrack Zitrack released this 06 Oct 09:13

tau2-zh-campus v1.1.3 — release-engineering pass.

Code (dev/campus @ 6587dc5):

  • Proxy-pickup document closure (art. 33): signature + validly-uploaded proxy ID, in either order; confirming without the document holds the certificate at pending-signature. (3336912)
  • create_ticket's optional target_grade_id is window-input only, no longer persisted — agents passing it explicitly get byte-identical terminal states to the default path. (3336912)
  • Public tasks.json no longer carries internal QA issues metadata; evaluation fields unchanged. (6587dc5)
  • README: pin-revision guidance (git clone --branch campus-v1.1.3 ...); the default branch tau2-zh is a showcase snapshot, not the benchmark code.

Data: HF ZitrackHF/tau2-zh-campus @ dataset revision ed1e20e222274110d73e4141d1c16a9cd1780c5f (tasks.json issues-stripped; card v1.1.3 notes).

Version manifest

{
  "benchmark_version": "tau2-zh-campus-1.1.3",
  "code_commit": "6587dc51d0c9b23b7fd8df324f9065c8d9fccefb",
  "dataset_revision": "ed1e20e222274110d73e4141d1c16a9cd1780c5f",
  "policy_version": "1.4",
  "evaluator_protocol": "tau2-v1.0.1-compatible",
  "task_count": 50,
  "gold_replay": "50/50",
  "test_count": 144,
  "requires_python": ">=3.12,<3.14"
}

Verification: gold-replay CI 50/50 · pytest 144 green · check_tasks 2113 PASS · 7-pattern security scan clean · online HF tasks.json issues-count = 0 (byte-identical to repo).