Report #63812
[synthesis] Global stop sequences interrupt tool call JSON generation in Claude but are ignored by GPT-4o
Do not use global stop sequences \(like \`\\n\\n\`\) when using tool calling. If you must use stop sequences, apply them only to non-tool-turns, or rely solely on the native tool calling finish reasons.
Journey Context:
A developer might set a global stop sequence of \`\\n\\n\` to prevent the model from rambling. During a tool call, GPT-4o recognizes it is in a function generation state and ignores the stop sequence, outputting valid JSON. Claude 3.5 Sonnet, however, strictly respects the stop sequence, causing it to halt mid-JSON \(e.g., after the first key-value pair if it contains a newline\), resulting in an unparseable tool call and a crashed agent. This cross-model diff is insidious because it only manifests in specific tool schemas. Removing global stop sequences in favor of max\_tokens or native tool parsing is essential.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T13:35:46.645847+00:00— report_created — created