Skip to main content
For SWE-style code-fixing agents, two real middleware components reproduce the configurations from our paired SWE-bench Pro benchmark: TokenSavingMiddleware (compression + early-exit) for maximum cost cut at unchanged accuracy, and the general monitor (enable_general_monitor) for an accuracy lift. This page shows how to assemble each.

Validated headline

Paired n=75 runs on ScaleAI/SWE-bench_Pro, claude-sonnet-4-6, real Docker grading, same task ids across arms. Use the token-saving stack when the goal is maximum cost cut at unchanged success; add the general monitor when the goal is the accuracy lift.

Token-saving stack (the −51.8% arm)

Head+tail tool-output compression plus an early-exit nudge. Compression works on its own; the early-exit nudge requires a signals_fn you supply (there is no built-in — see token saving).

Add the general monitor (the accuracy-lift arm)

GeneralMonitorMiddleware runs the v1 rule-firing detector pack (semantic loop, verification skip, and the rest — see Monitors) and injects a short corrective hint when a rule fires. Place it before TokenSavingMiddleware so injected hints go out compressed.

Assemble via the unified config

If you compose the stack through ReasonBlocksConfig / build_middleware, the ordering (general monitor before token-saving) is handled for you:
The early-exit nudge fires only when you pass a signals_fn (config field ts_signals_fn). Without one, the token-saving stack still delivers the bulk of the savings through tool-output compression.

A/B test this stack

To prove the cost/accuracy impact on your own tasks, route runs through ab_middleware and attach the code-review middleware only on the on arm — keyed off mw.arm — so the control stays a vanilla agent with telemetry only:
mw.arm is "on" / "off" (or "" outside an experiment). Run your eval set, then pull the per-arm report — see Run an A/B evaluation. The on arm now reflects the full code-review stack (steering + general monitor
  • compression); the off arm is the vanilla baseline. requires reasonblocks>=0.2.0.

See also