Convert (AgentAction, tool output) tuples into ToolMessage objects.
Create an agent that uses tools.
Parses a message into agent actions/finish.
If a tool_calls parameter is passed, then that is used to get the tool names and tool inputs.
If one is not passed, then the AIMessage is assumed to be the final output.