Can your runtime distinguish these two successful agent runs? #427
Replies: 5 comments
Q2 — Authority RevocationWhy should I care?An AI agent receives permission to deploy. While the agent is still running, the owner revokes that permission. The dashboard now says revoked, but the agent still holds the API or RPC handle it received earlier. The agent later retries and calls
If permission was checked only when the task started, changing a status in the dashboard may not stop the old handle from being used. The system needs a real permission check before the dangerous action. The paired-world testTwo worlds expose the same plan, local state, tools, and executor-visible context:
What mechanism distinguishes the two worlds? Where does the current permission live, and where is it checked before the action occurs? What counts as an answer?A useful answer can be simple:
Name the check, where it runs, and what action it blocks. The mechanism does not have to be KFD. Optional: vendor counterexamples and implementation patternsCloudflare Dynamic Workers — application-owned permission checkCloudflare Dynamic Workers allows the loader application to provide custom bindings whose host-side implementation can inspect, transform, or reject a call before it reaches the underlying resource. An application can therefore check its current grant inside that binding:
Declared boundary: Dynamic Worker + loader-owned custom binding + application-owned current-grant state. Q2 result: the composed application can distinguish the two worlds. The revocation decision belongs to the application-owned check. Public sources:
This is a valid answer to Q2. It does not require KFD and should not be described as a Cloudflare failure. Future vendor or runtime counterexamples can be added below using the same format: |
Q3 — Causal HistoryWhy should I care?An earlier agent run produced a passing test report. The current task looks similar, so the system reuses that report even though the requirement, code, or attempt has changed.
If evidence is stored without the exact task version and attempt that produced it, a valid-looking result can be attached to work it never tested. The paired-world testTwo worlds expose the same artifact, test output, log, or apparent result:
What mechanism binds evidence to the history it is claimed to prove? Where is that binding checked so evidence cannot be reassigned to a different work version or attempt? What counts as an answer?A useful answer can be simple:
Name the binding, where it is checked, and what claim the evidence is not allowed to approve. The mechanism does not have to be KFD. Optional: vendor counterexamples and implementation patternsFuture vendor or runtime counterexamples can be added here using this format: |
Q4 — Retry IdentityWhy should I care?An agent sends a payment or deployment request. The response times out, so the agent retries. The first request actually succeeded, and the retry performs the action again.
If the system cannot identify the original action across retries, a normal recovery attempt can create a duplicate payment, deployment, email, or deletion. The paired-world testTwo worlds expose the same queued operation, checkpoint, or retry request:
What stable identity and settlement mechanism distinguishes continuation from duplication across retries and executor replacement? Where is the duplicate prevented before the external effect, rather than merely detected afterward? What counts as an answer?A useful answer can be simple:
Name the operation identity, where success is recorded, and where the duplicate is blocked. The mechanism does not have to be KFD. Optional: vendor counterexamples and implementation patternsFuture vendor or runtime counterexamples can be added here using this format: |
Q5 — Recovery DriftWhy should I care?An agent pauses and later resumes from the same checkpoint. While it was offline, the requirements, permissions, dependencies, or production state changed.
Restoring the same execution state does not restore the world that made the plan valid. Resuming without a current check can continue obsolete or unsafe work. The paired-world testTwo worlds restore the same serialized checkpoint and execution state:
What mechanism detects the semantic drift and decides whether to resume, rebase, reauthorize, or stop? Can it do so after executor replacement without asking a human to reconstruct the original work and every intervening change? What counts as an answer?A useful answer can be simple:
Name what is re-checked, where the current state comes from, and what change forces the resume to stop or rebase. The mechanism does not have to be KFD. Optional: vendor counterexamples and implementation patternsFuture vendor or runtime counterexamples can be added here using this format: |
Q6 — Accepted CompletionWhy should I care?An agent creates an output and reports done, but the owner has not reviewed it or has already rejected it. The dashboard trusts the producer's success status and closes the work.
If producing an output is enough to declare completion, the same agent can become both worker and final judge. The paired-world testTwo worlds expose the same output artifact and apparently successful execution:
What mechanism represents accepted completion independently of the producing executor? Where is that acceptance bound and enforced so stale workers cannot continue or claim completion from output existence alone? What counts as an answer?A useful answer can be simple:
Name who or what may accept the result, how acceptance is bound to the current work, and where an unaccepted result is prevented from becoming complete. The mechanism does not have to be KFD. Optional: vendor counterexamples and implementation patternsFuture vendor or runtime counterexamples can be added here using this format: |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The challenge
Two Agent runs produce the same patch, passing tests, and successful execution status.
One may advance; the other must stop, rebase, or be rejected. If the tested system sees the same state in both worlds, it must continue both, stop both, or ask a human to reconstruct the missing distinction.
The hard question is not whether these facts can be stored. It is which object is authoritative when workflow history, task state, IAM, evaluator, artifact store, and owner disagree—and where that precedence is enforced before an irreversible action.
Reason about it in 3 or 15 minutes
You can challenge the premise without running any code. Choose one question for a quick counterexample, or scan the whole architecture boundary.
3-minute counterexample: Pick any one of Q1–Q6. Name the mechanism, link a public source coordinate, and state where it is enforced.
15-minute architecture challenge:
Defeating one pair is useful counterevidence to that pair. Distinguishing all six is an end-to-end counterexample for the named boundary. Finding a collapse is useful too: it identifies a concrete dependency rather than producing a product score. This is a stress test, not certification.
Q1 — Work Identity and Version
Why should I care?
You update or replace a task while an AI agent is still working. The old run later finishes successfully and tries to ship, even though its instruction has been superseded.
The same prompt, branch, artifacts, and executor-visible context represent:
What distinguishes them? Where is current work identity authoritatively bound and enforced before consequential action?
A useful answer can be simple:
Name the task-version record and the check that blocks obsolete work.
Q2–Q6 at a glance
Full paired-world versions of Q2–Q6 appear as maintainer comments below. Reply to one question, or post one top-level response covering all six.
What would refute the challenge finding?
For any pair, provide a projection or runnable adapter that exposes a machine-readable discriminator and produces the fixed advance/refuse decisions without human reconstruction. Distinguishing one pair is useful counterevidence to that pair. Distinguishing all six is an end-to-end counterexample for the boundary you name.
Compact reply
Claim boundary
This challenge tests only whether a declared projection distinguishes fixed paired worlds that require different decisions. It does not claim that any vendor necessarily fails, that
full-semanticis a correct policy or real enforcement point, or that KFD is the only answer. It is not certification, qualification, a security assessment, or a production-fitness claim.Optional: run or adapt the executable fixtures
Run the executable challenge in one minute
This is a separate route: run the fixed paired-world experiment before deciding whether its boundary matches your system.
From a clean temporary directory with only Node.js and npm:
Package: @kungfu-tech/kfd 1.0.0-alpha.68 · published source at gitHead 966215abb1122f8f3f36b817cfcb9ce248cb91a8
Expected finding:
accepted-completionends with1/1 COLLAPSED. The two worlds expose the same successful execution result, but one requires advance and the other requires refuse. The declaredexecution-onlyprojection therefore gives a decision function no information with which to distinguish the required decisions.No clone, provider credential, model API, or external service is needed to run the challenge. Exit
0means a valid report was formed; it does not mean the projection passed.Extend the executable challenge in 15 minutes
Install the same immutable package into a disposable consumer:
Run all six paired worlds, then a packaged projection that separates these fixed fixtures:
full-semanticis a packaged fixture projection that exposes the discriminators required by these fixed pairs. It is not proposed as a universal runtime schema or proof of a production enforcement path.Expected summaries:
execution-only:6/6 COLLAPSEDfull-semantic:6/6 INFORMATION-DISTINGUISHABLESave a report and verify its complete root closure offline:
Copy and modify the packaged projection:
cp "$(node -p "require.resolve('@kungfu-tech/kfd/delegated-work-challenge/projections/example-projection.json')")" my-projection.json npx --no-install kfd challenge delegated-work --projection ./my-projection.jsonOr copy the dependency-free Node.js adapter starter and map your own runtime into the paired worlds:
cp "$(node -p "require.resolve('@kungfu-tech/kfd/delegated-work-challenge/adapters/node-starter.mjs')")" delegated-work-adapter.mjs npx --no-install kfd challenge delegated-work --adapter ./delegated-work-adapter.mjs --output adapter-report.json npx --no-install kfd verify delegated-work-challenge-report adapter-report.json --adapter ./delegated-work-adapter.mjsThe untouched starter intentionally fails closed. An adapter result is an adopter-owned assertion bound to the exact adapter bytes, requests, responses, and transcript; it is not independent proof that a production enforcement path matches the adapter.
Post runnable reports and counterexamples in Experiments & Evidence, or submit formal counterevidence through the KFD evidence form.
All reactions