Report #55517
[agent\_craft] Tool definitions and critical instructions being ignored due to incorrect message role placement \(system vs user\)
For OpenAI, place tool definitions and permanent instructions in the system message; for Anthropic, place tool definitions in the top-level tools parameter and persona in system, never mixing tool XML into system prompts for Claude-3
Journey Context:
OpenAI's API uses the system message for persistent instructions and tool definitions. Anthropic's API \(Claude\) handles tool definitions separately from the system prompt; putting tool definitions inside the system message text can cause the model to ignore them or treat them as background text rather than available actions. For Claude, tools should be passed in the dedicated \`tools\` API parameter, and the system prompt should focus on persona. For OpenAI, the \`tools\` parameter is also used, but the system message can reference them. This distinction is critical when writing cross-platform agent frameworks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T23:40:55.571269+00:00— report_created — created