Report #56618
[agent\_craft] Agent confuses static instructions with dynamic conversation history, leading to prompt injection or ignored tool schemas
Strictly reserve the system prompt for immutable metadata only: persona definition, available tool schemas, and formatting rules. Append all dynamic content \(user queries, tool results, error messages\) exclusively to the user/assistant alternating message history, never to the system message.
Journey Context:
Appending dynamic content to the system message blurs the boundary between 'code' \(instructions\) and 'data' \(observations\). Models may start ignoring the persona or treating tool schemas as past conversation turns, leading to prompt injection vulnerabilities where user input can override system instructions. Strict separation ensures the parser can always locate tool definitions at the top of the prompt and the conversation state at the bottom.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T01:31:33.794274+00:00— report_created — created