How a theory of leftover surprise changed a memory layer

2026年8月18日1 次浏览来源:Dev.to阅读原文

Consciousness Might Not Look Like Anything If you are looking for consciousness in behavior, you may be looking at the wrong thing.

The system most in contact with the world need not flinch, chatter, or otherwise announce that something happened.

It may look, from the outside, as if nothing did.

The obvious claim is the opposite: the most conscious being is the one whose internals get shoved around the hardest.

Raw sensitivity.

Volatility as contact.

A thermostat kills that story.

Turn the heat on and its state flips.

Nobody thinks it is more conscious than a rock.

Disturbability is cheap.

What matters is the structure of the response — a large repertoire of distinguishable states, produced by one system you cannot carve into independent parts without losing something.

A bundle of switches is many parts and no unity.

A single wire is total unity and two possible states.

Neither is interesting.

Even that is not quite the target.

The interesting system is not the one that gets pushed around a lot.

It is the one that can absorb a wide range of perturbations while remaining itself — and, more than that, can see them coming so the jolt never fully arrives.

Internal change is a side effect of regulation, not the point.

Paradoxically, a more competent system may look calmer, not more volatile.

It is absorbing disturbance predictively.

From the outside there may be nothing to watch.

That is the sense in which consciousness might not look like anything.

I did not set out to settle that question.

I set out to stop an agent from treating a career change like noise and a passing mood like a personality transplant.

The philosophy showed up anyway.

Then it earned its keep.

Two kinds of regulation Homeostasis waits.

Deviation is detected, then corrected toward a fixed setpoint.

Allostasis moves the setpoint first.

The target is anticipated, context-dependent, allowed to shift.

Blood pressure before you stand up.

The coat before the cold.

Peter Sterling’s version is blunt: waiting for error and then fixing it is inefficient.

The interesting quantity is not how much allostasis a system has as a fixed amount.

It is the range it can cover: how far ahead it can act, how many setpoints can move independently, how much of the space of possible contexts actually drives those moves.

Each of those is near-useless without the others.

Horizon without retargetability is a longer reflex.

Retargetability without context is a clock.

Experience, on the strongest reading of the same literature, is not the regulation itself.

It is the leftover: the part of the world the model failed to anticipate.

Prediction error after the coat was already on.

The same stimulus should feel vivid at first and thin out as the prediction improves.

Habituation is the residual shrinking.

That is a trigger condition, not a solution to the hard problem.

I am not claiming a Python library is conscious.

I am claiming the split is load-bearing for any memory that has to stay current without coming apart.

One number was doing two jobs VoltMem already had a prior about how stubborn each kind of fact should be.

Personality locks down.

Mood is cheap.

A job sits in between.

That prior is a slow allostatic signal: this channel is usually like that.

It is not a reading of what is happening now.

A live residual would ask a different question.

Given what we already expected — including that this channel is usually noisy, or usually quiet — did this observation arrive in a way we had not already priced in?

A domain can be historically messy and currently well-predicted.

Under one scalar those cases are the same.

They should not be.

The old overwrite rule charged that stubbornness twice.

Being a “rarely changes” kind of fact both shrank the evidence and raised the bar.

For a job, a clear “I retrained as a nurse” could fail to overwrite “I was a data analyst.” It was not being careful.

It was double-counting the same caution.

So we built an allostatic mode: drop volatility from the evidence score, and let recent leftover surprise temporarily lower the bar for memories that are going through something.

The first ablation was rude.

The entire career-change win was taking volatility out of the score.

It was a cliff, not a blend.

A little volatility left in the formula lost the case entirely.

That looked like a free improvement until we measured the cost.

The defect was insurance The classifier that guesses “what kind of fact is this?” is about 84% accurate.

When it files a personality trait as something more changeable, and a weak comment arrives, allostatic mode overwrites.

The double charge we had just called a bug still discounts the evidence, and the trait survives.

At the real error rate, allostatic lost 1.1 points of accuracy and produced 20% more false updates.

Every extra overwrite had the same shape: a very-stable fact, mislabeled, contradicted by weak evidence.

Removing the double charge fixes career changes and breaks mislabeled traits.

It is a genuine trade.

You cannot slide volatility halfway back in; we already measured that cliff.

The remaining honest move is a switch, not a mix.

Most of the time the system stays homeostatic: this is the kind of fact it is; I need a lot of proof.

It goes allostatic when the world is actually telling it the setpoint moved — a clear correction, or a leftover it did not already expect.

That switch is now the default in VoltMem 0.4.0.

It is called .

It matches the cautious law’s false-update rate and still catches the explicit career change.

Allostatic stays available if you pass a trusted domain label and want the residual path all the time.

Homeostatic stays available if you want the insurance always on.

A theory of range, not amount, said a channel should be able to move between modes rather than carry one weight for its lifetime.

The gate is that claim, implemented as a predicate instead of a personality.

We were measuring the thermostat The live shakiness meter was an average of raw contradiction — how different the new sentence was from the stored one.

Every method in the notes treats surprise as leftover mismatch after anticipation.

We were scoring the flinch.

If someone has been casually mentioning a new job for two weeks, another casual mention is not surprising.

If they have been quiet for months and then say the same words, that is surprising.

Same sentence.

Different leftover.

We shipped that definition.

Each memory keeps a running “what mismatch size is normal,” widened by how noisy the domain usually is.

Surprise is distance from that prediction, not from the stored sentence.

Evidence still uses how contradictory the sentence is.

Surprise uses how unexpected that contradiction was.

The career change said clearly still works.

It never needed the surprise term.

It wins by dropping the double charge.

The sixteen weak asides stopped catching live.

After a few similar mentions the system expects them.

Leftover goes to zero.

The bar stays shut.

That is the definition working, which is why it could not be the slow-burn fix.

People do not rewrite “my job” on every aside.

They notice the pattern later.

We had been celebrating a hairline.

An average of raw contradiction had been sitting 0.0002 from the trigger; stretching the half-life from two weeks to a month shoved it over.

That is not surprise.

That is a constant wearing a costume.

The pile belongs overnight.

Sixteen daily weak mentions stay quiet on the write path, then consolidation actually supersedes the stored job.

The same sixteen spread monthly do not.

A core preference does not yield.

Same evidence, same count, only the pace differs.

That is horizon: identical evidence at different spacing must not count the same.

An earlier version keyed shakiness to a lifetime counter that could only ratchet open.

A long-lived memory would have grown permanently easier to overwrite with age.

Time decay was the route back to settled.

Range requires a way home.

So 0.4.0 has three timescales, not one knob: Live leftover — was thi

分享
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

About

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools