LLM agents increasingly perform consequential actions through external tools, yet their proposed actions are often executed without independent verification of policy compliance or task completion. We introduce JevAct, a runtime verification framework that intercepts selected agent actions before execution and enables feedback-driven correction. JevAct compiles domain policies into executable state checks and structured questions evaluated by a prefill-only decision model, which produces probability-based judgments without relying on LLM generation. By combining deterministic verification of tool-state facts with probabilistic assessment of conversational context, the framework identifies potentially invalid actions and premature task termination, providing targeted feedback for bounded revision. JevAct operates independently of the underlying agent model and requires no modifications to its parameters or tools. We evaluate JevAct across eleven LLM agents on τ2-bench Airline and Telecom tasks and BFCL. Results show improvements in agent reliability across multiple models and benchmarks, with particularly consistent gains on Telecom and BFCL, while performance on Airline is more mixed. Overall, these findings suggest that combining structured decision models with executable verification can improve the reliability of tool-using LLM agents.
Figures & tables
Figure 1: pass^3 results from Table 2 .
Figure 2: JevAct. Offline (top), an LLM compiles the policy into checks. Online (bottom), the agent’s proposal goes through four stages: (1) propose, (2) trigger, (3) check when required, and (4) commit or revise. Proposals without a write call or hand-off are executed as in ReAct. A flagged proposal is discarded, and the LLM proposes again with temporary feedback.
Benchmark
Check
Compiled items
τ2 Airline
write gate
6 write tools, 86 questions (17)
τ2 Telecom
write gate
6 write tools, 75 questions (5)
hand-off check
8 problem types, checklist steps (7 dropped)
BFCL
end-of-turn check
–
requested-action gate
–
Table 1: Checks per benchmark, with the number of compiled items (dropped items in parentheses).
pass@3
pass^3
Benchmark
Model
ReAct
JevAct
ReAct
JevAct
τ2 Airline
GPT-4.1
66.0
82.0
36.0
46.0
Opus 4.6
84.0
92.0
72.0
76.0
gpt-oss-20b
66.0
70.0
48.0
44.0
gpt-oss-120b
68.0
66.0
42.0
50.0
Qwen3.8-27B
90.0
90.0
74.0
76.0
Table 2: Main results (%). pass@3: tasks solved in at least one of three runs. pass^3: tasks solved in all three runs. Both arms use the same LLM and differ only in the harness; the higher value of each pair is in bold .
pass^1
Flags per task
ReAct
50.0
–
JevAct (same configuration as Table 2 )
72.0
0.38
Code checks only
68.0
0.28
Kev-27B questions only
57.1
0.29
Kev-9B instead of Kev-27B
58.0
0.22
One revision instead of two
68.0
0.32
Table 3: Single-trial write-gate ablation on Airline with GPT-4.1 as the agent. The experiment uses the same configuration as Table 2 (code checks, Kev-27B, and R=2 ).
Appendix figures & tables3 assets
Supplementary material from the paper’s appendix.
Appendix
Step
Reads
Writes
Labels
1. Questions
policy; write-tool schemas
questions per write tool
none
2. Rule
policy; step-1 questions
allow rule per write tool
none
3. Code
policy, schemas; one read result per tool
derive_<tool> function per write tool
none
4. Repair
code and flags on logged calls
repaired code
none
5. Filter
Kev answers on logged write calls
questions to drop
none
6a. Prerequisites
policy; tool names (Telecom only)
prerequisites
none
Appendix
Table 6: The offline compilation workflow. “Logged” calls and hand-offs come from development runs. Telecom step 6 also includes a separate prerequisite-extraction call.
Kev-27B
Kev-9B
Kev-0.8B
Hand-offs flagged
371
369
342
Same flag/pass decision as Kev-27B
–
97.0%
90.6%
Required fixes caught (of 533)
319
316
299
Unneeded fixes flagged (of 245)
193
195
170
Failed episodes incorrectly marked fixed (of 380)
0
0
11
Appendix
Table 7: Offline replay of the same 609 telecom hand-off states for each Kev size.
ReAct
JevAct
Model
Model
Kev
Drafts
Not
Benchmark
Model
in
out
in
out
in
sent back
rebuilt
τ2 -bench airline 50 tasks × 3
GPT-4.1
58.4
0.9
60.1
0.9
9.0
0.39
0
Opus 4.6
64.6
1.5
64.1
1.5
6.7
0.08
0
gpt-oss-20b
50.4
3.0
56.8
3.4
5.2
0.19
0
gpt-oss-120b
44.1
2.5
43.8
2.6
6.5
0.36
0
Appendix
Table 9: Mean tokens per run, in thousands, for the runs in Table 2 . Agent usage is logged; Kev input is logged on τ2 -bench and rebuilt on BFCL. Drafts sent back and checks not rebuilt are counts per run.
Large Language Model (LLM) agents rely on external tools to perform multistage tasks. Existing agent frameworks typically assume that tool calls are atomic and return binary success or failure signals. However, real-world systems exhibit non-atomic behaviors such as timeouts after dispatch, delayed visibility, and partial state updates. These mismatches lead to reliability issues including duplicate actions, task success, and unnecessary tool executions. A lightweight, verification-aware tool wrapper is introduced that augments tool calls with postcondition verification, verify-before-retry logic, and idempotency keys. The approach is evaluated in a controlled simulated environment with injected non-atomic failures across multiple task templates. The results demonstrate that the proposed method significantly reduces duplicate actions, while maintaining comparable task success rates. Overall, the findings suggest that strengthening tool interaction semantics is a promising direction for improving LLM agent reliability without requiring modifications to the underlying language model.
Department of Computer Science Old Dominion University Norfolk, VA 23529 · School of Engineering and Computing Christopher Newport University Newport News, VA 23606
An LLM agent acts on the world by emitting actions: shell commands to run, edits to apply. A wrong action does not always fail loudly; it can fail silently, producing a plausible but incorrect effect that raises no error. We argue that a cheap deterministic check, run before an action takes effect, is an effective and underused form of agent oversight, and we study it across two action modalities in one framework. The idea is to fix an action's correct effect by construction, before any executor runs, so that silent failure is measured directly and the verifier may abstain rather than guess. For shell commands, a static verifier over 9930 commands and 482 tools catches 95.8% of invalid commands at a 10.0% false-positive rate. Its syntax and binary checks are oracle-exact, giving zero false positives while catching half of all errors; the flag check is bounded only by help-text coverage and accounts for every false positive. For code edits, a benchmark of 640 edits over 224 files isolating the apply step exposes a sharp split. Content-anchored formats such as search/replace and diff fail cleanly, whereas location-anchored formats fail silently: line numbers corrupt 99.1% of files under a one-line shift, and function-name edits hit the wrong function 12.7% of the time. In both settings a refuse-when-unsure policy turns silent failures into recoverable ones at a tunable cost in applicability: selective grounding reaches 0.958 recall at 7.0% false positives, and an anchor-and-verify applier records one silent misapplication in 8320 trials (0.01%). We release both benchmarks, the verifiers, and the guards.
Automated evaluation of tool-using large language model (LLM) agents is widely assumed to be reliable, but this assumption has rarely been validated against human annotation. We introduce AgentProp-Bench, a 2,000-task benchmark with 2,300 traces across four domains, nine production LLMs, and a 100-label human-validated subset. We quantify judge reliability, characterize error propagation, and evaluate a runtime mitigation. Substring-based judging agrees with human annotation at kappa=0.049 (chance-level); a three-LLM ensemble reaches kappa=0.432 (moderate) with a conservative bias. Under validated evaluation, a parameter-level injection propagates to a wrong final answer with human-calibrated probability approximately 0.62 (range 0.46-0.73 across models). Rejection (catching bad parameters) and recovery (correcting after acceptance) are independent model capabilities (Spearman rho=0.126, p=0.747). A tuned runtime interceptor reduces hallucination on GPT-4o-mini by 23.0 percentage points under a concurrent n=600 control, but shows no significant effect on Gemini-2.0-Flash, whose aggressive parameter rejection eliminates the target failure mode. All code, data, traces, and human labels are released at https://github.com/bhaskargurram-ai/agenthallu-bench.