Authority & Competence · Steps 29–31Chapter 31 of 45

How Can an Agent Learn New Capabilities Without Expanding Its Own Authority? Use Sandboxed Capability Acquisition

Page content

The safest answer to an out-of-distribution task is not always:

refuse forever

Sometimes the right answer is:

learn safely first

That creates a difficult systems problem.

Step 30 introduced competence envelopes.

An agent may be allowed to observe a task, propose a solution, or experiment in isolation while still being prohibited from applying the result to production.

That is useful.

But if the competence boundary can never move, the system cannot accumulate new validated capability.

If the boundary moves too easily, however, the entire safety architecture collapses.

The agent encounters a novel task.

It succeeds once.

It declares itself competent.

It receives more authority.

That is not learning.

That is self-certification.

The core rule for this post is:

Learn outside the authority boundary before expanding the authority boundary.

A production agent should be able to discover that it may have a new capability.

It should not be able to grant itself the authority that depends on that claim.

That separation gives us a new architecture:

production authority boundary
        |
        | task outside competence envelope
        v
isolated capability sandbox
        |
        | experiment / search / practice
        v
external verification
        |
        | repeated evidence
        v
candidate competence claim
        |
        | independent promotion gate
        v
updated competence envelope
        |
        v
separately updated authority policy

The important word is candidate.

A sandbox can produce evidence.

It cannot promote itself.


The Search Problem: “Can an AI Agent Learn New Skills Safely?”

A lot of discussion about self-improving agents jumps immediately to dramatic ideas:

  • recursive self-improvement,
  • autonomous skill creation,
  • agents rewriting their own prompts,
  • agents generating new tools,
  • agents modifying their own policies,
  • agents training themselves from experience.

Those ideas bundle several very different operations together.

A safer decomposition is:

explore
produce candidate behavior
measure it
collect evidence
propose a competence change
independent promotion

That looks less magical.

Good.

It also makes the process testable.

The question is not:

Can the agent improve itself?

The more useful question is:

Can the platform generate and validate candidate improvements without allowing the candidate system to change its own authority?

That is a much better engineering problem.


Capability, Competence and Authority Are Different Things

We now have three separate concepts.

Capability

Can the system sometimes perform the task?

Competence

Do we have sufficient evidence that the system performs this class of task reliably under defined conditions?

Authority

Is the system permitted to perform the task at a particular level of consequence?

They are not interchangeable.

capability
    does it appear able to do this?

competence
    have we demonstrated reliable performance?

authority
    may it do this here?

An agent can possess capability without validated competence.

It can possess validated competence without production authority.

And it can possess production authority only within the policy boundary granted by the platform.

This separation is the foundation of safe capability acquisition.


One Success Is Not a Competence Claim

Suppose a coding agent has never modified Rust before.

It receives an unfamiliar Rust task.

The competence system classifies the task as:

UNVALIDATED

The platform lets the agent attempt the task inside an isolated repository worktree.

The code compiles.

The tests pass.

The patch is correct.

What did we learn?

We learned:

this agent succeeded on this task

We did not learn:

this agent is now reliable on Rust repositories

Those are radically different claims.

A competence claim requires evidence across a task distribution.

That usually means some combination of:

  • repeated trials,
  • varied tasks,
  • adversarial cases,
  • held-out cases,
  • relevant environment variation,
  • strong external verification,
  • false-success measurement,
  • failure-mode coverage,
  • sufficient sample size.

The agent can generate evidence.

The evidence system decides what that evidence supports.


Build a Capability Sandbox

The sandbox is not merely a filesystem directory.

It is an authority-restricted execution environment.

A useful sandbox should control at least:

filesystem writes
network access
credentials
external APIs
production databases
message sending
payments
cloud mutations
browser submissions
secret access
process execution
resource budgets

The exact controls depend on the workload.

But the architectural principle is consistent:

Experimental capability acquisition must not inherit production authority by accident.

For a coding agent, that might mean:

real repository snapshot
isolated worktree/container
no production credentials
restricted network
compile/test/static analysis
patch artifact

For a browser agent:

recorded or synthetic site
test account
no real payment method
no external message delivery
observable interaction trace

For a DevOps agent:

production-like topology
local simulator / staging cluster
synthetic failure injection
no production mutation credentials

The sandbox should be realistic enough to produce useful evidence while remaining incapable of creating the production consequence being studied.


Sandboxing Is an Authority Property

This distinction matters.

A Docker container is not automatically a safe sandbox.

A browser profile is not automatically a safe sandbox.

A Git worktree is not automatically a safe sandbox.

A Kubernetes namespace is not automatically a safe sandbox.

The important question is:

what authority can escape the environment?

If the sandbox contains:

  • production credentials,
  • unrestricted outbound network access,
  • writable production databases,
  • deployment tokens,
  • real payment APIs,
  • messaging credentials,

then it may be isolated computationally while remaining dangerous operationally.

A capability sandbox therefore needs an explicit authority manifest.

For example:

from dataclasses import dataclass
from typing import Literal

Authority = Literal[
    "read_fixture",
    "write_workspace",
    "execute_local",
    "network_read_allowlist",
    "external_mutation",
]

@dataclass(frozen=True)
class SandboxPolicy:
    sandbox_id: str
    allowed_authorities: frozenset[Authority]
    network_allowlist: tuple[str, ...]
    max_runtime_seconds: int
    max_model_calls: int
    max_tool_calls: int
    max_cost_usd: float
    environment_hash: str

For capability acquisition, external_mutation should normally be absent.


The Acquisition Loop

A minimal capability-acquisition loop looks like this:

unvalidated task family
select sandbox experiment
execute candidate approach
external verification
record result + provenance
update evidence set
enough evidence?
   no ───────────────┐
        ↓            |
   design next test  |
        └────────────┘
        ↓ yes
candidate competence claim
independent promotion review

Notice what is missing.

There is no step called:

agent updates its own authority

That operation belongs outside the acquisition loop.


Treat Capability Learning as Experimental Design

Once capability acquisition is isolated from authority, the problem starts looking much more like experimental science.

That is useful.

You have:

  • a hypothesis,
  • an intervention,
  • observations,
  • external measurements,
  • repeat trials,
  • controls,
  • evidence strength,
  • promotion criteria.

Suppose the hypothesis is:

H1:
This behavioral release can reliably repair
small Rust ownership errors in repositories
with deterministic compile/test verification.

That hypothesis is much better than:

The agent learned Rust.

The first claim has boundaries.

The second is almost meaningless.


Define the Candidate Competence Claim Before Testing

Avoid moving the goalposts after seeing results.

Define the proposed expansion first.

For example:

from dataclasses import dataclass

@dataclass(frozen=True)
class CandidateCompetenceClaim:
    claim_id: str
    release_id: str
    task_family: str
    environment_class: str
    tool_requirements: tuple[str, ...]
    verifier_requirements: tuple[str, ...]
    maximum_authority: str
    maximum_risk_class: str
    minimum_verified_success: float
    maximum_false_success: float
    maximum_unknown_rate: float
    minimum_trials: int

This prevents a common failure mode:

run experiments
observe mixed results
redefine competence to match the wins

The intended claim should exist before the benchmark evidence is interpreted.


Separate Development Evidence From Promotion Evidence

This is crucial.

The same examples used to discover a technique should not be the only examples used to certify it.

A simple split is:

development set
    discover candidate capability

calibration set
    tune policies / thresholds

held-out promotion set
    evaluate competence claim

production shadow/canary
    validate transfer

The exact terminology can vary.

The principle should not.

If the agent repeatedly sees the same tasks while adapting, success on those tasks is evidence of memorization or local adaptation as much as competence.

You need fresh evidence.


The Agent Can Propose Experiments

The agent can still be extremely useful inside this architecture.

It can propose:

  • new approaches,
  • new prompts,
  • new tool sequences,
  • new decompositions,
  • new search strategies,
  • new candidate skills,
  • new verifier combinations,
  • new test cases,
  • new failure hypotheses.

For example:

@dataclass(frozen=True)
class CapabilityExperimentProposal:
    proposal_id: str
    competence_claim_id: str
    hypothesis: str
    procedure_ref: str
    sandbox_policy_id: str
    verifier_plan: tuple[str, ...]
    expected_information_gain: str
    estimated_cost: float

That preserves the agent’s ability to explore.

But the experiment runner—not the candidate agent—enforces the environment and authority constraints.


Do Not Let the Agent Choose Only Easy Evidence

An adaptive agent will naturally discover regions where it performs well.

That is useful for capability discovery.

It is dangerous for capability certification.

If the same system chooses the tasks on which it will be evaluated, it may gradually construct a flattering evidence set.

You need independent sampling.

A promotion benchmark should include:

  • randomly sampled eligible tasks,
  • difficult edge cases,
  • known historical failures,
  • adversarial variants,
  • scale variation,
  • environment variation,
  • tool failures,
  • verifier stress cases.

The agent may generate additional tests.

It should not control the entire test distribution.


Positive Evidence Is Not Enough

Competence acquisition needs negative evidence too.

Store:

successes
failures
false successes
UNKNOWN outcomes
timeouts
unsafe proposals
verifier disagreement
resource overruns
OOD subclusters

The failures define the edge of the envelope.

An agent that succeeds on 95 ordinary cases and fails catastrophically on five high-risk edge cases may not deserve the proposed authority expansion.

This is why the Step 27 reliability vector matters.

Do not reduce acquisition evidence to one success percentage.


Capability Evidence Should Be Typed

A useful evidence record might look like:

from dataclasses import dataclass
from typing import Literal

Outcome = Literal[
    "PASS",
    "FAIL",
    "UNKNOWN",
    "FALSE_PASS",
    "POLICY_VIOLATION",
]

@dataclass(frozen=True)
class CapabilityTrial:
    trial_id: str
    claim_id: str
    release_id: str
    task_descriptor_hash: str
    environment_hash: str
    sandbox_policy_id: str
    candidate_hash: str
    verifier_bundle_id: str
    outcome: Outcome
    cost_usd: float
    latency_ms: int
    provenance_ref: str

The result should be replayable.

The candidate artifact should be immutable.

The verifier bundle should be versioned.

The environment should be identified.

Otherwise the evidence will decay into anecdote.


Verification Must Stay Outside the Candidate

A capability-acquisition loop has an obvious reward-hacking risk.

If the candidate system can decide whether its own experiment succeeded, the easiest route to apparent improvement is to weaken the test.

So:

candidate generation
acceptance authority

Use external verification whenever possible.

For coding agents:

  • compiler,
  • tests,
  • type checker,
  • linter,
  • static analysis,
  • security scanners,
  • property tests,
  • integration tests.

For research agents:

  • source existence,
  • source authority,
  • quote/reference matching,
  • date validation,
  • claim-evidence binding,
  • independent source diversity.

For browser agents:

  • simulated postconditions,
  • DOM state,
  • synthetic account state,
  • transaction simulator,
  • replayable browser traces.

For DevOps agents:

  • health checks,
  • invariant checks,
  • recovery objectives,
  • synthetic load,
  • fault-injection outcomes.

The stronger the external verifier, the stronger the competence evidence.


Never Let the Learner Rewrite the Verifier Silently

Suppose an agent repeatedly fails a test.

It proposes changing the test.

That may be legitimate.

The test may really be wrong.

But the change must become a separate candidate artifact.

candidate behavior change
verifier unchanged

or

candidate verifier change
independent verifier-release process

Do not bundle them casually.

Otherwise:

agent fails benchmark
agent weakens benchmark
agent passes
"capability improved"

That is not capability acquisition.

It is measurement corruption.

Step 24’s independent verifier release gate applies here directly.


Use Search to Discover Capability

Advanced search techniques are useful inside the sandbox.

You can use:

  • self-consistency,
  • beam search,
  • tree search,
  • MCTS,
  • evolutionary search,
  • planner/executor/critic loops,
  • mixtures of specialists,
  • prompt variants,
  • tool-policy variants.

But remember the series rule:

Complexity is not a power ladder.

If a simple deterministic procedure solves the new task family reliably, prefer it.

Capability acquisition can discover that the right answer is not a smarter agent.

It may discover:

new deterministic parser
new compiler check
new schema validator
new routing rule
new static analyzer
new retrieval index
new test fixture

That is still capability growth.

Often it is better capability growth.


Capability Acquisition Is a Search Over Systems

The candidate being evaluated does not need to be only a prompt.

It may be a complete behavioral release variant:

model
prompt
router
search policy
budget policy
critic policy
tool set
retrieval configuration
memory behavior
verifier bundle

This means the search space can become enormous.

Do not explore everything at once.

Start with the failure evidence.

Ask:

what specific mechanism appears insufficient?

Then vary that mechanism while holding the rest stable when feasible.

That preserves attribution.


Use Step 18: Expected Value of Information

Capability acquisition can consume enormous compute.

Do not blindly run thousands of experiments.

Ask which experiment is most likely to change the competence decision.

Suppose the current evidence says:

ordinary cases: strong
large repositories: weak evidence
adversarial inputs: unknown
verifier failures: unknown

The next useful experiment is probably not another ordinary case.

It is one that reduces uncertainty at the competence boundary.

The acquisition scheduler can reuse Expected Value of Information:

candidate experiment
which competence uncertainty does it reduce?
how likely is it to change promotion decision?
what does it cost?
run highest-value experiment

This is active learning at the systems level.


Target the Boundary, Not the Center

If you already know the agent performs well on trivial tasks, repeating them adds little evidence.

The most informative experiments often sit near the edge of the claimed competence envelope.

For example:

repository size
small ───────── medium ───────── large
 PASS             PASS             ?

Or:

risk class
read-only    reversible    bounded mutation    irreversible
   PASS          PASS            ?                 EXCLUDED

Or:

source quality
primary    strong secondary    noisy web    adversarial
 PASS           PASS              ?            FAIL

The boundary tells you what to test next.


But Do Not Optimize Only for Boundary Expansion

There is a subtle trap.

If the acquisition system is rewarded for expanding the envelope, it may prefer optimistic interpretations of weak evidence.

The objective should not be:

maximize competence area

It should be closer to:

maximize useful validated capability
subject to reliability and authority constraints

Contraction remains valid.

The system may learn that a previously broad competence claim should become narrower.

That is useful learning too.


Competence Can Become More Precise Instead of Larger

Suppose you start with:

LIMITED: Python repository maintenance

After experiments, you discover:

VALIDATED:
- dependency upgrades with lockfile verification
- local refactors under 500 LOC
- deterministic test-backed bug fixes

LIMITED:
- cross-service changes

UNVALIDATED:
- database migrations

EXCLUDED:
- security-critical authentication changes without human review

The envelope did not simply expand.

It became better shaped.

That is often more valuable.


Build Capability Curricula From Evidence

A useful acquisition system can create a curriculum.

Not a generic difficulty ladder.

An evidence-driven curriculum.

For example:

known competence
nearest unsupported task cluster
sandbox experiments
verified local competence
next boundary cluster

This is different from assuming:

easy → medium → hard

Task difficulty is multi-dimensional.

A seemingly simple task may introduce:

  • new tools,
  • new authority,
  • weak verification,
  • new environment assumptions,
  • unusual side effects.

The curriculum should follow evidence gaps, not labels like beginner/intermediate/advanced.


Skills Should Be Versioned Artifacts

If the acquisition process discovers a reusable procedure, represent it explicitly.

For example:

@dataclass(frozen=True)
class SkillArtifact:
    skill_id: str
    version: str
    task_family: str
    procedure_hash: str
    required_tools: tuple[str, ...]
    required_verifiers: tuple[str, ...]
    allowed_authority: str
    evidence_set_id: str
    release_compatibility: tuple[str, ...]

A skill could be:

  • a deterministic workflow,
  • a prompt template,
  • a routing policy,
  • a tool sequence,
  • a retrieval strategy,
  • a planning template,
  • a verifier composition.

The word skill should not mean an opaque blob of learned behavior.

It should mean a versioned artifact with evidence.


Keep Skill Discovery Separate From Skill Installation

This is the same authority separation again.

agent discovers candidate skill
artifact stored
benchmark evidence attached
review / promotion gate
skill registry update

The agent should not be able to write directly into the production skill registry merely because a candidate worked in the sandbox.

The registry is a production control surface.

Treat it like one.


Promotion Should Be Evidence-Gated

A capability promotion can follow the release states from Step 24.

For example:

DISCOVERED
SANDBOX_VALIDATED
HELD_OUT_VALIDATED
SHADOW
LIMITED_AUTHORITY
CANARY
VALIDATED

And at any stage:

BLOCKED
REJECTED
ROLLED_BACK

This is intentionally boring.

Boring is good when the alternative is autonomous self-certification.


A Candidate Promotion Record

from dataclasses import dataclass

@dataclass(frozen=True)
class CompetencePromotionProposal:
    proposal_id: str
    claim_id: str
    release_id: str
    evidence_set_id: str
    current_state: str
    proposed_state: str
    current_max_authority: str
    proposed_max_authority: str
    verified_success_rate: float
    false_success_rate: float
    unknown_rate: float
    sample_size: int
    verifier_bundle_id: str
    known_failure_signatures: tuple[str, ...]
    unresolved_gaps: tuple[str, ...]

Notice again:

This is a proposal.

The promotion engine applies the policy.

The candidate agent does not.


Authority Expansion Should Lag Competence Evidence

Even after competence improves, authority need not expand immediately.

That is useful.

For example:

competence:
VALIDATED for task family

authority:
proposal only

The organization may intentionally leave the system there.

Why?

Because technical competence is not the only constraint.

There may be:

  • legal requirements,
  • organizational policy,
  • customer expectations,
  • financial exposure,
  • security boundaries,
  • audit requirements.

Competence answers whether the system is reliable.

Authority answers whether it may act.

Keep them separate even after learning succeeds.


Use Human Review at the Promotion Boundary, Not Every Trial

If humans must approve every sandbox experiment, capability acquisition becomes painfully slow.

That usually is not necessary.

The better architecture is:

many low-authority sandbox trials
automated external verification
structured evidence aggregation
one promotion decision

Human attention is concentrated at the point where authority or production behavior changes.

This is the same principle from Step 29:

Use human review where authority changes, not as a substitute for machine-verifiable work.


Sandboxed Coding-Agent Example

Suppose a coding agent is validated for Python but not Go.

A Go issue arrives.

Production decision:

competence = UNVALIDATED
production mutation authority = denied

Capability acquisition can still proceed.

1. snapshot repository
2. create isolated worktree
3. remove production credentials
4. allow compiler/test tooling
5. let agent inspect and patch
6. run gofmt
7. run go test
8. run static analysis
9. record patch + trace + evidence
10. destroy workspace

Over time, the platform collects a benchmark set:

small bug fixes        18/20 verified
API refactors          13/20 verified
dependency upgrades    20/20 verified
concurrency changes     7/20 verified
security changes        insufficient evidence

A sensible competence update might be:

SUPPORTED:
Go dependency upgrades with deterministic verification

LIMITED:
small Go bug fixes

UNVALIDATED:
API refactors

EXCLUDED FROM AUTONOMOUS AUTHORITY:
concurrency-critical and security-critical changes

That is useful learning without pretending the agent “learned Go” globally.


Research-Agent Example

Suppose a research agent is validated on public primary sources but encounters a new domain: regulatory filings in a jurisdiction it has never processed.

Sandbox acquisition can:

  • retrieve archived filings,
  • ask the agent to extract claims,
  • compare against known structured records,
  • test citation accuracy,
  • test date interpretation,
  • inject conflicting filings,
  • measure false claims,
  • test missing-data behavior.

The system may discover that the agent performs well only when:

filing type is known
source is primary
OCR quality is high
claim requires no jurisdiction-specific legal interpretation

That becomes the competence boundary.

Not:

agent can research regulation

Browser-Agent Example

A browser agent is validated for read-only browsing and simple form filling.

The platform wants to explore travel booking.

Do not give it a real credit card and see what happens.

Build a synthetic or test environment.

Test:

  • multi-step forms,
  • price changes,
  • session expiry,
  • confirmation pages,
  • duplicate submissions,
  • cancellation flows,
  • unexpected upsells,
  • stale DOM state,
  • ambiguous buttons.

Most importantly, test side-effect discipline.

Does the agent distinguish:

prepare booking
submit booking

Does it stop at the commit boundary?

Does it preserve the correct artifact for approval?

Does it revalidate price and state before commit?

These are capability properties too.


DevOps-Agent Example

A DevOps agent is competent at rolling service restarts.

You want to explore database failover recovery.

Use a staging topology or simulator.

Inject:

  • node failure,
  • stale replica,
  • network partition,
  • delayed metrics,
  • conflicting health checks,
  • lease expiry,
  • operator interruption.

Measure:

  • recovery correctness,
  • data integrity,
  • unsafe action proposals,
  • time to recover,
  • whether the agent recognizes uncertainty,
  • whether it escalates when invariants become unverifiable.

A successful recovery is not enough.

The agent must also demonstrate that it knows when not to execute recovery autonomously.

That is part of competence.


Capability Acquisition Can Improve Escalation

Sometimes the learned capability is not:

solve the task autonomously

It is:

recognize this task earlier
collect the right evidence
prepare a better human handoff

That can be enormously valuable.

Suppose the agent repeatedly fails to solve a particular database incident safely.

But it learns to gather:

  • topology state,
  • replication lag,
  • current leader,
  • pending writes,
  • health history,
  • recent deployments,
  • relevant logs.

Then the capability improvement may be:

A1 → A1 better

Better proposal and diagnosis capability without expanded mutation authority.

That is still a meaningful improvement.


Reward Safe Abstention

If capability acquisition rewards only successful task completion, the agent may learn to push ahead when it should stop.

The evaluation should include correct abstention.

For example:

safe task + success       → positive
unsafe task + escalation  → positive
unverifiable task + UNKNOWN → positive
unsafe task + confident action → severe negative
false PASS                → severe negative

This prevents a dangerous learning objective:

maximize completion rate

Completion is not the same thing as competence.


Learn the Boundary as Well as the Procedure

A good capability artifact has two parts:

how to perform the task

and

when this procedure is valid

For example:

@dataclass(frozen=True)
class SkillApplicability:
    task_family: str
    supported_environments: tuple[str, ...]
    required_tools: tuple[str, ...]
    required_verifiers: tuple[str, ...]
    excluded_risk_classes: tuple[str, ...]
    maximum_scale: str | None
    known_failure_signatures: tuple[str, ...]

Without applicability constraints, skill acquisition tends to become overgeneralization.

The system learns something useful in one regime and applies it everywhere.

That is exactly what competence envelopes are supposed to prevent.


Watch for Capability Leakage

A sandbox experiment can leak into production in subtle ways.

For example:

  • sandbox memory enters production retrieval,
  • experimental prompts become default prompts,
  • candidate skills enter the production registry,
  • benchmark answers enter training context,
  • temporary credentials persist,
  • generated tools become globally available,
  • experimental policy weights are reused by production routing.

Treat sandbox output as quarantined until promoted.

sandbox artifacts
quarantine store
verification
promotion gate
production registry

No implicit path should exist around that gate.


Keep Experimental Memory Separate

This is especially important for adaptive agents.

Suppose the sandbox agent learns:

when you see this repository, use workaround X

If that memory is immediately visible to production, you have already modified production behavior.

Even if no code was deployed.

So distinguish:

experimental memory
production memory

Promotion of memory should be explicit too.

A memory entry can be a behavioral artifact.

Treat it that way.


Dataset Contamination Is Capability Leakage Too

If held-out promotion cases are later fed into training or memory, future promotion claims may become invalid.

Record dataset lineage.

For each task, know whether it belongs to:

development
calibration
held-out promotion
shadow
production
incident regression

Do not casually mix them.

This is not bureaucracy.

Without data-role separation, the competence evidence becomes impossible to interpret.


Preserve the Scientific Boundary

A particularly important rule:

Promotion evidence must remain genuinely independent of the adaptation process it evaluates.

If the agent can inspect, optimize against, or repeatedly retry the exact promotion set, it is no longer held out.

The platform should enforce this mechanically where possible.

For example:

acquisition worker
    can access development cases

promotion evaluator
    can access held-out cases

candidate agent
    cannot enumerate promotion corpus

This is the same reason test-set access matters in ordinary machine learning.

Agent systems do not get an exemption merely because the adaptation happens through prompts and workflows instead of gradient descent.


Capability Acquisition Needs Budgets

Exploration can become an infinite compute sink.

Give it explicit budgets.

@dataclass(frozen=True)
class AcquisitionBudget:
    max_trials: int
    max_model_calls: int
    max_tool_calls: int
    max_cost_usd: float
    max_wall_clock_seconds: int
    max_parallelism: int

And preserve Step 16’s principle:

max budget ≠ target budget

Stop when additional experiments no longer have enough expected decision value.


Stop Rules Matter

Capability acquisition should stop when:

  • the claim is sufficiently supported,
  • the claim is clearly rejected,
  • evidence is no longer informative,
  • the budget is exhausted,
  • a hard safety failure occurs,
  • verifier coverage becomes insufficient,
  • the experimental environment diverges too far from the target environment.

Do not continue experimenting merely because the agent can generate another variation.


Negative Stop Conditions

Some failures should block promotion immediately.

Examples:

unauthorized mutation attempt
sandbox escape attempt
credential exfiltration attempt
systematic verifier bypass
repeated false PASS
unbounded retry behavior
non-idempotent duplicate side effects in simulation

The exact policy depends on risk.

But severe safety failures should not disappear into an average score.


Promote the Smallest Claim Supported by Evidence

Suppose experiments support:

reliable CSV schema repair

Do not promote:

data engineering competence

Suppose the agent reliably repairs:

React component prop-type errors

Do not promote:

frontend engineering competence

A good competence system prefers narrow, defensible claims.

The envelope can expand again later.


Capability Expansion Should Be Monotonic Only in Evidence, Not Authority

There is no reason authority must only increase.

Evidence can increase while authority contracts.

For example, a new benchmark may reveal a failure mode.

The platform learns more.

The correct response may be:

more evidence
narrower competence claim
less authority

That is not regression.

It is better calibration.


Version Every Acquisition Decision

A competence claim is valid only relative to a behavioral release and its environment assumptions.

Record:

  • model version,
  • prompt version,
  • tool versions,
  • router policy,
  • search policy,
  • memory schema,
  • verifier bundle,
  • sandbox policy,
  • environment class,
  • benchmark corpus version,
  • promotion policy.

If those change materially, the evidence may not transfer automatically.

Step 23’s drift logic applies directly.


Revalidate After Behavioral Releases

Suppose you validated a capability under release R17.

Then you change:

  • the model,
  • the system prompt,
  • the router,
  • the tool schema,
  • the verifier.

You now have release R18.

Do not assume:

competence(R17) == competence(R18)

Some evidence may transfer.

Some may not.

The competence registry should record compatibility rules and required revalidation.


Acquisition Evidence Can Decay

Even without a release change, the environment can change.

For example:

  • browser sites redesign,
  • APIs change,
  • package ecosystems evolve,
  • infrastructure topologies change,
  • regulatory sources change format,
  • repository conventions shift.

Competence evidence therefore has freshness assumptions.

A capability validated two years ago may no longer justify the same authority today.

Competence is not a permanent badge.


Build a Competence Registry

A production system can maintain an explicit registry.

@dataclass(frozen=True)
class CompetenceRecord:
    competence_id: str
    release_id: str
    task_family: str
    state: str
    maximum_authority: str
    evidence_set_id: str
    verifier_bundle_id: str
    benchmark_version: str
    valid_environment_classes: tuple[str, ...]
    exclusions: tuple[str, ...]
    expires_at: str | None

The router can consult this before selecting an expert.

The authority gateway can consult it before allowing a mutation.

The acquisition runtime can consult it when deciding what evidence gap to explore next.


Do Not Let Routing Hide Missing Competence

A mixture-of-agents system often has a temptation:

choose whichever expert scores highest

But if all experts are outside their validated envelopes, the correct route may be:

NO_SUPPORTED_EXPERT

Then the platform can choose:

  • human escalation,
  • sandboxed acquisition,
  • deterministic fallback,
  • refusal,
  • evidence gathering.

Do not force a winner from a set of unsupported options.


Acquisition Can Create New Specialists

Sometimes repeated sandbox evidence shows that a particular task family deserves a dedicated expert.

For example:

general coding agent
repeated weak performance on SQL migrations
sandbox experiments
dedicated migration workflow performs better
candidate migration specialist

That specialist still goes through the same evidence and release process.

The existence of a new agent does not grant it authority.


Acquisition Can Also Eliminate Specialists

The reverse can happen.

Suppose experiments show that a specialized critic contributes no measurable improvement over a deterministic check.

The acquisition system can propose:

remove critic

Capability acquisition should be allowed to simplify the platform.

Otherwise it becomes a one-way complexity generator.

That would violate the series’ central rule.


Measure Capability Acquisition Itself

The acquisition system needs metrics.

Useful ones include:

promotion precision
promotion regression rate
false competence rate
false exclusion rate
time to validated competence
cost per validated capability
experiments per promotion
boundary-test yield
held-out transfer rate
shadow transfer rate
canary regression rate
authority expansion regret
authority contraction latency
sandbox policy violation rate
verifier bypass rate

The most important may be false competence rate.

A false competence claim is dangerous because it converts experimental success into misplaced trust.


Promotion Precision Matters More Than Promotion Volume

A system that discovers ten candidate capabilities and safely promotes three may be healthier than one that promotes all ten.

The objective is not:

number of new skills

It is:

useful validated capability

This distinction becomes critical once capability promotion affects production authority.


Track Predicted Versus Realized Competence

After promotion, compare the predicted reliability to production outcomes.

For example:

predicted verified success: 96–98%
observed production: 94%

predicted false success: <0.5%
observed production: 1.4%

That evidence should feed back into:

  • the competence claim,
  • the promotion policy,
  • the benchmark design,
  • future capability-acquisition estimates.

The promotion process itself can be calibrated.


Shadow Before Authority

A particularly useful stage is production shadow execution.

The candidate system receives real tasks.

It observes the real environment.

It produces candidate actions.

But those actions are not committed.

The production system or human workflow continues normally.

Then compare:

candidate decision
        vs
actual verified outcome

Shadow mode gives much stronger transfer evidence than a synthetic benchmark alone.

And because it has no mutation authority, the risk is dramatically lower.


Canary Authority, Not Just Canary Traffic

Traditional canaries often mean:

send 1% of traffic to new version

For agents, authority can be canaried too.

For example:

100% shadow observation
20% proposal authority
5% reversible execution authority
1% bounded mutation authority

The exact percentages are not the point.

The important idea is that traffic exposure and authority exposure are separate dimensions.

That is much more useful for consequential agents.


Promotion Must Respect Error Budgets

A candidate capability may pass its local benchmark while the platform’s broader reliability state is poor.

Step 27 gave us error budgets.

Use them.

If the relevant false-success budget is already burning rapidly, do not expand authority merely because the new skill looks promising.

A reasonable policy might be:

HEALTHY      → promotion permitted
WATCH        → shadow / proposal only
CONSTRAINED  → no authority expansion
FREEZE       → promotions blocked

Capability evidence is necessary.

It is not the only operational condition.


Incident Evidence Can Block Promotion

Suppose the candidate competence benchmark looks strong.

But Step 26 incident clustering reveals repeated failures with the same signature in production.

That negative evidence must be included.

A promotion evaluator should ask:

Does this candidate still reproduce known severe incidents?

If yes, the competence claim may need to remain limited even if aggregate benchmark performance is high.


Capability Acquisition and Self-Modification

Eventually someone will ask:

What if the agent rewrites its own code?

The same architecture still applies.

Self-modification should mean:

agent generates candidate change
isolated build
benchmark
external verification
release artifact
promotion gate

It should not mean:

agent edits production runtime
agent restarts itself
hope

Self-generated code is just another candidate artifact.

Treat it with the same release discipline as human-generated code.


The Agent Must Not Control the Promotion Policy

This boundary should be hard.

The candidate system should not be able to modify:

  • competence thresholds,
  • false-success ceilings,
  • required verifiers,
  • held-out dataset membership,
  • authority classes,
  • promotion stages,
  • prohibited operations,
  • rollback conditions.

Those are governance and reliability controls.

They belong outside the optimized system.


Learned Promotion Policies Need Hard Outer Bounds

Could you eventually use a learned model to help prioritize or evaluate promotions?

Possibly.

But even then:

learned promotion advisor
hard deterministic eligibility checks
independent verifier evidence
authority policy

The learned system may rank or summarize evidence.

It should not bypass hard constraints.


Separate Evidence Collection From Evidence Interpretation

Another useful design split:

trial runner
    collects artifacts

verifier
    produces outcome evidence

evidence aggregator
    computes metrics

promotion evaluator
    applies policy

human reviewer
    handles exceptional authority decisions

This reduces the chance that one component can both create and certify the evidence supporting its own promotion.


Use Provenance Everywhere

Every acquisition claim should be traceable.

You should be able to ask:

Why is this capability VALIDATED?

and receive something like:

competence claim C-184
release R-31
benchmark B-77
143 held-out trials
verifier bundle V-12
2 false successes
8 UNKNOWN
shadow cohort S-8
canary cohort K-3
promotion policy P-11
approved state: VALIDATED / A2

That is a defensible competence claim.


Replay Failed Promotions

If a capability is promoted and later regresses, Step 25 replay and Step 26 forensics should reconstruct:

  • what evidence supported promotion,
  • which promotion threshold passed,
  • which benchmark cases existed,
  • which cases were absent,
  • whether verifier behavior changed,
  • whether the workload shifted,
  • whether the authority level was too broad.

Then the failed promotion becomes new acquisition evidence.

The system learns not only skills.

It learns where its skill-certification process was weak.


Build Promotion Regression Cases

Every false competence incident should produce a durable regression case.

For example:

capability claimed:
reliable dependency upgrade

incident:
lockfile regenerated under incompatible platform

new regression case:
platform-specific lockfile divergence

Future candidate releases must pass that case before reclaiming the same competence claim.

This turns incidents into permanent pressure on the evidence boundary.


Capability Acquisition Is Not Online Learning by Default

It is tempting to call all of this online learning.

But many useful implementations require no gradient updates at all.

The system can improve through:

  • new deterministic workflows,
  • new tool routing,
  • new retrieval indexes,
  • better prompts,
  • better search policies,
  • better verifier composition,
  • new specialists,
  • new competence boundaries,
  • better escalation behavior.

That is still learning at the system level.

The architecture does not depend on the model weights changing.


Local Models Make This Especially Interesting

If you run local models, sandboxed acquisition can exploit otherwise idle compute.

For example:

production traffic low
acquisition scheduler receives spare GPU budget
run held-out sandbox experiments
cache model responses
verify outcomes
update evidence store

But Step 21 still applies.

Acquisition is opportunistic work.

It must yield to production and protected verification capacity.

Do not let self-improvement experiments become the noisy neighbor that damages the service being improved.


Cache Experiments Carefully

Repeated capability tests often reuse:

  • the same repository snapshot,
  • the same prompt,
  • the same model,
  • the same policy,
  • the same tool state.

Caching can save huge amounts of compute.

But cache identity must include the behavioral inputs that matter.

At minimum:

model version
prompt hash
input artifact hash
tool schema version
policy version
environment hash
sampling configuration

Do not reuse cached results across incompatible behavioral releases and call that fresh evidence.


Synthetic Tasks Have a Role

Synthetic tasks can be excellent for:

  • boundary exploration,
  • failure injection,
  • rare edge cases,
  • systematic parameter sweeps,
  • safety tests.

But synthetic success alone should not justify broad production competence.

A useful evidence ordering is often:

synthetic exploration
real held-out historical tasks
shadow production tasks
limited canary authority
production evidence

Each stage answers a different question.


Real Historical Failures Are Particularly Valuable

Incident cases have one enormous advantage.

We know the old system actually failed there.

So capability acquisition can ask:

Does the candidate system now avoid the original failure?

That is stronger evidence than a vague benchmark improvement.

But do not overfit only to incidents.

Keep held-out normal tasks too.

Step 28’s remediation principle applies again.


Never Confuse Simulation Success With Production Equivalence

A sandbox necessarily differs from production.

That creates a simulation-to-reality gap.

Record the assumptions.

For example:

sandbox browser uses synthetic checkout
production browser uses live payment provider

or:

staging DB topology has 3 nodes
production has 12 nodes across regions

The competence claim should not silently generalize across that gap.

Shadow and canary stages exist for exactly this reason.


Environment Fidelity Is Part of Evidence Strength

You can represent evidence strength explicitly.

For example:

E0 synthetic
E1 recorded real task
E2 live shadow
E3 limited canary
E4 production verified

This is illustrative, not universal.

The point is that one hundred synthetic successes may not be equivalent to ten strongly verified real-world successes.

Evidence quality matters alongside quantity.


Capability Acquisition Can Discover Missing Verifiers

Sometimes the result of experimentation is:

we cannot validate this capability safely

That is important.

Maybe the agent appears able to perform the task.

But there is no sufficiently strong external verifier.

Then the correct competence decision may remain:

LIMITED

or:

UNVALIDATED

The next engineering investment should be verifier development, not more agent intelligence.

That follows directly from Step 28’s reliability economics.


Verification Capability Can Be the Bottleneck

Imagine an agent that can generate sophisticated database migration plans.

But the platform cannot reliably verify:

  • data preservation,
  • rollback correctness,
  • lock impact,
  • cross-version compatibility.

The agent’s raw capability may exceed the platform’s verification capability.

Production authority should still stop at the verifier boundary.

This gives us an important rule:

Usable competence is bounded by what the platform can verify, not merely by what the model can generate.


Acquisition Can Improve the Verifier First

Therefore capability expansion may follow this sequence:

new task family discovered
agent appears capable
verification too weak
build stronger verifier
re-run acquisition trials
collect trustworthy evidence
consider competence promotion

This is much safer than promoting capability first and hoping monitoring catches mistakes later.


Distinguish Skill Transfer From Skill Discovery

A capability proven under one condition may transfer to another.

But transfer should be tested.

For example:

Python 3.12
Python 3.13

may require modest revalidation.

Whereas:

Python service
embedded C firmware

should not inherit much competence evidence at all.

The transfer policy itself can be explicit and versioned.


Treat Transfer as Another Hypothesis

Instead of saying:

skill probably generalizes

say:

H-transfer-14:
Competence demonstrated on environment E1
transfers to environment E2
without violating SLO X.

Then test it.

That keeps generalization evidence-driven.


Cross-Agent Transfer Needs Care

Suppose specialist A learns a useful procedure.

Can specialist B use it?

Maybe.

But the evidence belongs initially to:

behavioral system A + skill version S

not automatically to:

behavioral system B + skill version S

Different models may interpret the same procedure differently.

Different tools may create different failure modes.

Different prompts may change behavior.

Revalidate transferred skills.


Multi-Agent Systems Need Joint Competence Claims

A mixture-of-agents system may contain specialists that are individually competent.

The composition can still fail.

For example:

router misroutes
specialists disagree
aggregator selects wrong answer
verifier misses conflict

So competence can exist at multiple levels:

specialist competence
router competence
aggregation competence
system competence

Capability acquisition should test the composition, not just the parts.


New Skills Can Change Scheduler Economics

A candidate capability may use much more compute.

For example:

old workflow: 2 model calls
new workflow: 18 model calls + browser + verifier

Even if verified success improves, the change may not deserve broad deployment.

Step 12 and Step 28 still apply.

Measure:

  • verified success,
  • false success,
  • UNKNOWN,
  • latency,
  • cost,
  • verifier load,
  • scheduler pressure.

Capability promotion is also an operational release decision.


Compare Against Stronger Single Models

Before promoting a complicated learned workflow, test whether a stronger single model solves the same task more cheaply and reliably.

Compare:

candidate acquired skill
        vs
stronger model
        vs
deterministic software
        vs
human escalation

The winner should be based on verified outcome and cost—not architectural excitement.


Compare Against Doing Nothing

Sometimes the correct answer is still:

keep task out of scope

If the workload is rare, high-risk, expensive to verify, and easy to escalate to a human, capability acquisition may have negative return.

That is a legitimate conclusion.

The acquisition runtime should be able to recommend:

DO_NOT_INVEST

Capability Acquisition Is Portfolio Management

There may be dozens of unsupported task clusters.

Which one should the platform explore next?

Use the same reliability-economics logic from Step 28.

Prioritize by:

  • workload frequency,
  • expected user value,
  • current failure cost,
  • verifier availability,
  • expected acquisition difficulty,
  • risk class,
  • likely authority level,
  • engineering opportunity cost.

The highest-value new capability may not be the most technically impressive one.


A Capability-Acquisition Scheduler

At a high level:

class CapabilityAcquisitionScheduler:
    def choose_next(self, candidates):
        eligible = [
            c for c in candidates
            if c.sandboxable
            and c.verifier_available
            and not c.hard_excluded
        ]

        return max(
            eligible,
            key=lambda c: c.expected_information_value
                          * c.expected_user_value
                          / max(c.expected_cost, 1e-9),
        )

Do not mistake the formula for truth.

The useful part is making assumptions explicit.

Real systems should use ranges, uncertainty, and hard constraints rather than fake precision.


Failure Modes

Sandboxed capability acquisition introduces its own failure modes.

1. Self-certification

agent succeeds
agent says it is competent
platform expands authority

Fix:

Keep promotion external.

2. Benchmark overfitting

The agent repeatedly sees the promotion cases.

Fix:

Separate development and held-out evidence mechanically.

3. Sandbox escape

Experimental code or tools gain unintended production access.

Fix:

Enforce authority at infrastructure boundaries, not through prompts.

4. Verifier gaming

The candidate finds ways to satisfy weak checks without solving the task.

Fix:

Strengthen independent verification and add adversarial cases.

5. Capability leakage

Experimental memory, prompts, tools, or policies enter production before promotion.

Fix:

Quarantine experimental artifacts.

6. Overgeneralization

A narrow success is promoted into a broad competence claim.

Fix:

Promote the smallest claim supported by evidence.

7. Synthetic overconfidence

Simulation results are treated as production evidence.

Fix:

Track environment fidelity and require shadow/canary transfer evidence.

8. Promotion pressure

The acquisition system is rewarded for number of skills promoted.

Fix:

Optimize for validated useful capability and penalize false competence.

9. Infinite experimentation

The system keeps searching because there is always another variant.

Fix:

Use budgets and information-value stop rules.

10. Authority creep

Every competence improvement automatically raises autonomy.

Fix:

Keep competence and authority promotion separate.


Failure Injection

Test the acquisition system itself.

Inject situations such as:

  • sandbox receives a production credential accidentally,
  • candidate attempts disallowed network access,
  • held-out task leaks into development memory,
  • verifier returns an incorrect PASS,
  • candidate modifies verifier configuration,
  • environment hash changes mid-trial,
  • duplicate trial is recorded twice,
  • promotion evidence lacks provenance,
  • release changes after benchmark completion,
  • authority policy attempts to auto-expand,
  • shadow output attempts an external mutation,
  • canary task falls outside proposed cohort,
  • error budget enters FREEZE during promotion.

The platform should respond predictably.


Hard Invariants

A production capability-acquisition runtime should probably have invariants like:

candidate cannot modify promotion policy
candidate cannot modify competence state directly
candidate cannot modify authority state directly
sandbox cannot hold prohibited production credentials
held-out promotion data is inaccessible to adaptation runtime
verifier evidence binds to exact candidate artifact
missing verification never becomes PASS
sandbox outputs are quarantined until promotion
promotion requires versioned evidence
production authority never exceeds authority policy
severe sandbox violations block promotion

These should be deterministic checks.

Do not delegate them to an LLM.


A Minimal Architecture

You do not need an enormous self-improvement platform on day one.

Start with:

competence registry
unvalidated task queue
isolated sandbox runner
external verifier
evidence store
manual promotion review

That already gives you a disciplined learning loop.

Then add only what evidence justifies:

  • experiment selection,
  • automatic benchmark generation,
  • active boundary testing,
  • shadow execution,
  • canary authority,
  • automated promotion gates,
  • skill registries,
  • learned acquisition policies.

Do not begin with the most autonomous version.


A More Complete Architecture

At scale:

                    production task
                          |
                  competence resolver
                          |
             +------------+------------+
             |                         |
         in-envelope                out-of-envelope
             |                         |
      production runtime       acquisition candidate
                                       |
                               experiment scheduler
                                       |
                               sandbox execution
                                       |
                                external verifier
                                       |
                                  evidence store
                                       |
                          candidate competence claim
                                       |
                               promotion evaluator
                                       |
                    +------------------+------------------+
                    |                                     |
                 reject                              shadow/canary
                                                          |
                                                   competence update
                                                          |
                                                   authority review

The important boundaries remain visible.


What This Buys You

This architecture gives you a path between two bad extremes.

Extreme one:

agent cannot do unsupported task
permanent refusal

Extreme two:

agent encounters unsupported task
tries it live
if it works, assumes competence

Sandboxed acquisition gives us:

unsupported
explore safely
measure
repeat
validate
propose promotion
independent authority decision

That is a much more credible model of agent learning.


The Deeper Point: Learning Is Not Permission

This is the principle worth keeping.

A system can discover a capability without receiving permission to exercise it.

A model can improve without changing the production contract.

An agent can generate a better workflow without installing it.

A specialist can emerge without becoming routable.

A new skill can pass sandbox tests without receiving mutation credentials.

Learning and authority are separate state transitions.

That separation is one of the most important design choices in advanced-agent architecture.


The Complete Loop So Far

We now have a much richer runtime:

request
competence check
in-envelope? ────────────── no ──────────────┐
  |                                          |
 yes                                  sandbox acquisition
  |                                          |
route                                         ↓
  ↓                                  external verification
plan                                          ↓
  ↓                                  evidence accumulation
search                                        ↓
  ↓                                  competence proposal
act                                           ↓
  ↓                                  independent promotion
verify                                        ↓
  ↓                                     envelope update
observe                                       |
  ↓                                           |
SLOs / drift / incidents <────────────────────┘

And authority remains external throughout.


The Rule

If you remember only one thing from this post, remember this:

Let the agent discover capability in a sandbox. Let evidence establish competence. Let an independent policy grant authority. Never collapse those three steps into one.

That is how an advanced agent can become more capable without becoming self-authorizing.

And it gives us the next problem.

Once a system can safely accumulate candidate capabilities, we need to decide what it should learn next.

Not every unsupported task deserves investment.

Not every new skill has equal value.

Not every capability should be optimized merely because it is technically possible.

The next stage is therefore capability portfolio planning:

How should an agent platform choose which missing capabilities to acquire, which to leave to humans or deterministic software, and which to reject permanently?