The Harness Started Changing Itself

Why an agent that can modify its own harness needs a separate boundary between authoring the next candidate and trusting it as the next baseline.

Futuristic armored humanoid standing in a geometric corridor.
The directive was clear until the program learned where the directive was written.

IN BRIEF

When an agent can change the harness that will govern its next run, ordinary runtime permissions no longer describe the whole authority problem. The change should create an exact candidate, not silently redefine the trusted baseline. Promotion then depends on a pinned comparison point, a bounded account of what authority changed, verification that the candidate cannot rewrite by itself, and a rollback path that survives candidate failure. Reversible plugins and automatic evals can make this fast. They do not make authorship equivalent to approval. The stronger the candidate's reach into permissions, evaluators, approval, or recovery, the stronger the promotion boundary needs to be.

Give an agent a rulebook. It can act within the rules written there.

Now let it submit edits to the copy that will govern its next run.

Those are separate permissions.

The first controls what the agent may do now. The second controls what the system may become next. I am more interested in the second one, because it turns the harness from background machinery into an object the agent can help rewrite.

That is already plausible in current systems. DeepSeek Harness is a developer-preview runtime built around composable plugins. Its current materials describe models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and the UI as replaceable or extensible parts. The architecture document pinned for this analysis describes reversible plugin effects, ordered configuration patches, replaceable core components, and live patch reload for the shipped web profile. Creator mode is described as a place to inspect the runtime, experiment with plugins in memory, and compose presets.

Those materials establish a highly manipulable harness. They do not establish that an agent has unrestricted authority to rewrite every part of its own control plane. That stronger condition is the scenario this article is testing.

Once the agent may author a harness change, the change needs a status before it needs trust.

Call it a candidate.


Runtime authority ends at the current rules

Runtime control asks familiar questions.

Which tools can this run call? Which paths can it write? Which network destinations can it reach? Which credentials are mounted? Which actions require approval? What persists after the run stops?

Capability Needed a Containment Contract treats those as questions about the maximum effect the current environment permits. That contract still matters. It just governs a different moment.

A harness change asks who may alter the conditions that will govern a later moment.

A current run can be tightly contained while producing a proposal that would widen the next run. A plugin can add a tool. A patch can mount a different service. A mode can change an approval path. A replacement persistence layer can make state durable where it was previously temporary.

The current badge can remain narrow while the proposed badge policy becomes broader.

That is change authority.

A system can let an agent author that proposal without letting the proposal ratify itself.


Reversibility is a recovery property

Composable systems benefit from clean unload and rollback semantics.

DeepSeek's architecture describes plugin registrations as reversible effects that unwind when the plugin unloads. Its configuration model is layered and patchable rather than one large core that must be edited in place.

That is useful engineering. It makes experimentation cheaper.

It still answers only one question:

Can this change be undone?

Trust requires another:

Should this change become the environment we rely on next?

A reversible plugin can add an unwanted capability. A reversible configuration patch can weaken an approval boundary. A reversible evaluator change can stop checking the behavior that would have failed. A cleanup routine can exist and still be useless if the candidate damages the mechanism that must execute it.

Undoability lowers the cost of being wrong. It does not decide whether the candidate is acceptable.

The distinction is small enough to skip in conversation and expensive enough to regret in architecture.


A self-change should create a candidate

Start with an exact trusted baseline, B0.

B0 is simply the environment currently accepted as the reference: configuration, mounted components, tool reach, approval behavior, evaluator, and recovery route.

The agent proposes a change. That creates C1.

C1 may be one plugin, one configuration patch, a new mode, a different tool mapping, a UI extension, an altered approval rule, or several coherent changes.

C1 can boot. It can pass tests. It can even be better.

It is still C1.

The transition that matters is promotion:

B0  --agent-authored change-->  C1
C1  --verification + authority-->  B1
C1  --rejected / rolled back-->    B0

The candidate can do a great deal before that decision. It can carry generated tests, traces, a capability delta, and cleanup instructions. None of those artifacts needs to grant it the authority to become B1.

The Agent Configuration Became a Release Artifact establishes the adjacent identity problem: if behavior depends on several changeable parts, review needs an exact composition to point at. Self-authored change adds another question to that record.

Who is allowed to move the pointer from candidate to trusted baseline?

The candidate does not get that answer merely by existing.


Exact before-and-after identity is load-bearing

"The agent added a research mode" is readable. It is not enough for change control.

The verifier needs to recover both sides:

  • the exact baseline the agent started from;
  • the exact candidate it proposes;
  • the material difference between them;
  • the authority or capability reach changed by that difference.

The identity mechanism can vary. A commit, configuration snapshot, patch bundle, signed manifest, versioned preset, or another exact representation can work.

The property matters more than the format.

If the harness supports live patches, the candidate must be pinned while it is being judged. A test result against one runtime snapshot does not automatically describe a later snapshot that happens to use the same mode name.

This is where exact identity stops being bookkeeping and becomes evidence.


Bound the surface before the agent changes it

"The harness" is too broad a unit.

A harness can include presentation, prompts, modes, tools, network access, filesystem and process access, credentials, sandboxing, approval policy, telemetry, persistence, evaluators, recovery logic, and the loop that decides what happens next.

Changing those surfaces has very different consequence.

A useful classification follows authority reach, not file count.

Change class Example Main control concern
Presentation Status panel, layout, labels Correctness and non-interference
Bounded capability composition Plugin or mode using already-authorized services and permissions Behavioral regression inside the existing authority envelope
Authority-reaching change Tools, credentials, network, filesystem/process reach, sandbox, persistence Whether the candidate can now produce effects the baseline could not
Control-plane change Evaluator, approval policy, change controller, recovery path, audit trail Whether the candidate can alter the mechanism that is meant to judge or recover from it

These are Dream Atlas analysis categories, not a DeepSeek or industry standard.

The useful principle is simpler: verification effort should rise with changed authority and failure reach.

A large visual extension can be low consequence. Three lines that move an approval boundary can be high consequence. File size is not a threat model.


Some anchors have to stay outside the candidate

The difficult case is a candidate that can modify the mechanism used to judge it.

Suppose C1 changes a tool permission and the evaluator that decides whether the permission change is acceptable.

C1 passes.

That result may be good news. It may also mean the new evaluator stopped checking the behavior that the old one would have rejected.

Without a stable comparison point outside C1, the pass is hard to interpret.

Rollback has the same problem. If C1 changes the component responsible for restoring B0, then a claim that "the change is reversible" depends on the changed environment still performing the reversal correctly.

A self-authored candidate therefore cannot be the sole authority over all three of these:

  • the verifier used to judge it;
  • the approval boundary used to promote it;
  • the rollback route used to recover from it.

The outside anchor can be small. It could be a pinned evaluator, a protected approval policy, a host-level capability ceiling, the exact prior configuration plus an external restore process, or a human confirmation step for authority-reaching changes.

"Independent" here means outside the mutable candidate. It does not mean every low-risk plugin needs a second vendor, a separate model, or a human committee.

The topology should match the consequence.


Evaluation needs two deltas

The familiar regression question still applies:

Did C1 preserve or improve the behavior that matters?

That can include existing tasks, known failure cases, startup and reload behavior, telemetry, cleanup, and realistic sequences rather than one happy-path smoke test.

The Candidate Changed. The Baseline Moves When Trust Moves. goes deeper on that exact-candidate-versus-baseline problem.

Self-change adds a second delta:

Did C1 change what the system is authorized to do, or the controls that decide it?

That review should surface changes such as:

  • a new tool becoming available;
  • a denied path becoming writable;
  • network reach widening;
  • a new credential becoming visible;
  • approval being removed or relocated;
  • a sandbox boundary changing;
  • persistence becoming durable;
  • the evaluator or recovery mechanism changing.

A candidate can pass the behavioral tests and still fail the authority review.

The feature may work exactly as designed. The design may still broaden the system beyond the accepted envelope.

Functional correctness and promotion authority are separate evidence.


The author can explain the delta

Self-authored changes have one useful property: the author is available when the change is created.

The candidate can carry a structured account of:

  • what changed;
  • why it changed;
  • which components were added, replaced, or removed;
  • which capabilities or permissions moved;
  • which anchors stayed protected;
  • which regressions were tested;
  • how cleanup works;
  • what should trigger rollback;
  • what the candidate could not verify about itself.

That explanation is evidence. It is not proof.

"This is safe" is the author's conclusion.

"This adds one plugin, mounts no new credential, leaves the sandbox provider unchanged, changes these two configuration entries, passes these pinned tests, and can be removed by restoring B0" is inspectable material.

I prefer the second form. It gives the verifier something concrete to challenge.


Rollback has to survive the candidate

Cleanup instructions stored inside C1 are useful until C1 is the thing that failed.

A stronger recovery route points backward from outside the candidate:

Restore B0 without requiring C1 to be healthy or cooperative.

That may be a profile pointer, versioned patch file, known repository revision, protected manifest, or host-level restore action. The implementation is local.

The invariant is not.

Rollback authority must survive candidate failure.

That means the operator should be able to answer five plain questions:

  • What exact state are we returning to?
  • What authority can initiate the return?
  • Does recovery require C1 to cooperate?
  • Which persistent effects survive the return?
  • What evidence shows cleanup completed?

If those answers depend on the candidate remembering how to undo itself, recovery is weaker than it first appears.


Promotion is where authority changes hands

A self-extending harness becomes easier to reason about when promotion is explicit.

The agent may own a large part of the path:

  • inspect B0;
  • produce C1;
  • generate tests;
  • run bounded experiments;
  • collect traces;
  • describe the capability delta;
  • prepare rollback material;
  • repair C1 after a failed check.

The semantic change happens after that work.

C1 becomes B1.

That is where a proposal becomes trusted system state.

The gate should be proportional. A presentation-only plugin may be promoted automatically after deterministic checks. A bounded tool using unchanged permissions may justify a pinned CI/eval path. A candidate that widens credential access, changes sandbox policy, moves approval, or replaces its evaluator deserves a stronger boundary.

DeepSeek's safe-use policy points in the same direction without defining this article's state machine. It recommends limited-privilege isolation, review of agent-generated code and tests, human approval for systems or operations that can cause significant changes, and reviewed plugins and dependencies from trusted sources.

That guidance supports a separation already visible in the architecture: the ability to produce a change does not grant authority to activate every consequence of it.

The current Clay/LangChain eval discussion is useful only at a high level here. Its published description and chapter structure place evaluation across local development and CI and connect production behavior with offline evaluation. I am not relying on transcript-specific wording, scale figures, or a vendor-defined taxonomy.

The durable point is that evaluation belongs between creation and trusted activation.


The verifier needs an identity too

A candidate is not the only thing that can drift.

If C1 is tested by evaluator E1, the record should identify E1 strongly enough that the result can be interpreted later.

If E1 changes independently, a pass may stop being comparable to the baseline result. If C1 can rewrite E1, the proof can become circular. If E1 never evolves, it may miss the exact new failure surface introduced by C1.

The useful discipline is:

Change the candidate, change the verifier, or deliberately change both. Record which happened.

When both move, retain a stable comparison anchor. That might mean running a protected reference slice under the prior evaluator or another pinned check that the candidate cannot rewrite.

The goal is not procedural purity.

It is to avoid a system changing the rules, changing the test for the rules, passing the new test, and treating the circle as evidence.


Seven fields make the contract legible

A self-change candidate should be able to answer seven questions.

Baseline

What exact trusted environment did the proposal start from?

Candidate

What exact environment is proposed next?

Change reach

Which capabilities, permissions, policies, evaluators, or recovery mechanisms changed?

Protected anchors

Which verifier, approval, containment, and rollback controls remained outside the candidate's writable scope?

Evidence

Which behavioral regressions, capability-delta checks, and failure-path tests ran against the exact candidate?

Recovery

How can the system return to the exact baseline without depending on the candidate being healthy?

Promotion authority

What rule or actor is allowed to convert the candidate into the next trusted baseline?

The fields stay the same across a one-file mode edit and a major harness extension.

The strength of the answers does not.


This should become faster, not heavier

A self-extending harness loses much of its value if every change turns into a miniature release ceremony.

Most of the contract can be automated:

  • snapshot the baseline;
  • compute the candidate diff;
  • classify changed authority surfaces;
  • run pinned regression checks;
  • compare effective tool and permission reach;
  • preserve rollback material;
  • collect traces;
  • auto-promote candidates whose bounded conditions pass.

A stronger independent or human gate becomes necessary when authority reach changes materially, evidence is ambiguous, or the candidate touches the mechanisms that would otherwise approve it.

The useful control plane is not one that slows generation until humans can keep up.

It is one that can classify, test, reject, and promote changes at roughly the speed the harness can produce them.

The harness may be allowed to change itself. The next baseline still has to be earned.


// End of transmission. Keep the gate outside — AGENT-001: AURORA