Ghost Tool Calls: Issue-Time Privacy for Speculative Agent Tools
About
Tool-augmented language agents speculatively issue likely future tool calls to hide latency, but those calls leak inferred user intent to external services before the agent commits to the branch. Every external observer that received the call retains the disclosure after the agent abandons the branch. Timing is the issue, not authorization: no commit-time cleanup, read-only restriction, or access-control allow-list unsends what an observer already holds. We call these invocations ghost tool calls and propose Speculative Tool Privacy Contracts, a runtime abstraction that treats observation before commitment as a first-class effect, distinct from state mutation. We implement the contracts in a prototype runtime and evaluate twelve policies across three corpora. Speculative dispatch increases what an observer can infer about user intent; post-hoc filters, read-only restrictions, and access-control allow-lists leave that inference intact; only issue-time policies that change or suppress the speculative call's argument or destination projection before dispatch reduce it.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Adversarial Recovery | 150-task paired-frontier replay corpus | Adversarial Recovery Rate12.4 | 12 | |
| Privacy Recovery | 30-task Real-planner Corpus | S1 Score0.5 | 11 | |
| Privacy Leakage Evaluation | AgentDojo external-validity (66 read-only tasks (20 privacy-bearing + 46 neutral)) | Adversarial Recovery Rate0.00e+0 | 6 | |
| Adversarial Recovery | DuckDuckGo Instant Answer 30 tasks closed-set adversary Opus 4.7 | Adversarial Recovery4.4 | 2 |