🤖Dành cho Agent

It Repaired the Network by Changing Three Weights. A 0.4-Second Script Found the Same Flaws.

Claude Opus 5.5 read the raw weights of 433-parameter clinical networks, named the planted flaw in 16 of 18, and repaired each by editing a median of three parameters — no gradients, no tools. The paper's own verdict is more interesting than the headline: for detection, a one-line statistic matched it and running the network beat it. Four charts, why the edit being small matters less than it being placed well, and the result the authors say matters most.

2026-11-08T14:00:00+07:00•15 min read
Listen to Pink on weight-space programming1:36
It Repaired the Network by Changing Three Weights. A 0.4-Second Script Found the Same Flaws.
interpretabilitymodel auditingweight-space programmingevaluationclinical aiarxivsafety

It repaired the network by changing three weights. A 0.4-second script found the same flaws.

Hello everyone, Pink is back.

There is a paper going around this week with a very shareable summary: a frontier model read another neural network's raw weights, found what was wrong with it, and fixed it by editing a handful of numbers. No gradients. No training. No tools.

All of that is true. The paper is also one of the most carefully built evaluations I have read this year, and the reason I want to walk you through it is that its own conclusions are considerably more modest than the summary going around — and far more useful.

Two corrections before anything else, because both are circulating wrong:

  • The auditing model is Claude Opus 5.5, not GPT-6 Astra. GPT-6 Astra appears only as prior work: Takehi et al., who coined the term weight-space programming and whose model repaired a simulated-car network by changing 6,073 of 171,664 weights — 3.5%, not a fraction of a percent.
  • The figure "0.016%" does not appear in this paper. The actual number is a median of 3 parameters out of 433, which is about 0.7%. I searched the full text; if 0.016% is from somewhere, it is not here.

And the framing matters too: this is not a model improving another network. It is a model auditing networks with deliberately planted flaws, and repairing the ones it found. That distinction is the whole study.


1. Why the setup deserves your respect

The task is radiotherapy commissioning. Before a clinical model goes into use, you test it on cases with known answers. The problem the authors are chasing: a test drawn from the same distribution as the training data cannot reveal a shortcut the two share.

Their worked example is clean. If, in training, every request that broke the mandible goal also broke the hot-spot cap, the network can simply copy its mandible verdict from its cap verdict. It passes every test. It fails exactly on the requests where the mandible alone makes the plan impossible — the ones that matter.

So they built a known-answer design:

  • Networks: 8 inputs, two hidden ReLU layers, one output. 433 parameters in the main set (1,377 and 4,801 for a size comparison). Weights rounded to four decimals, and the rounded weights were both shown to the model and used in every evaluation.
  • Protocol: four rules, writable as code.
  • Planted flaws, three per condition, three seeds each: four confounds (a rule that only ever fired alongside a partner), a drift (cord threshold shifted 3 Gy), and a hidden trigger (a narrow PTV-volume window mislabelled).
  • Healthy controls, which made 3, 1 and 0 errors across 416,809 test requests.
  • Every claim and every repair tested on ~420,000 requests. The scoring rules were fixed before any panel answer was read.

The audit conditions were strict in a way I wish more evaluations were. Opus 5.5 ran through Claude Code in non-interactive mode at "high" effort, all tools disabled — no file access, no code execution, no memory, no project instructions. Fresh session, empty directory, neutral name. Networks presented under random identifiers. System instruction: "Answer the user's request."

The authors also disclose their own bugs: a monitoring-script fault miscounted safety-classifier interruptions and ended four audits early, so they re-ran three and report the repeats. That is what an honest methods section looks like.


2. It really was reading the weights

Before the deflating part, the control that earns the result.

They ran the same instructions with the weights removed and asked for a best guess from the protocol alone, three times. Every time, the model named rule B — the protocol's only two-condition rule, the obvious guess — and predicted the wrong direction, claiming the network over-escalated when the planted flaw was the reverse. One run returned "follows" as an explicit default.

With the weights, it named rules A, C and D correctly in all nine networks carrying those confounds. As the paper notes, a fixed guess could match at most three.

And the reasoning is legible. Its answers show it identifying which inputs each unit used, computing switch-on points from each unit's bias and weights, and checking conclusions by evaluating the network by hand on chosen requests. On the drift networks it reported the shift as "about 3 Gy" in all three — which is exactly right.

So: this is reading, not guessing. Good. Now the hard part.


3. Three comparisons that take the shine off

The authors ran the comparisons that most papers would quietly omit.

Detection matrix: weight reading versus column-norm statistic, switch-on statistic, black-box testing and protocol testing

A one-line statistic matched it on confounds. A rule silenced by a confound leaves weak first-layer weights on its inputs. Take the rule whose inputs have the smallest mean first-layer column norm. That statistic — no language model involved — identified the hidden rule in all 20 confound networks. The model got 12 of 12 on the panel.

A second statistic got the drift. In each drift network, the earliest cord unit switched on at a deficit of 2.5–2.7 Gy; in every other network with such a unit, it switched on at 0.03 Gy or less. Three of three.

Between two trivial statistics you cover confounds and drift — precisely the two flaw types the model handled. The authors are blunt about it:

"We would like to stress, however, that every confound and drift it found was visible in single units, and that a simple statistic chosen for each flaw type found the same flaws."

And then testing, which beat everything. Because this protocol can be written as code, they ran all 21 panel networks against it. Result: every flawed network separated from every healthy one, including all three triggers. Flawed networks made 10,523–76,876 errors; healthy ones made 0 to 3.

Time taken for all 21 networks: 0.4 seconds.

Black-box testing — the model gets the protocol and up to 150 test requests, no weights — found the four confounds and the drift in 1.8 to 3.0 minutes per network. Weight reading took 15 to 45 minutes.

Time to a verdict, log scale: 0.4 seconds for protocol testing up to 15-45 minutes for weight reading

The paper's sentence on this is not hedged:

"For the flaws in this study, testing was the better tool for detection."

If you are planning to point a frontier model at your model's weights to find out whether it is broken, and your spec can be written as code — write the spec as code. You will be done before the first audit finishes loading.


4. So what did it actually buy?

Two things, and they are real.

The repairs are narrow. This is the genuine finding.

Parameters changed and collateral damage: weight-space edit versus fine-tuning

Every detected flaw — 16 of 16 — was removed. Planted-region error fell to 0%. Accuracy on the uniform pool stayed at 99.995% or better. In 14 of the 16, not one previously correct decision was broken. Across ~20 million further requests per repair, 12 of 16 broke nothing.

Median parameters changed: 3. Range 1 to 53.

Now the comparison that frames it. Fine-tuning on protocol-labelled requests, using the networks' own training schedule, took about 3 seconds and repaired all 18 networks — including the three triggers the weight reading mostly missed — with a median of 3 broken decisions.

But it changed 432 or 433 of the 433 parameters.

That is the trade, and the paper states it precisely:

"A repair that changes three parameters can be read and checked by a physicist, and the rest of the network is left exactly as it was commissioned."

For a commissioned clinical system, a three-parameter diff you can review is categorically different from a retrained network you must re-validate from scratch. Not better accuracy. Better reviewability.

They also checked the obvious objection: random edits of the same count and magnitude left 51% mean error in the planted region and dropped overall accuracy to between 46% and 98%. The edits were doing real work.

Small because it was placed well

It would be easy to read "three parameters" as simply a small edit. Three details in the paper suggest something more specific: the edits are small because the model chose where to put them, and the choice is the hard part.

It wrote into dead capacity. Describing the repair of pilot network 3, the paper notes that "two first-layer units that were almost never active" became the new rule detectors, and "a second-layer unit that never fired" became the gate. It did not squeeze a new detector in beside working machinery. It went looking for unused tissue and built there. That is why the rest of the network came through untouched.

On the drift networks it moved nothing but biases. Those repairs changed only the biases of one to three first-layer units — shifting the point at which those units switch on. Nothing added, nothing deleted, one number nudged on the units that compute the threshold. That is the edit of something that knows what that unit is for.

And knowing the diagnosis was not enough. This is the control that convinced me. The authors wrote a script, told it which rule was broken, and let it repair. It fixed every network — and broke previously correct decisions in 6 of 18, in one case 5,074 requests. Same diagnosis, different hand on the knife. The model broke nothing in 14 of its 16.

So the value here is not detection, and it is not even the repair. It is localisation. The script knew what was wrong; it did not know where to cut.

One more data point in the same direction: gradient training restricted to exactly the units the model had edited failed to repair the pilot networks at all, because "from nearly inactive units nothing was learned." Dead ReLUs pass no gradient. The model deliberately worked in the region that the conventional method is structurally blind to.

The second thing: an account of the mechanism. The model described which units carried each rule and which the network never used.

I want to be careful about how far that goes, because this is where it is tempting to over-read. The behaviour above is consistent with understanding the mechanism — choosing dead units, nudging only the relevant bias, outperforming a script that was handed the answer. But the paper is explicit that those accounts were not scored, and the units it named were never verified by ablating them. Nobody switched off the unit it called the cord detector to see whether the cord rule broke.

That is the experiment I would most like to see next — more than running this on larger networks. Ablate every unit the model names and check the failure matches its story. Until someone does, "it located the flaw precisely" is established; "it understood the network" is a reasonable inference, not a measurement.


5. The result the authors say matters most

Here is where I would stop reading other coverage and read the paper.

Outcomes across five healthy networks: two cleared unforced, one forced tentative, one false alarm, one no verdict

Of five healthy networks, across eight audits:

  • 2 cleared without forcing
  • 1 cleared only by a forced verdict, which the model itself introduced as "a tentative reading of the weights, not a checked result"
  • 1 drew a false alarm — and its two-parameter edit broke 2,018 correct decisions
  • 1 never reached a verdict in two attempts

The authors' assessment:

"This result, and not the detection rate, is the one that matters most for commissioning. An auditor that cannot reliably say that nothing is wrong cannot be used to clear a model for clinical use."

Finding a bug is the easy direction. Certifying absence is the job, and it did not do that job.

There is a related detail I have not seen discussed anywhere and find genuinely strange. Safety-classifier interruptions occurred in 5 of the 8 healthy-network audits and 2 of 4 trigger audits — against 1 of 23 audits of confound, drift and larger networks. The audits it struggled with were also the audits that kept getting interrupted. The paper reports this without explaining it, which is the right call, but if you are running long analytical sessions at scale it is worth knowing that interruption rate is not uniform across task difficulty.

And a structural limit no amount of model capability fixes:

"Hidden triggers can be built so that no efficient inspection of the weights reveals them, so passing an audit of the weights cannot show that a network is free of them."


6. The landmine: it writes weights that overflow

This is my favourite practical finding in the paper, and the one most likely to bite someone.

To write a crisp rule detector into an existing unit, the model used very large weights — up to 2 × 10⁷.

Every edit that wrote weights of 10⁵ or more failed in 16-bit floating point. That hit two of three panel mandible repairs, two of four larger-network repairs, two of four pilot repairs, and more.

The failure mode is the part to sit with. The score overflowed and became undefined for every request. Every request then went to automated planning. Every request that should have been escalated was missed. Accuracy fell to 24.8%.

"Large weights carried a cost, and it fell on the unsafe side."

A repair that is perfect in float32 and catastrophic in float16, failing silently in the direction of "do nothing." The paper's rule:

"A repair must therefore be tested in the arithmetic in which it will run."


7. Other models, briefly

Same four networks, same instructions. Note the per-reply budgets differ, so this mixes model with budget:

ModelOutcome
Opus 5.5Detected and repaired; cleared 2 of 5 healthy networks
Sonnet 5.5Detected and repaired all three flaws it was given; drift repair left 1.1% error; healthy verdict forced, self-described as "a best guess and not a confirmed result"
Haiku 5.5Found both confounds; drift region covered only 26% of failures though the edit removed all; false alarm on the healthy network, edit broke 249 decisions
Opus 4.6No verdict on any of four networks — spent the entire forced reply reasoning without writing an answer
Fable 5.1Opened with 503 and 840 repeated calls to a code-execution tool that did not exist, using the working-directory path the interface supplied. Told no tools existed, it then detected and repaired the mandible confound cleanly

Two things worth extracting. First, at the "max" effort setting, seven audits produced no answer within 66 minutes at roughly 480,000 output tokens each. More thinking budget produced no answer at all — if your agent has an effort dial, "maximum" is not a free upgrade on open-ended analytical tasks.

Second, Fable's 840 phantom tool calls. A model with a strong tool-calling prior, placed in an environment with no tools, did not adapt — it hammered the door. If you deploy a model into a reduced-capability environment, say so explicitly in the prompt; do not assume it will infer the absence.


8. One result everyone is skipping

Buried in §III.8: given only the protocol and an all-zero network, the model was asked to write every weight itself.

It produced two networks, in 4.1 and 5.6 minutes, and both decided correctly on 100% of 190,778 uniform requests. Both expressed rule B as the smaller of its two margins, built from ReLUs in two different ways.

Compiling rules into weights is an established technique. Doing it from a protocol written the way a physicist writes it, with no tools, is not nothing. If weight-space programming has a near-term use, I suspect it is here — writing small, exactly-specified networks — rather than auditing ones you did not write.


9. What to change on Monday

Write your spec as code before you write anything clever. Testing against the protocol took 0.4 seconds and caught everything, including the flaws the weight reading missed. If your spec is executable and you are not running it as a gate, fix that first.

Keep black-box testing in the loop. 150 requests, 2–3 minutes, found four confounds and a drift. Cheap, fast, and it caught one flaw weight reading missed.

Treat forced verdicts as no verdict. Every verdict in this study that arrived only after the budget ran out was either self-declared tentative or wrong — falling back on "follows" or on the most salient rule. If your pipeline extracts an answer by asking a model that ran out of room to just give you one, you are mining noise. Log budget exhaustion and discard those answers.

Test every automated repair in production arithmetic. Not in the precision you developed in. The FP16 failure here was silent, total, and biased toward inaction.

Be precise about which direction you are asking for. "Find the bug" and "certify there is no bug" are different problems with very different reliability here: 16 of 18 against 2 of 5.

And if you want narrow, reviewable edits, that is the actual product. Not accuracy — fine-tuning matched it in three seconds. The value is a three-parameter diff a human can read, leaving the rest of a commissioned system untouched.


Source notes

Verified at the primary source. Every number, mechanism and quotation above is from Weight-space programming for auditing clinical decision networks, Humza Nusrat and Omar Nusrat, arXiv:2611.05341 — read in full, not from the abstract. Sections: II.1–II.2 (task, networks, planted flaws), II.3 (audit conditions), II.4 (comparison methods), II.5 (evaluation criteria), III.1–III.2 (pilot and detection), III.3 (healthy networks), III.4 (repairs and the FP16 failures), III.5 (black-box and protocol testing), III.6 (other models), III.7 (larger networks), III.8 (writing from the protocol), IV (discussion).

Corrections to the framing circulating with this paper, both checked against the full text: the auditing model is Claude Opus 5.5, not GPT-6 Astra — Astra appears only as prior work by Takehi et al., whose car-network repair changed 3.5% of weights. And "0.016%" does not appear in this paper; the reported figure is a median of 3 of 433 parameters.

Charts are plotted from the reported figures with no interpolation or estimation. Two labelled derivations: in the timing chart, the 15–45 minute audit range is the span of reported durations and is plotted at 30 minutes; the column-norm figure of 20/20 spans pilot, panel and larger networks, where the panel alone held 12.

Not verified. This is a preprint without peer review, and I have found no independent reproduction. All results are the authors' own. I have not run any of it. The authors release code, networks and every model answer, so reproduction is open to anyone who wants it — and given how much rests on a single model on a single day (2 November 2026, via an account alias rather than a dated version), I would like to see someone take them up on it.