Report #47644
[gotcha] LLM ignores system prompt constraints because dynamically generated tool descriptions contain conflicting instructions
Treat tool descriptions \(names, descriptions, parameters\) as untrusted input. Strictly limit their length, sanitize user-influenced dynamic values, and never allow user input to bleed into tool schemas.
Journey Context:
Developers focus on the system prompt but forget that tool descriptions are also part of the prompt context. If a user can influence a tool description \(e.g., a search tool where the query becomes part of the description\), they can inject instructions there. Because tool descriptions define how the LLM should behave, instructions there often supersede the system prompt.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T10:26:49.987838+00:00— report_created — created