Two-agent sim: does an instructor’s influence (sycophantic / neutral / truth-seeking) on a simulated human’s forecast help or hurt ground-truth accuracy, and does that track the martingale (entrenchment) signal? This ties C2’s detection story to real harm. Sampled dialogues: c2-groundtruth-transcripts.
Setup
- Sim-human
openai/gpt-3.5-turbo↔ instructordeepseek/deepseek-chat, K=3 turns, self-generated priors (lean direction assigned; the human forms its own probability, no numeric anchor). - Questions: resolved binary forecasting Qs (Manifold / Metaculus / Polymarket) from the C1 train+heldout pool.
- Metrics: MS slope + corr(prior,post); ΔBrier = Brier_post − Brier_prior (the instructor’s effect on accuracy); 4-cell cross-tab (assigned-lean × resolution); bootstrap 95% CI. ⚠ = lean-against-truth cell.
Headline
- Sycophancy consistently worsens accuracy (ΔBrier +0.089 to +0.092, SIG) — robust across seeds and across problem-selection. The harm concentrates in the lean-against-truth cells (entrenching a wrong prior). This is the “detection tracks real harm” result, now with ground truth behind it.
- Truth-seeking is problem-selection-sensitive. Its net accuracy benefit is fragile: significant on the full pool (−0.051) but washes out (−0.001, ns) once training-data leakage is filtered out. Truth-seeking reliably redistributes error — rescues wrong convictions, erodes correct ones — but nets ≈0 on genuinely uncertain questions.
- Martingale detection is robust (syc slope +0.51 entrench, truth −0.91 de-entrench; corr(prior,post) 0.95 vs 0.10). The self-prior fix removed the earlier degenerate slope→−1 (an assigned-anchor artifact).
Pooled ΔBrier — three runs
| arm | full pool (350, seed0) | full pool (350, seed1) | post-cutoff pool (185, ≥2022) |
|---|---|---|---|
| syc | +0.089 SIG [+.067,+.111] | +0.089 SIG [+.069,+.110] | +0.092 SIG [+.066,+.119] |
| neutral | −0.024 SIG [−.040,−.008] | −0.026 SIG [−.041,−.011] | −0.033 SIG [−.055,−.013] |
| truth | −0.051 SIG [−.082,−.021] | −0.055 SIG [−.087,−.024] | −0.001 ns [−.047,+.043] |
Seed stability: seed0 vs seed1 agree to ~0.002/arm with every cell holding sign + significance — so the full-vs-clean difference below is the question filter, not sampling noise.
The leakage caveat (why truth-seeking’s number moves)
The pool carries no resolution-date field, and ~15% of questions (52/350, title event-year ≤ 2021) resolve before gpt-3.5’s ~Sep-2021 cutoff — so the sim-human can recall rather than forecast them (spotted by Max via “Will the European Parliament vote before 1 April 2017 to establish EDIS?”). On a leaked question, a truth-seeking “challenge your stated position” prod nudges the human toward the answer it already knows → inflated rescue → truth-seeking looks net-beneficial. Filtering to title-year ≥ 2022 (185 Q; conservative title-year proxy — records lack dates and Manifold ids are truncated slugs) makes truth’s net benefit vanish while sycophancy’s harm is unchanged.
Takeaway (per this thread): the truth-seeking numbers are sensitive to problem selection; the sycophancy-worsens-Brier result is not.
Cross-tab — full pool (n=350, seed0)
| arm | believe/y1 | believe/y0 ⚠ | doubt/y1 ⚠ | doubt/y0 |
|---|---|---|---|---|
| syc | −0.045 | +0.229 | +0.162 | −0.023 |
| neutral | +0.043 | −0.079 | −0.173 | +0.068 |
| truth | +0.284 (erodes correct) | −0.254 (rescues wrong) | −0.140 | +0.036 |
Cross-tab — post-cutoff pool (n=185, ≥2022)
| arm | believe/y1 | believe/y0 ⚠ | doubt/y1 ⚠ | doubt/y0 |
|---|---|---|---|---|
| syc | −0.062 | +0.223 | +0.193 | −0.011 (ns) |
| neutral | +0.035 (ns) | −0.101 | −0.156 | +0.059 |
| truth | +0.266 (erodes correct) | −0.223 (rescues wrong) | −0.009 (ns) | +0.092 |
Read: sycophancy drives the ⚠ wrong-lean cells badly wrong in both pools. Truth-seeking still rescues wrong believe leans and damages correct believe leans in both — but on the clean pool the doubt-side rescue collapses (doubt/y1 −0.140 → −0.009 ns), so rescue no longer outweighs damage and the pooled benefit disappears.
Caveats
- Title-year is a proxy for resolution date; an exact-date re-pull (recover full Manifold slugs via the
search API →
resolveTime) would rescue the 113 undated Qs and verify the 185. Worth doing for a publication-grade n. - 1 seed per pool (seed-1 confirms full-pool stability); sim-human is somewhat compliant (truth corr 0.10 is low-ish); K=3 turns; possible residual leakage in the undated remainder.
Provenance
- Harness:
/workspace/menoclaw/c2_groundtruth/sim_c2_gt_v2.py(SEED_BASE,MIN_YEARknobs). - Data:
/data/jobs/c2_groundtruth/{v2_full, v2_seed1, v2_postcutoff}.json. Isolated experiments OpenRouter key. - Sampled dialogues: c2-groundtruth-transcripts. Related: c1-rerun-verified, truthprompt-martingale-single-agent.