|
1 | 1 | # Forge on Aider polyglot |
2 | 2 |
|
3 | | -**Current standing (as of 2026-04-18, single-run, Mode A worker-only):** |
4 | | -**Python 34/34 (100%)** + **Rust 30/30 (100%)**. 161 of 225 exercises |
5 | | -remain. See Stage 2 / Stage 2b below for the full numbers and caveats. |
| 3 | +**Current standing (as of 2026-04-19, Mode A worker-only):** |
| 4 | +**Python 34/34 x 3 runs (100%, median $6.53/run)**, **Rust 30/30 |
| 5 | +(100%, single-run)**, **Go 5/5 smoke (100%)**. 156 of 225 exercises |
| 6 | +remain (full Go + JS + C++ + Java). See Stage 2 / Stage 2b / Open |
| 7 | +items below. |
6 | 8 |
|
7 | 9 | Forge's second cross-benchmark evaluation. After SWE-Bench |
8 | 10 | (`docs/SWE-BENCH.md`) pointed out that real-world agent-scale tasks |
@@ -249,16 +251,61 @@ To produce a headline "Forge scores X% on Aider polyglot" number: |
249 | 251 | always 0 (key-name mismatch in the harness) |
250 | 252 | - [x] Add the 4 remaining language runners (go / javascript / cpp / |
251 | 253 | java) with stage-time un-skip preprocessing |
252 | | -- [ ] Re-run Python x3 and report median + variance (single run |
253 | | - isn't publishable). Aggregator is ready in |
254 | | - `scripts/_polyglot_aggregate.py`. |
255 | | -- [ ] Re-run Rust x3 and report median + variance (same caveat) |
| 254 | +- [x] Re-run Python x3 and report median + variance. Three full |
| 255 | + runs with a live Bedrock key on 2026-04-19: |
| 256 | + **34/34 / 34/34 / 34/34 PASS**. Median cost **$6.53/run** |
| 257 | + (range $6.43-$7.46). Median mean-wall-per-exercise **85.8s** |
| 258 | + (range 81.8-95.9s). Zero regressions across runs. Aggregate |
| 259 | + at `.forge/eval/polyglot/python-aggregate-20260419T102859.json`. |
| 260 | + Python baseline is saturated under Mode A. |
| 261 | +- [ ] Re-run Rust x3 and report median + variance (Rust still |
| 262 | + single-run) |
256 | 263 | - [ ] Investigate `scale-generator` 32773s wall-clock anomaly |
257 | 264 | (likely measurement artifact; instrument LLM-vs-test wall |
258 | 265 | separately) |
259 | | -- [ ] Run the remaining 161 exercises once a valid Bedrock key is |
260 | | - available (S3 Task 3) |
261 | | -- [ ] Promote to `forge eval polyglot` (S3 Task 4-5) |
| 266 | +- [ ] Run the remaining 161 exercises (Go / JS / C++ / Java). |
| 267 | + Go 5-exercise smoke: **5/5 PASS**, 276s total, $0.93 total |
| 268 | + (`.forge/eval/polyglot/go-20260419T125821/`). Full 34-Go |
| 269 | + sweep is the next target; JS / C++ / Java are the most |
| 270 | + likely places to see real failures. |
| 271 | +- [x] Promote to `forge eval polyglot` (S3 Task 4-5) |
| 272 | + |
| 273 | +### Reasoning effort: why we did NOT wire `opencode --thinking`/`--variant` |
| 274 | + |
| 275 | +Tested empirically on 2026-04-19 (Sonnet 4.5 via Bedrock, same |
| 276 | +prompt, three configurations): |
| 277 | + |
| 278 | +| Config | input | output | reasoning tokens | cache write | cost | |
| 279 | +| --- | --- | --- | --- | --- | --- | |
| 280 | +| baseline | 2 | 704 | **0** | 11,101 | $0.052 | |
| 281 | +| `--variant high` | 9 | 1,531 | **0** | 22,248 | $0.106 | |
| 282 | +| `--variant max` | 9 | 2,968 | **0** | 22,248 | $0.128 | |
| 283 | + |
| 284 | +Findings: |
| 285 | + |
| 286 | +1. `opencode --thinking` is documented as **"show thinking blocks"** |
| 287 | + -- a display toggle. It does not change the request. Our probe |
| 288 | + confirmed: identical tokens/cost to baseline. |
| 289 | +2. `opencode --variant {high,max}` doubles context (~11k extra |
| 290 | + cache write, likely a different system preset) and grows output |
| 291 | + 2-4x. `tokens.reasoning` is **always 0** in the event stream on |
| 292 | + Bedrock Sonnet 4.5 and no `<thinking>` block is emitted. Either |
| 293 | + opencode's Bedrock stream parser folds reasoning into `output`, |
| 294 | + or Bedrock silently ignores the `reasoningConfig.budgetTokens` |
| 295 | + it sends. Empirically the cost roughly doubles with no visible |
| 296 | + quality telemetry. |
| 297 | +3. Baseline Python is **34/34 x 3** (100% three runs in a row). |
| 298 | + There are no failing Python exercises to measure uplift against, |
| 299 | + so `--variant` has no demonstrable quality justification at a |
| 300 | + 2-3x cost multiplier. |
| 301 | + |
| 302 | +Conclusion: a minimal `--variant` passthrough was added to |
| 303 | +`LocalRuntime` / `_run_opencode` / `forge eval polyglot` (opt-in, |
| 304 | +default off, zero behaviour change) so it can be A/B-tested in the |
| 305 | +future if a language emerges where baseline actually fails. The |
| 306 | +full runtime-layer TDD wiring (Docker / Routing / ClaudeCode) was |
| 307 | +**not** done: Python / Go baselines give it nothing to prove. |
| 308 | +Revisit once JS / C++ / Java produce real failures. |
262 | 309 |
|
263 | 310 | ## References |
264 | 311 |
|
|
0 commit comments