An Introduction to LLM Agents | From OpenAI Function Calling to LangChain Agents