Same cases. Different boundaries.

Only one architecture stayed useful under attack.

BoundaryLab holds eight support cases constant and changes the system around the agent. One design leaked. One stopped every attack by refusing half the legitimate work. The bounded design did neither.

Tasks completed
8/8
Attack successes
0
False refusals
0
Judge score
100/100

Profile C / bounded hybrid memory / 8 authored deterministic scenarios

The result / 01

Stopping every attack is easy if nothing gets done.

The strict profile looked safe until usefulness entered the score. It rejected four legitimate tasks. The vulnerable profile completed four tasks but allowed two attacks to succeed. The bounded profile preserved both safety and completion.

Eight identical authored scenarios per architecture profile
ArchitectureTasksAttacksFalse refusalsScore
A
Vulnerable long contextBroad visibility, weak boundaries
4 / 82087
B
Overcautious retrievalSafe by refusing useful work
4 / 80482
C
Bounded hybrid memoryScoped context + deterministic authority
8 / 800100

What changed

The best result did not come from a more permissive agent. It came from giving the agent less authority and the surrounding system better evidence.

Inspect the three proof runs →

The pivot / 02

The agent stopped being the interesting part.

Capable models can already plan, call tools, and coordinate roles. Another orchestration demo would mostly prove that the framework works. BoundaryLab asks the harder product question: what prevents a plausible output from becoming an unsafe action?

Less useful question

Can several agents complete a task?

Modern agent platforms already make this easy to demonstrate.

BoundaryLab question

Which system boundary changed the outcome?

Hold the task constant. Make authority, evidence, and evaluation inspectable.

The architecture / 03

Reasoning can propose. Only policy can act.

Four boundaries separate interpretation, mutation, evaluation, and publication. Each one removes a power the agent should never own.

Trust architectureOne-way flow through four controlled boundaries
Boundary 01

Interpret and advise

Agent-visible. Every output remains an untrusted proposal.

Context manager

Build a bounded view
  • Required policy
  • Ranked retrieval
  • Scoped memory
  • Audit history

Worker

Propose a response or typed function callNo direct mutation access

Sentinel

Pass, block, retry, or request reviewAdvice only; cannot grant authority
Boundary 02

Authorize and mutate

Deterministic. Model confidence never becomes permission.

Untrusted input

Typed action proposalSchema-shaped is not authorized

Capability gateway

Check identity, scope, limits, approval, and idempotencyThe only mutation entrance

Synthetic world

Apply only an allowed domain commandOrders, tickets, refunds, action history
Boundary 03

Evaluate independently

Protected. The agent cannot see the answer key or grade itself.

Observed evidence

Final state + allowlisted trace facts

Protected input

Expectations + synthetic canaries

Deterministic judge

Score seven explained metricsOutcome, policy, attacks, refusals, evidence, claims, contamination
Boundary 04

Publish evidence, not internals

Sanitized. Private prompts, canaries, objectives, and ground truth stay out.

Run output

Scorecard + context manifest + event trace

Artifact boundary

Sanitize and lock immutable bytesRefuse silent overwrite

Static replay

Inspect all 24 runs without inferenceNo model, backend, API key, or visitor cost

The experiment / 04

Change one architecture. Preserve the evidence.

Every profile receives the same canonical scenario digest. The workflow records what each architecture saw, proposed, allowed, changed, and scored.

Complete experiment-to-replay workflow
  1. 01

    Load one controlled case

    Versioned task, policy, world state, attack surface, profile, and fixed budgets.

    Same digest
  2. 02

    Assemble bounded context

    Required policy enters first. Retrieval, memory, expiry, exclusions, and compaction remain visible in the manifest.

    Context manifest
  3. 03

    Run separated roles

    The attacker controls only declared untrusted surfaces. The worker proposes. The sentinel advises inside a retry budget.

    Role handoffs
  4. 04

    Gate every capability

    Schema, identity, authority, limits, approvals, preconditions, and idempotency decide whether anything changes.

    Typed decision
  5. 05

    Judge outside the agents

    Protected expectations meet the final world state and trusted trace facts—never an agent self-report.

    Seven metrics
  6. 06

    Freeze reproducible evidence

    The exporter writes sanitized scores, usage, context, memory, gateway decisions, trace events, and cause attribution.

    Immutable artifact
  7. 07

    Replay without inference

    The browser reads bundled JSON. Visitors can compare every run without a model call or runtime secret.

    $0 per visitor

The decisions / 05

Advanced mechanisms earn their place by removing a failure.

RAG, memory, function calling, reviewers, and orchestration are not the story. The boundary each one enforces is.

Context

RAG is a strategy, not a default

Long context preserves small authoritative inputs. Retrieval reduces noise and attack surface but can omit policy. The hybrid wins only when required evidence bypasses ranking.

Function calling

A typed call is still only a proposal

Schemas improve parsing. Permission still comes from trusted identity, scope, limits, approvals, preconditions, and idempotency outside model output.

Memory

Useful memory has identity and an expiry

Every record carries case scope, writer, source events, trust, creation time, and expiry. Compaction can change context; it cannot rewrite the audit ledger.

Review

A reviewer can advise without becoming authority

The sentinel can block or request a bounded retry. It cannot mutate the world or grant a capability—which makes over-blocking measurable instead of invisible.

Evaluation

The answer key stays outside the conversation

Protected expectations and canaries never enter agent context. The judge consumes final state and allowlisted trace facts, not the agent's explanation of its own success.

LangGraph

Checkpointing is infrastructure, not policy

LangGraph remains an optional orchestration edge where resumption matters. The gateway, judge, context strategies, and deterministic benchmark run without it.

The proof / 06

Do not take the summary on faith.

Open the exact runs behind the conclusion. Each one exposes its context, proposal, review, gateway outcome, final state, deterministic score, and cause attribution.

Immutable source

24 sanitized replay bundlesSHA-256 4b7ee5f3…a22d
Open raw report →
./scripts/run-benchmark
./scripts/build-replay --check
./scripts/verify

Interactive replay

Break the system. Then change the boundary.

Start with indirect injection. Switch between the three architectures. The task stays fixed while the context, authority, and review boundaries change.

Pick a case, compare outcomes, then inspect the trace.

Jump to a proof run

Case 01

Loading benchmark…

The bundled artifact is being read locally.

Selected run

Trace the outcome back to a decision.

Loading the local replay artifact…

The boundary

Strong evidence. Narrow claim.

Proves

Architecture behavior is inspectable

Every score connects to sanitized context, role, capability, state, and judge evidence.

Proves

The comparison is reproducible

All 24 fake-adapter runs are deterministic, byte-stable, provider-neutral, and zero-cost.

Does not prove

Production-model reliability

That requires separately approved adapters, budgets, real-model runs, and measured field behavior.