Concepts
LLM Tool Calling Function Definitions
What is a Function Definition?
JSON Schema Structure
Basic Structure
{
"name": "function_name",
"description": "What this function does",
"parameters": {
"type": "object",
"properties": {
"parameter_name": {
"type": "string|number|boolean|array|object",
"description": "What this parameter is for",
"enum": ["option1", "option2"],
"default": "default_value"
}
},
"required": ["required_parameter_names"],
"additionalProperties": false
}
}Core Fields
Parameter Types and Constraints
String Parameters
Number Parameters
Boolean Parameters
Array Parameters
Object Parameters
Enum Parameters
Complete Example
Best Practices
Clear Descriptions
Parameter Naming
Validation and Constraints
Required vs Optional
Error Prevention
Advanced Features
Conditional Parameters
Dynamic Validation
Testing Your Definitions
Troubleshooting
LLM doesn't call your function
Parameter errors
Function called incorrectly
Last updated