Conversational agent | functions , Tools and Agents with LangChain

hello, I’m a little bit confused , now I know that the agent is the one that chooses the suitable tool that corresponds to the user’s input but which one executes the tool itself is the agent or the agent executer?