1.7 KiB
1.7 KiB
MODEL_HINTS.md — OpenAI/GPT Tool Best Practices
Active model family: OpenAI (GPT)
When writing or evaluating skills/tools for this session, apply these rules:
Schema
- Use
parameters(notinput_schema) for tool definitions. - Always set
"strict": true— requiresadditionalProperties: falseand all fields inrequired. - For optional fields: add
nullto the type union (e.g."type": ["string", "null"]) and keep inrequired.
Descriptions
- Write clear, detailed descriptions explaining purpose, each param, and output.
- Use the system prompt to describe when (and when NOT) to use each function.
- Do not add examples in descriptions for reasoning-capable GPT models — focus on clear prose.
Tool count & loading
- Keep initially available tools under ~20 for highest accuracy.
- Use
defer_loading: true+ tool search for large tool libraries — defer rarely-used tools. - Use
namespacetype to group related tools by domain (e.g.crm,billing).
Tool design
- Use
service_resource_verbnamespacing:crm_customer_get,billing_invoice_list. - Use enums and object structure to make invalid states unrepresentable.
- Combine functions always called in sequence into one tool.
- Don't ask the model to fill args you already know — pass them in code.
Parallel calls
- Parallel tool calls are on by default. Disable with
parallel_tool_calls: falseif tools have ordering dependencies.
Safety
- Use the Moderation API (free) to filter unsafe content.
- Pass
safety_identifier(hashed user ID) with requests for abuse detection. - Human-in-the-loop for high-stakes or irreversible tool actions.
- Guard against prompt injection from tool outputs.