Skip to main content
LatinFlash Research Paper 2026-10 · Technical Audit Series Published Article · Technical Audit

Cross-Version Evaluation of Guardrail Execution Precedence and External Side-Effect Commitment in Agent Runners

An Empirical Audit of OpenAI Agents SDK Releases v0.20.0, v0.21.1, and v0.22.3 with Process-Isolated Localhost HTTP Microservice Telemetry.

Abstract & Central Claim

Input guardrails are designed to intercept policy-violating inputs before an AI agent executes state-modifying actions. This paper evaluates whether the OpenAI Agents SDK across three audited releases (v0.20.0, v0.21.1, v0.22.3) establishes a structural happens-before guarantee (T1 ≺ T3) ensuring that input guardrail evaluation (T1) strictly precedes tool side-effect commitment (T3).

Central Claim:
In OpenAI Agents SDK v0.20.0, v0.21.1, and v0.22.3 under default parallel execution mode (run_in_parallel=True), no pre-commit authorization barrier exists between input guardrail evaluation and tool dispatch.

For all 300 parallel DENY trials in the forensic replication suite (100 per version), tool HTTP dispatch was initiated (T2) before the guardrail verdict was logged (T1) inside the runner. Furthermore, for all trials where full transport and server event correlation was confirmed, the HTTP side effect (T3) was committed to the local service before the runner communicated the tripwire exception (T4).

Conversely, configuring sequential mode (run_in_parallel=False) or implementing an explicit pre-commit authorization barrier yielded 0 committed HTTP side effects on DENY across all evaluated releases.

Using an independent process-level HTTP microservice hosted on localhost (127.0.0.1:8888) with permanent append-only server logging, we evaluated a multi-stage experimental corpus comprising 2,000 original evaluable trials, a 900-trial forensic replication suite, 100 non-assessable streaming cases, and 300 unexecuted timeout trials across seven experimental conditions.

1. Introduction & Problem Statement

Agent orchestration frameworks delegate multi-step decision loops to Large Language Models (LLMs). When agents interact with external APIs, databases, or financial services, security governance requires strict control plane invariants:

Guardrail Evaluation (T1) ≺ Tool Side-Effect Commitment (T3)

Audit A02-07 documented that v0.22.3 under parallel execution lacked a synchronization barrier prior to tool execution. Audit A02-08 investigates whether this behavior is an isolated artifact of v0.22.3 or a persistent architectural trait across multiple SDK releases, and evaluates its impact when tools interact with process-isolated HTTP network endpoints.

2. Experimental Corpus Accounting (N = 3,300 Total Scope)

To maintain strict scientific rigor and transparency, the experimental corpus is categorized into four distinct accounting categories:

Corpus Category Trial Count Audited Conditions Scope, Storage & Verification Status
Original Evaluated Corpus 2,000 trials Conditions A, B, C, D1, D2, E, G across 3 SDK versions Remediation harness executions; individually preserved in local JSON traces.
Forensic Replication Corpus 900 trials Conditions A, B, D2 across 3 SDK versions Separately executed forensic suite; 300 Condition A commits matched 1:1 against external_service_audit_master.db.
Non-Assessable Cases 100 cases Condition G (Streaming) in v0.20.0 Marked NOT_ASSESSABLE by harness due to stream event schema differences; zero individual trial JSON traces generated.
Unexecuted Conditions 300 trials Condition F (Timeout / Retry) Excluded from scope; strictly documented as never executed.

Note: The 300 master-DB matches belong strictly to the 900-trial forensic replication suite. The 2,000 original evaluable trials are preserved separately in JSON traces.

3. Chronological vs. Causal Evidence Synthesis

3.1 Within-Runner Monotonic Initiation (T2 < T1)

Inside the runner process using high-resolution monotonic timestamps, we measure the relative sequence between tool HTTP dispatch initiation (T2) and guardrail verdict logging (T1):

  • Observed Rate: In 100/100 parallel DENY trials per SDK version (300/300 total across v0.20.0, v0.21.1, and v0.22.3 in the forensic replication), T2 < T1 was recorded under the tested 50ms guardrail vs 5ms tool latency parameterization.
  • Scientific Boundary: T2 < T1 demonstrates that tool HTTP dispatch was initiated before the guardrail finished evaluation. Because clocks across independent OS processes cannot be assumed synchronized without physical cross-process hardware clocks, T2 < T1 alone must never be used to claim server-side commitment before verdict (T3 < T1).

3.2 Cross-Process Causal Transport & Exception Precedence (T3 ≺ T4)

Using correlated trial IDs, request headers, and idempotency keys across process boundaries:

Runner Dispatch (T2) ≺ Server Socket Receive (SREC) ≺ Server Commit (T3) ≺ HTTP Response (T2,resp) ≺ Tripwire Exception (T4)

For trials where full transport and server event correlation was confirmed (the 300 Condition A parallel DENY forensic trials):

  1. The tool function sends the HTTP request (T2) and awaits the HTTP response (T2,resp) before returning.
  2. The server receives (SREC), commits (T3), and logs the event in the master database prior to responding.
  3. The runner only communicates/raises the InputGuardrailTripwireTriggered exception (T4) after asyncio.gather collects task results.

Therefore, for all verified trials with confirmed HTTP responses, external side-effect commitment (T3) is causally established prior to tripwire observation (T4).

4. Multi-Version Empirical Findings Matrix

SDK Version Condition Execution Mode Within-Runner T2 < T1 Initiation Verified HTTP Commits Master DB 1:1 Matched Tripwire Exception (T4) Outcome
v0.20.0 A (Parallel DENY) Non-streaming 100/100 100/100 100/100 100/100 Precedence Violated (T3 ≺ T4)
v0.20.0 B (Sequential DENY) Non-streaming 0/100 0/100 0/0 100/100 0 Commits Observed
v0.20.0 D2 (Barrier DENY) Non-streaming 100/100 0/100 0/0 100/100 Barrier Blocked
v0.21.1 A (Parallel DENY) Non-streaming 100/100 100/100 100/100 100/100 Precedence Violated (T3 ≺ T4)
v0.21.1 B (Sequential DENY) Non-streaming 0/100 0/100 0/0 100/100 0 Commits Observed
v0.21.1 D2 (Barrier DENY) Non-streaming 100/100 0/100 0/0 100/100 Barrier Blocked
v0.22.3 A (Parallel DENY) Non-streaming 100/100 100/100 100/100 100/100 Precedence Violated (T3 ≺ T4)
v0.22.3 B (Sequential DENY) Non-streaming 0/100 0/100 0/0 100/100 0 Commits Observed
v0.22.3 D2 (Barrier DENY) Non-streaming 100/100 0/100 0/0 100/100 Barrier Blocked

5. Automated Adversarial Assessment Note (JEV)

The TypeSafe AI JEV adversarial service conducted an automated evaluation (jev-1.13.0, 6,165 input tokens, HTTP status 200 OK) of the preliminary A02-08 report and initial harness code. The automated model output attributed the observed behavior to the SDK's asyncio task scheduling structure under default parallel configuration.

Limitations of the JEV Assessment:
  • JEV evaluated only the preliminary report text and initial harness code.
  • JEV did not evaluate the 900-trial forensic replication suite.
  • JEV did not inspect or verify the permanent SQLite master database (external_service_audit_master.db).
  • JEV did not evaluate the corrected cross-process temporal instrumentation or causal transport analysis.
  • JEV's output represents an automated model-based code review, not a formal mathematical proof or independent manual code verification.

6. Scope Boundaries & Methodological Limitations

  1. Localhost Process-Level Scope: The target HTTP microservice was hosted locally on localhost (127.0.0.1:8888). No remote internet endpoints or production third-party systems were contacted.
  2. Synthetic Latency Ratios: The 100/100 violation rate under parallel DENY is conditional on the tested 50ms guardrail vs 5ms tool latency parameterization and does not represent a static probability for arbitrary network conditions.
  3. Audited Version Bounds: Empirical observations apply strictly to OpenAI Agents SDK releases v0.20.0, v0.21.1, and v0.22.3.

8. Methodology, Reproducibility & Data Availability

  • Execution Environment: Windows 11 AMD64, Python 3.11.15, OpenAI Agents SDK releases v0.20.0, v0.21.1, and v0.22.3 isolated in versioned virtual environments.
  • Model Adapter: Offline deterministic adapter (ScriptedModelAdapter) generating constant function-call decisions to eliminate LLM non-determinism.
  • HTTP Microservice: Process-isolated Python HTTP server (local_http_service.py) maintaining a WAL-mode append-only SQLite database (external_service_audit_master.db).
  • Reproducibility Material: Full test harnesses (a02_08_remediation_harness.py), evidence manifest (A02-08_EVIDENCE_MANIFEST.json), and master database are archived locally. Private raw traces and API credentials are withheld to maintain security governance.