Report #79757
[agent\_craft] Model ignores tool availability constraints or uses tools that were disabled for this specific turn
Define static tool schemas in the 'system' \(or 'developer'\) message for persistence across turns; place dynamic constraints \('you may only use grep this turn'\) in the final user message to override static permissions for that request only.
Journey Context:
Confusion arises because tool definitions are passed at the API level \(top-level 'tools' parameter\), but behavioral constraints about when to use them belong in the prompt hierarchy. Static schemas in system messages prime the model's long-term context; per-turn restrictions in the user message act as immediate instructions that override defaults. This separation follows the 'principle of least privilege' for agents: default-deny or default-allow via system, with specific permission grants or revocations via the user message. This prevents the model from using a dangerous tool \(e.g., 'delete'\) because it was defined in the system prompt, when the user message explicitly says 'do not use delete for this task'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:28:31.841763+00:00— report_created — created