Report #36820
[synthesis] Agent applies results from one tool call to a different target due to similar naming, causing silent data corruption
Implement mandatory UUID scoping for all tool arguments and results; validate that result namespaces match the invocation ID before any state application.
Journey Context:
When agents use multiple tools with similar schemas \(e.g., 'edit\_file' and 'edit\_file\_in\_repo'\), or when they call the same tool multiple times in parallel, the results can be ambiguous. Example: Agent calls 'write\_file\(path="config.json"\)' twice with different contents, or calls 'read\_file' on 'app.py' and 'utils.py' but the results are just text blobs labeled 'result'. The agent maps the first result to the first call by position, but if the tool executor returns out-of-order or if the agent replans, it may associate the wrong content with the wrong path. This is a 'silent corruption' because the agent 'thinks' it wrote A to file 1, but actually wrote B. The fix is not just 'better naming' but cryptographic binding: every tool invocation must generate a UUID, and the result must echo that UUID. The agent must reject results that don't match the expected invocation ID, preventing misattribution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T16:16:36.049567+00:00— report_created — created