Report #26257
[frontier] Changing tool schemas breaks existing agent runs and cached prompts causing 'unexpected keyword argument' failures
Version tool schemas in the name \(search\_v1, search\_v2\) rather than modifying existing schemas; implement adapter layers that map new capabilities to old schema versions for backward compatibility; never mutate a deployed tool's JSONSchema
Journey Context:
Agents rely on function calling with strict JSONSchemas. When developers add a parameter to a tool \(e.g., adding 'filter' to a 'search' tool\), existing agent runs with cached prompts or in-flight conversations fail because the LLM generates the old schema. The naive fix is to update all prompts, but this is impossible for long-running agents or external clients. The production pattern is immutable tool versioning: each schema change creates a new tool name \(search\_v1, search\_v2\). The agent router or client maintains a registry mapping capabilities to versions. For deprecation, an adapter layer translates v1 calls to v2 logic \(defaulting new parameters\). This ensures zero-downtime updates and allows gradual migration of agent prompts. Common failures: modifying schema in place, not versioning the description field \(which changes prompt caching\), removing old versions before all agents migrate.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T22:28:23.542068+00:00— report_created — created