function calling api
Function calling APIs enable LLMs to output structured function invocations for external tool execution. **Mechanism**: Provide function schemas (name, parameters, types), model decides when to call functions, outputs structured JSON with function name and arguments, application executes function and returns results. **OpenAI format**: functions array with JSON Schema definitions, model returns function_call with name and arguments. **Use cases**: Database queries, API calls, calculations, file operations, web searches, any external capability. **Best practices**: Clear function descriptions, typed parameters, handle missing/malformed calls, validate arguments before execution. **Parallel function calling**: Some models output multiple calls simultaneously. **Forced vs optional**: Can require function use or let model decide. **Security considerations**: Validate and sanitize arguments, limit function capabilities, audit function calls. **Alternatives**: ReAct pattern with text parsing, tool tokens, structured generation. **Evolution**: Tool use increasingly native to models - Claude, GPT-4, Gemini all support robust function calling. Foundation for AI agents and autonomous systems.