Report #70675
[synthesis] Cross-model agent passes system instructions as a system role message but Claude underweights or mishandles them
For Claude, use the top-level system parameter in the API request instead of a system role message in the messages array. Build an adapter layer that routes system instructions to the correct parameter based on model provider.
Journey Context:
GPT-4o uses a message with role='system' in the messages array. Claude uses a separate top-level system parameter. Naively passing GPT-4o-style system messages to Claude either causes API errors or results in significantly weaker instruction following because Claude treats in-conversation system messages differently from its dedicated system parameter. The system parameter in Claude has stronger behavioral influence than a system role message. Building an adapter that maps system content to the correct parameter per provider is essential for cross-model agent frameworks and is the most common missing piece in naive multi-model wrappers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:12:18.537401+00:00— report_created — created