Function calling is a powerful tool that allows Large Language Models (LLMs) to expand their capabilities, enabling them to generate structured output that adheres to function names and arguments. This concept is crucial for GenAI applications, allowing them to retrieve data from various sources, such as databases or APIs, and provide more interactive engagements. The article demonstrates how to use LangChain, LangGraph, and Pydantic to effectively implement function calling in agentic workflows. It showcases a cooking assistant application that uses Neo4j as the underlying database and leverages function calling to retrieve data from the database via Cypher queries. The example application also highlights the importance of tool validation using Pydantic models and demonstrates how to handle errors and exceptions. Function calling enables LLMs to access various tools, such as predefined Cypher queries or Text2Cypher, which can be used to generate novel responses or retrieve data from external sources. By abstracting away the subgraph details and function logic, function calling reduces the tokens being processed by the LLM, resulting in more efficient and scalable applications. The article concludes that while this approach may require additional effort, it offers a powerful way for GenAI applications to expand their capabilities and provide more advanced data retrieval methods.