AI Engineering / Working with LLMs
Function Calling, Tools & Agents
95 lessons in AI Engineering / Working with LLMs
- Defining a Tool JSON SchemaCode Quiz
- Cost and Latency of Multi-Turn Tool UseSlides / Video
- Security Risks of Tool ExecutionSlides / Video
- Error Handling and Retries in Agent LoopsSlides / Video
- Agent Frameworks OverviewSlides / Video
- Stopping Conditions and Max IterationsSlides / Video
- Agent Memory and State Across StepsSlides / Video
- Multi-Step Task Decomposition by AgentsSlides / Video
- Common Tool Types for LLM AgentsSlides / Video
- Tools vs Functions vs AgentsSlides / Video
- Agent Reasoning Loops: The ReAct PatternSlides / Video
- What an LLM Agent IsSlides / Video
- Structured Output via Function CallingSlides / Video
- Handling Invalid or Hallucinated Tool ArgumentsSlides / Video
- Controlling Tool ChoiceSlides / Video
- Parallel and Multiple Tool CallsSlides / Video
- The Full Function Calling LoopSlides / Video
- Returning Tool Results Back to the ModelSlides / Video
- Executing the Function in Your CodeSlides / Video
- Parsing the Model's Tool Call ResponseSlides / Video
- Token Cost of Tools and LoopsQuiz
- Handling Hallucinated CallsQuiz
- What an LLM Agent IsQuiz
- The ReAct LoopQuiz
- Agents vs Function CallingQuiz
- Common Agent ToolsQuiz
- Agent Memory and StateQuiz
- Stopping ConditionsQuiz
- Returning Tool ResultsQuiz
- The Tool Message RoleQuiz
- Agent Frameworks OverviewQuiz
- Error Handling and RetriesQuiz
- Security Risks of Tool CallsQuiz
- What Function Calling IsQuiz
- Why LLMs Need ToolsQuiz
- Defining a Tool SchemaQuiz
- JSON Schema for ParametersQuiz
- Writing Function DescriptionsQuiz
- Passing Tool DefinitionsQuiz
- How the Model Decides to CallQuiz
- Reading the Tool CallQuiz
- Parsing Call ArgumentsQuiz
- Multi-Step Function LoopQuiz
- Parallel Tool CallsQuiz
- Forcing Tool ChoiceQuiz
- Structured Output vs Function CallingQuiz
- Executing the FunctionQuiz
- How the Model Decides to Call a ToolSlides / Video
- Passing Tool Definitions in an API RequestSlides / Video
- Tool Definitions and JSON SchemaSlides / Video
- What Function Calling Is and Why It ExistsSlides / Video
- Forcing a specific tool_choiceCode Quiz
- Validating arguments against allowed valuesCode Quiz
- Building the tool-call loopCode Quiz
- Writing function descriptionsCode Quiz
- Handling malformed argumentsCode Quiz
- Matching tool_call_id to resultCode Quiz
- Handling parallel tool callsCode Quiz
- Parsing tool call argumentsCode Quiz
- Distinguishing final vs tool responseCode Quiz
- Parameter types and required fieldsCode Quiz
- Returning tool errors to the modelCode Quiz
- Dispatching tool names to handlersCode Quiz
- Preventing infinite loopsCode Quiz
- Sending tool results backCode Quiz
- Passing the tools arrayCode Quiz
- Appending the tool result messageCode Quiz
- Executing the local functionCode Quiz
- Detecting a tool callCode Quiz
- Preserving the assistant tool_calls messageCode Quiz
- Stopping Conditions and LimitsFlashcard
- Parsing the Tool Call ResponseFlashcard
- Agent Frameworks OverviewFlashcard
- Executing and Returning ResultsFlashcard
- Parallel Function CallsFlashcard
- Handling Call ErrorsFlashcard
- Structured Output via Function CallingFlashcard
- What an LLM Agent IsFlashcard
- Planning and Task DecompositionFlashcard
- Security Risks of Tool ExecutionFlashcard
- Why LLMs Need ToolsFlashcard
- Passing Tools in a RequestFlashcard
- The Full Function Calling LoopFlashcard
- Tool Choice ControlFlashcard
- Writing Effective Tool DescriptionsFlashcard
- The ReAct PatternFlashcard
- Agent Memory and StateFlashcard
- The Agent LoopFlashcard
- Multi-Tool OrchestrationFlashcard
- Function Calling vs RAG vs Fine-TuningFlashcard
- Cost and Latency of Agent LoopsFlashcard
- What Function Calling IsFlashcard
- Defining a Tool SchemaFlashcard
- Describing Parameters and TypesFlashcard
- How the Model Picks a ToolFlashcard