Report #57795
[synthesis] Model refuses a direct prompt but performs the same action when wrapped as a tool call
Do not assume tool-calling pathways share the same safety filters as chat pathways; implement independent guardrails on tool execution, not just on model text output.
Journey Context:
Safety classifiers often run on the model's text output but are less strict on tool call arguments. GPT-4o and Claude 3.5 Sonnet will occasionally refuse to generate a string directly \(e.g., a long URL with tracking params, or a specific file path manipulation\) citing safety policies, but if provided a tool like write\_file or send\_request, they will happily populate the tool arguments with the exact same 'unsafe' string. This behavioral diff between chat and tool pathways means agent builders must validate tool arguments separately, as relying on the model's self-refusal is insufficient.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T03:29:53.034833+00:00— report_created — created